diff --git a/pkg/client.go b/pkg/client.go index f0f1f71..f4bbada 100644 --- a/pkg/client.go +++ b/pkg/client.go @@ -25,8 +25,6 @@ const ( ArtifactRepositoryInsecureKey = "artifactRepositoryS3Insecure" ArtifactRepositoryAccessKeyValueKey = "artifactRepositoryS3AccessKey" ArtifactRepositorySecretKeyValueKey = "artifactRepositoryS3SecretKey" - - DefaultEnvironmentVariableSecret = "onepanel-default-env" ) type Config = rest.Config diff --git a/pkg/util/env/env.go b/pkg/util/env/env.go index c12d855..e806677 100644 --- a/pkg/util/env/env.go +++ b/pkg/util/env/env.go @@ -1,10 +1,15 @@ package env import ( + "github.com/onepanelio/core/pkg/util/ptr" corev1 "k8s.io/api/core/v1" "os" ) +const ( + DefaultEnvironmentVariableSecret = "onepanel-default-env" +) + func GetEnv(key, fallback string) string { if value, ok := os.LookupEnv(key); ok { return value @@ -12,7 +17,7 @@ func GetEnv(key, fallback string) string { return fallback } -func PrependEnvToContainer(container *corev1.Container, name, value string) { +func PrependEnvVarToContainer(container *corev1.Container, name, value string) { for _, e := range container.Env { if e.Name == name { return @@ -25,3 +30,14 @@ func PrependEnvToContainer(container *corev1.Container, name, value string) { }, }, container.Env...) } + +func AddDefaultEnvVarsToContainr(container *corev1.Container) { + container.EnvFrom = append(container.EnvFrom, corev1.EnvFromSource{ + SecretRef: &corev1.SecretEnvSource{ + LocalObjectReference: corev1.LocalObjectReference{ + Name: DefaultEnvironmentVariableSecret, + }, + Optional: ptr.Bool(true), + }, + }) +} diff --git a/pkg/workflow_execution.go b/pkg/workflow_execution.go index 1a59c4a..4150a52 100644 --- a/pkg/workflow_execution.go +++ b/pkg/workflow_execution.go @@ -164,23 +164,16 @@ func (c *Client) injectAutomatedFields(namespace string, wf *wfv1.Workflow, opts //Generate ENV vars from secret, if there is a container present in the workflow //Get template ENV vars, avoid over-writing them with secret values - template.Container.EnvFrom = append(template.Container.EnvFrom, corev1.EnvFromSource{ - SecretRef: &corev1.SecretEnvSource{ - LocalObjectReference: corev1.LocalObjectReference{ - Name: DefaultEnvironmentVariableSecret, - }, - Optional: ptr.Bool(true), - }, - }) + env.AddDefaultEnvVarsToContainr(template.Container) config, sysErr := c.GetSystemConfig() if sysErr != nil { return sysErr } - env.PrependEnvToContainer(template.Container, "ONEPANEL_API_URL", config["ONEPANEL_API_URL"]) - env.PrependEnvToContainer(template.Container, "ONEPANEL_FQDN", config["ONEPANEL_FQDN"]) - env.PrependEnvToContainer(template.Container, "ONEPANEL_DOMAIN", config["ONEPANEL_DOMAIN"]) - env.PrependEnvToContainer(template.Container, "PROVIDER_TYPE", config["PROVIDER_TYPE"]) + env.PrependEnvVarToContainer(template.Container, "ONEPANEL_API_URL", config["ONEPANEL_API_URL"]) + env.PrependEnvVarToContainer(template.Container, "ONEPANEL_FQDN", config["ONEPANEL_FQDN"]) + env.PrependEnvVarToContainer(template.Container, "ONEPANEL_DOMAIN", config["ONEPANEL_DOMAIN"]) + env.PrependEnvVarToContainer(template.Container, "PROVIDER_TYPE", config["PROVIDER_TYPE"]) } diff --git a/pkg/workspace_template.go b/pkg/workspace_template.go index 3f53017..ceef55e 100644 --- a/pkg/workspace_template.go +++ b/pkg/workspace_template.go @@ -158,18 +158,11 @@ func createStatefulSetManifest(workspaceSpec *WorkspaceSpec, config map[string]s volumeClaimsMapped := make(map[string]bool) for i, c := range workspaceSpec.Containers { container := &workspaceSpec.Containers[i] - container.EnvFrom = append(container.EnvFrom, corev1.EnvFromSource{ - SecretRef: &corev1.SecretEnvSource{ - LocalObjectReference: corev1.LocalObjectReference{ - Name: DefaultEnvironmentVariableSecret, - }, - Optional: ptr.Bool(true), - }, - }) - env.PrependEnvToContainer(container, "ONEPANEL_API_URL", config["ONEPANEL_API_URL"]) - env.PrependEnvToContainer(container, "ONEPANEL_FQDN", config["ONEPANEL_FQDN"]) - env.PrependEnvToContainer(container, "ONEPANEL_DOMAIN", config["ONEPANEL_DOMAIN"]) - env.PrependEnvToContainer(container, "PROVIDER_TYPE", config["PROVIDER_TYPE"]) + env.AddDefaultEnvVarsToContainr(container) + env.PrependEnvVarToContainer(container, "ONEPANEL_API_URL", config["ONEPANEL_API_URL"]) + env.PrependEnvVarToContainer(container, "ONEPANEL_FQDN", config["ONEPANEL_FQDN"]) + env.PrependEnvVarToContainer(container, "ONEPANEL_DOMAIN", config["ONEPANEL_DOMAIN"]) + env.PrependEnvVarToContainer(container, "PROVIDER_TYPE", config["PROVIDER_TYPE"]) for _, v := range c.VolumeMounts { if volumeClaimsMapped[v.Name] {