From 77a42c637cb6baa1b8818f095dd58e63acfbc8e2 Mon Sep 17 00:00:00 2001 From: hftsin Date: Wed, 14 Dec 2022 15:02:39 +0800 Subject: [PATCH] k3s: fix persistence of kubernetes config (#505) * app: persist the kubernetes config * k3s: disable trafefik by defaults * Revert "k3s: disable trafefik by defaults" This reverts commit 9c20e4a66eb5fc35ecb9e35ceed09889f7dc14d3. --- app/app.go | 15 +++++++++++++++ environment/container/kubernetes/kubernetes.go | 6 +++--- 2 files changed, 18 insertions(+), 3 deletions(-) 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 {