From 1a13ee1886baf5355b0a5db317b8940ce97c61f3 Mon Sep 17 00:00:00 2001 From: Kris Budde Date: Sun, 13 Aug 2023 19:08:17 +0200 Subject: [PATCH] feat(helm): add support for helm capabilities (#48) Capabilities can be defined in env-data.ytt.yaml. Capabilities are passed to helm template. Fixes #31 --- internal/myks/application.go | 18 +++++++++++------- internal/myks/assets/data-schema.ytt.yaml | 4 ++++ internal/myks/render_helm.go | 3 +++ 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/internal/myks/application.go b/internal/myks/application.go index 057a9577..506b8b19 100644 --- a/internal/myks/application.go +++ b/internal/myks/application.go @@ -3,11 +3,12 @@ package myks import ( "errors" "fmt" - "github.com/rs/zerolog/log" - yaml "gopkg.in/yaml.v3" "io" "os" "path/filepath" + + "github.com/rs/zerolog/log" + yaml "gopkg.in/yaml.v3" ) const ( @@ -35,13 +36,16 @@ type Application struct { } type HelmConfig struct { - Namespace string `yaml:"namespace"` - KubeVersion string `yaml:"kubeVersion"` - IncludeCRDs bool `yaml:"includeCRDs"` + Namespace string `yaml:"namespace"` + KubeVersion string `yaml:"kubeVersion"` + IncludeCRDs bool `yaml:"includeCRDs"` + Capabilities []string `yaml:"capabilities"` } -var ErrNoVendirConfig = errors.New("no vendir config found") -var ApplicationLogFormat = "\033[1m[%s > %s > %s]\033[0m %s" +var ( + ErrNoVendirConfig = errors.New("no vendir config found") + ApplicationLogFormat = "\033[1m[%s > %s > %s]\033[0m %s" +) func NewApplication(e *Environment, name string, prototypeName string) (*Application, error) { if prototypeName == "" { diff --git a/internal/myks/assets/data-schema.ytt.yaml b/internal/myks/assets/data-schema.ytt.yaml index 84e9c676..4e751595 100644 --- a/internal/myks/assets/data-schema.ytt.yaml +++ b/internal/myks/assets/data-schema.ytt.yaml @@ -31,6 +31,10 @@ helm: #! Used by myks. #! If defined, passed as a value of `--namespace` for `helm template`. namespace: "" + #! Used by myks. + #! If defined, passed as `--api-version` for `helm-template`. + capabilities: + - "" #! e.g. "monitoring.coreos.com/v1" #! Myks configuration and runtime data. myks: applicationDataFileName: "" diff --git a/internal/myks/render_helm.go b/internal/myks/render_helm.go index 307106af..c33fe62c 100644 --- a/internal/myks/render_helm.go +++ b/internal/myks/render_helm.go @@ -57,6 +57,9 @@ func (h *Helm) Render(_ string) (string, error) { commonHelmArgs = append(commonHelmArgs, "--include-crds") } + for _, capa := range helmConfig.Capabilities { + commonHelmArgs = append(commonHelmArgs, "--api-versions", capa) + } var outputs []string for _, chartDir := range chartDirs {