diff --git a/app/app.go b/app/app.go index 2bdb1063a..fea925877 100644 --- a/app/app.go +++ b/app/app.go @@ -4,6 +4,7 @@ import ( "bufio" "bytes" "context" + "encoding/json" "fmt" "os" "path/filepath" @@ -116,6 +117,11 @@ func (c colimaApp) Start(conf config.Config) error { log.Error(fmt.Errorf("error persisting runtime settings: %w", err)) } + // persist the kubernetes config + if err := c.setKubernetes(conf.Kubernetes); err != nil { + log.Error(fmt.Errorf("error persisting kubernetes settings: %w", err)) + } + log.Println("done") if err := generateSSHConfig(conf.SSHConfig); err != nil { @@ -390,6 +396,15 @@ func (c colimaApp) setRuntime(runtime string) error { return c.guest.Set(environment.ContainerRuntimeKey, runtime) } +func (c colimaApp) setKubernetes(conf config.Kubernetes) error { + b, err := json.Marshal(conf) + if err != nil { + return err + } + + return c.guest.Set(kubernetes.ConfigKey, string(b)) +} + func (c colimaApp) currentContainerEnvironments(ctx context.Context) ([]environment.Container, error) { var containers []environment.Container diff --git a/environment/container/kubernetes/kubernetes.go b/environment/container/kubernetes/kubernetes.go index 3f3d21c7e..7f4cf2e7f 100644 --- a/environment/container/kubernetes/kubernetes.go +++ b/environment/container/kubernetes/kubernetes.go @@ -20,7 +20,7 @@ const ( Name = "kubernetes" DefaultVersion = "v1.25.4+k3s1" - configKey = "kubernetes_config" + ConfigKey = "kubernetes_config" ) func newRuntime(host environment.HostActions, guest environment.GuestActions) environment.Container { @@ -71,7 +71,7 @@ func (c kubernetesRuntime) runtime() string { func (c kubernetesRuntime) config() config.Kubernetes { conf := config.Kubernetes{Version: DefaultVersion} - if b := c.guest.Get(configKey); b != "" { + if b := c.guest.Get(ConfigKey); b != "" { _ = json.Unmarshal([]byte(b), &conf) } return conf @@ -83,7 +83,7 @@ func (c kubernetesRuntime) setConfig(conf config.Kubernetes) error { return fmt.Errorf("error encoding kubernetes config to json: %w", err) } - return c.guest.Set(configKey, string(b)) + return c.guest.Set(ConfigKey, string(b)) } func (c *kubernetesRuntime) Provision(ctx context.Context) error {