penguin/monok8s

k8s image for Mono Gateway Dev Kit

clitools/pkg/render/monoks.go

raw ยท 1098 bytes

package templates

import (
	"bytes"

	"k8s.io/apimachinery/pkg/runtime"
	"k8s.io/apimachinery/pkg/runtime/serializer/json"

	monov1alpha1 "example.com/monok8s/pkg/apis/monok8s/v1alpha1"
	"example.com/monok8s/pkg/templates"
)

func RenderMonoKSConfig() (string, error) {
	vals := templates.LoadTemplateValuesFromEnv()
	cfg := templates.DefaultMonoKSConfig(vals)

	s := runtime.NewScheme()
	if err := monov1alpha1.AddToScheme(s); err != nil {
		return "", err
	}

	serializer := json.NewYAMLSerializer(
		json.DefaultMetaFactory, s, s,
	)

	var buf bytes.Buffer
	if err := serializer.Encode(&cfg, &buf); err != nil {
		return "", err
	}

	return buf.String(), nil
}

func RenderOSUpgrade() (string, error) {
	vals := templates.LoadTemplateValuesFromEnv()
	cfg := templates.DefaultOSUpgrade(vals)

	s := runtime.NewScheme()
	if err := monov1alpha1.AddToScheme(s); err != nil {
		return "", err
	}

	serializer := json.NewYAMLSerializer(
		json.DefaultMetaFactory, s, s,
	)

	var buf bytes.Buffer
	if err := serializer.Encode(&cfg, &buf); err != nil {
		return "", err
	}

	return buf.String(), nil
}