Use architecture dependent images (#398)

* Use architecture dependent images

Signed-off-by: Anatolii Bazko <abazko@redhat.com>
pull/399/head
Anatolii Bazko 2020-08-10 09:01:22 +03:00 committed by GitHub
parent 95622e28c6
commit 68764c888d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 21 deletions

View File

@ -98,23 +98,23 @@ func InitDefaults(defaultsPath string) {
func InitDefaultsFromEnv() {
defaultCheVersion = getDefaultFromEnv("CHE_VERSION")
defaultCheServerImage = getDefaultFromEnv("RELATED_IMAGE_che_server")
defaultPluginRegistryImage = getDefaultFromEnv("RELATED_IMAGE_plugin_registry")
defaultDevfileRegistryImage = getDefaultFromEnv("RELATED_IMAGE_devfile_registry")
defaultPvcJobsImage = getDefaultFromEnv("RELATED_IMAGE_pvc_jobs")
defaultPostgresImage = getDefaultFromEnv("RELATED_IMAGE_postgres")
defaultKeycloakImage = getDefaultFromEnv("RELATED_IMAGE_keycloak")
defaultCheServerImage = getDefaultFromEnv(util.GetArchitectureDependentEnv("RELATED_IMAGE_che_server"))
defaultPluginRegistryImage = getDefaultFromEnv(util.GetArchitectureDependentEnv("RELATED_IMAGE_plugin_registry"))
defaultDevfileRegistryImage = getDefaultFromEnv(util.GetArchitectureDependentEnv("RELATED_IMAGE_devfile_registry"))
defaultPvcJobsImage = getDefaultFromEnv(util.GetArchitectureDependentEnv("RELATED_IMAGE_pvc_jobs"))
defaultPostgresImage = getDefaultFromEnv(util.GetArchitectureDependentEnv("RELATED_IMAGE_postgres"))
defaultKeycloakImage = getDefaultFromEnv(util.GetArchitectureDependentEnv("RELATED_IMAGE_keycloak"))
// CRW images for that are mentioned in the Che server che.properties
// For CRW these should be synced by hand with images stored in RH registries
// instead of being synced by script with the content of the upstream `che.properties` file
defaultCheWorkspacePluginBrokerMetadataImage = getDefaultFromEnv("RELATED_IMAGE_che_workspace_plugin_broker_metadata")
defaultCheWorkspacePluginBrokerArtifactsImage = getDefaultFromEnv("RELATED_IMAGE_che_workspace_plugin_broker_artifacts")
defaultCheServerSecureExposerJwtProxyImage = getDefaultFromEnv("RELATED_IMAGE_che_server_secure_exposer_jwt_proxy_image")
defaultCheWorkspacePluginBrokerMetadataImage = getDefaultFromEnv(util.GetArchitectureDependentEnv("RELATED_IMAGE_che_workspace_plugin_broker_metadata"))
defaultCheWorkspacePluginBrokerArtifactsImage = getDefaultFromEnv(util.GetArchitectureDependentEnv("RELATED_IMAGE_che_workspace_plugin_broker_artifacts"))
defaultCheServerSecureExposerJwtProxyImage = getDefaultFromEnv(util.GetArchitectureDependentEnv("RELATED_IMAGE_che_server_secure_exposer_jwt_proxy_image"))
// Don't get some k8s specific env
if !util.IsOpenShift {
defaultCheTLSSecretsCreationJobImage = getDefaultFromEnv("RELATED_IMAGE_che_tls_secrets_creation_job")
defaultCheTLSSecretsCreationJobImage = getDefaultFromEnv(util.GetArchitectureDependentEnv("RELATED_IMAGE_che_tls_secrets_creation_job"))
}
}
@ -122,19 +122,19 @@ func InitDefaultsFromFile(defaultsPath string) {
operatorDeployment := getDefaultsFromFile(defaultsPath)
defaultCheVersion = util.GetDeploymentEnv(operatorDeployment, "CHE_VERSION")
defaultCheServerImage = util.GetDeploymentEnv(operatorDeployment, "RELATED_IMAGE_che_server")
defaultPluginRegistryImage = util.GetDeploymentEnv(operatorDeployment, "RELATED_IMAGE_plugin_registry")
defaultDevfileRegistryImage = util.GetDeploymentEnv(operatorDeployment, "RELATED_IMAGE_devfile_registry")
defaultPvcJobsImage = util.GetDeploymentEnv(operatorDeployment, "RELATED_IMAGE_pvc_jobs")
defaultPostgresImage = util.GetDeploymentEnv(operatorDeployment, "RELATED_IMAGE_postgres")
defaultKeycloakImage = util.GetDeploymentEnv(operatorDeployment, "RELATED_IMAGE_keycloak")
defaultCheWorkspacePluginBrokerMetadataImage = util.GetDeploymentEnv(operatorDeployment, "RELATED_IMAGE_che_workspace_plugin_broker_metadata")
defaultCheWorkspacePluginBrokerArtifactsImage = util.GetDeploymentEnv(operatorDeployment, "RELATED_IMAGE_che_workspace_plugin_broker_artifacts")
defaultCheServerSecureExposerJwtProxyImage = util.GetDeploymentEnv(operatorDeployment, "RELATED_IMAGE_che_server_secure_exposer_jwt_proxy_image")
defaultCheServerImage = util.GetDeploymentEnv(operatorDeployment, util.GetArchitectureDependentEnv("RELATED_IMAGE_che_server"))
defaultPluginRegistryImage = util.GetDeploymentEnv(operatorDeployment, util.GetArchitectureDependentEnv("RELATED_IMAGE_plugin_registry"))
defaultDevfileRegistryImage = util.GetDeploymentEnv(operatorDeployment, util.GetArchitectureDependentEnv("RELATED_IMAGE_devfile_registry"))
defaultPvcJobsImage = util.GetDeploymentEnv(operatorDeployment, util.GetArchitectureDependentEnv("RELATED_IMAGE_pvc_jobs"))
defaultPostgresImage = util.GetDeploymentEnv(operatorDeployment, util.GetArchitectureDependentEnv("RELATED_IMAGE_postgres"))
defaultKeycloakImage = util.GetDeploymentEnv(operatorDeployment, util.GetArchitectureDependentEnv("RELATED_IMAGE_keycloak"))
defaultCheWorkspacePluginBrokerMetadataImage = util.GetDeploymentEnv(operatorDeployment, util.GetArchitectureDependentEnv("RELATED_IMAGE_che_workspace_plugin_broker_metadata"))
defaultCheWorkspacePluginBrokerArtifactsImage = util.GetDeploymentEnv(operatorDeployment, util.GetArchitectureDependentEnv("RELATED_IMAGE_che_workspace_plugin_broker_artifacts"))
defaultCheServerSecureExposerJwtProxyImage = util.GetDeploymentEnv(operatorDeployment, util.GetArchitectureDependentEnv("RELATED_IMAGE_che_server_secure_exposer_jwt_proxy_image"))
// Don't get some k8s specific env
if !util.IsOpenShift {
defaultCheTLSSecretsCreationJobImage = util.GetDeploymentEnv(operatorDeployment, "RELATED_IMAGE_che_tls_secrets_creation_job")
defaultCheTLSSecretsCreationJobImage = util.GetDeploymentEnv(operatorDeployment, util.GetArchitectureDependentEnv("RELATED_IMAGE_che_tls_secrets_creation_job"))
}
}

View File

@ -22,6 +22,7 @@ import (
"net/http"
"os"
"regexp"
"runtime"
"sort"
"strings"
"time"
@ -274,8 +275,20 @@ func GetEnvByRegExp(regExp string) []corev1.EnvVar {
envName := pair[0]
rxp := regexp.MustCompile(regExp)
if rxp.MatchString(envName) {
envName = GetArchitectureDependentEnv(envName)
env = append(env, corev1.EnvVar{Name: envName, Value: pair[1]})
}
}
return env
}
}
// GetArchitectureDependentEnv returns environment variable dependending on architecture
// by adding "_<ARCHITECTURE>" suffix. If variable is not set then the default will be return.
func GetArchitectureDependentEnv(env string) string {
archEnv := env + "_" + runtime.GOARCH
if _, ok := os.LookupEnv(archEnv); ok {
return archEnv
}
return env
}