penguin/monok8s

k8s image for Mono Gateway Dev Kit

clitools/pkg/render/monoks.go

raw ยท 1070 bytes

package templates

import (
	"bytes"

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

	"undecided.project/monok8s/pkg/scheme"
	"undecided.project/monok8s/pkg/templates"
)

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

	s := runtime.NewScheme()
	if err := scheme.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 := scheme.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
}