move envfrom to util

This commit is contained in:
rushtehrani
2020-05-14 00:33:46 -07:00
parent dd9e64ccf6
commit c121116b9d
4 changed files with 27 additions and 27 deletions

View File

@@ -25,8 +25,6 @@ const (
ArtifactRepositoryInsecureKey = "artifactRepositoryS3Insecure" ArtifactRepositoryInsecureKey = "artifactRepositoryS3Insecure"
ArtifactRepositoryAccessKeyValueKey = "artifactRepositoryS3AccessKey" ArtifactRepositoryAccessKeyValueKey = "artifactRepositoryS3AccessKey"
ArtifactRepositorySecretKeyValueKey = "artifactRepositoryS3SecretKey" ArtifactRepositorySecretKeyValueKey = "artifactRepositoryS3SecretKey"
DefaultEnvironmentVariableSecret = "onepanel-default-env"
) )
type Config = rest.Config type Config = rest.Config

18
pkg/util/env/env.go vendored
View File

@@ -1,10 +1,15 @@
package env package env
import ( import (
"github.com/onepanelio/core/pkg/util/ptr"
corev1 "k8s.io/api/core/v1" corev1 "k8s.io/api/core/v1"
"os" "os"
) )
const (
DefaultEnvironmentVariableSecret = "onepanel-default-env"
)
func GetEnv(key, fallback string) string { func GetEnv(key, fallback string) string {
if value, ok := os.LookupEnv(key); ok { if value, ok := os.LookupEnv(key); ok {
return value return value
@@ -12,7 +17,7 @@ func GetEnv(key, fallback string) string {
return fallback return fallback
} }
func PrependEnvToContainer(container *corev1.Container, name, value string) { func PrependEnvVarToContainer(container *corev1.Container, name, value string) {
for _, e := range container.Env { for _, e := range container.Env {
if e.Name == name { if e.Name == name {
return return
@@ -25,3 +30,14 @@ func PrependEnvToContainer(container *corev1.Container, name, value string) {
}, },
}, container.Env...) }, 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),
},
})
}

View File

@@ -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 //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 //Get template ENV vars, avoid over-writing them with secret values
template.Container.EnvFrom = append(template.Container.EnvFrom, corev1.EnvFromSource{ env.AddDefaultEnvVarsToContainr(template.Container)
SecretRef: &corev1.SecretEnvSource{
LocalObjectReference: corev1.LocalObjectReference{
Name: DefaultEnvironmentVariableSecret,
},
Optional: ptr.Bool(true),
},
})
config, sysErr := c.GetSystemConfig() config, sysErr := c.GetSystemConfig()
if sysErr != nil { if sysErr != nil {
return sysErr return sysErr
} }
env.PrependEnvToContainer(template.Container, "ONEPANEL_API_URL", config["ONEPANEL_API_URL"]) env.PrependEnvVarToContainer(template.Container, "ONEPANEL_API_URL", config["ONEPANEL_API_URL"])
env.PrependEnvToContainer(template.Container, "ONEPANEL_FQDN", config["ONEPANEL_FQDN"]) env.PrependEnvVarToContainer(template.Container, "ONEPANEL_FQDN", config["ONEPANEL_FQDN"])
env.PrependEnvToContainer(template.Container, "ONEPANEL_DOMAIN", config["ONEPANEL_DOMAIN"]) env.PrependEnvVarToContainer(template.Container, "ONEPANEL_DOMAIN", config["ONEPANEL_DOMAIN"])
env.PrependEnvToContainer(template.Container, "PROVIDER_TYPE", config["PROVIDER_TYPE"]) env.PrependEnvVarToContainer(template.Container, "PROVIDER_TYPE", config["PROVIDER_TYPE"])
} }

View File

@@ -158,18 +158,11 @@ func createStatefulSetManifest(workspaceSpec *WorkspaceSpec, config map[string]s
volumeClaimsMapped := make(map[string]bool) volumeClaimsMapped := make(map[string]bool)
for i, c := range workspaceSpec.Containers { for i, c := range workspaceSpec.Containers {
container := &workspaceSpec.Containers[i] container := &workspaceSpec.Containers[i]
container.EnvFrom = append(container.EnvFrom, corev1.EnvFromSource{ env.AddDefaultEnvVarsToContainr(container)
SecretRef: &corev1.SecretEnvSource{ env.PrependEnvVarToContainer(container, "ONEPANEL_API_URL", config["ONEPANEL_API_URL"])
LocalObjectReference: corev1.LocalObjectReference{ env.PrependEnvVarToContainer(container, "ONEPANEL_FQDN", config["ONEPANEL_FQDN"])
Name: DefaultEnvironmentVariableSecret, env.PrependEnvVarToContainer(container, "ONEPANEL_DOMAIN", config["ONEPANEL_DOMAIN"])
}, env.PrependEnvVarToContainer(container, "PROVIDER_TYPE", config["PROVIDER_TYPE"])
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"])
for _, v := range c.VolumeMounts { for _, v := range c.VolumeMounts {
if volumeClaimsMapped[v.Name] { if volumeClaimsMapped[v.Name] {