config/config.go (84 lines of code) (raw):
package config
import (
"ddm-admin-console/service/codebase"
edpcomponent "ddm-admin-console/service/edp_component"
"ddm-admin-console/service/gerrit"
"ddm-admin-console/service/gitserver"
"ddm-admin-console/service/jenkins"
"ddm-admin-console/service/k8s"
"ddm-admin-console/service/keycloak"
"ddm-admin-console/service/openshift"
"ddm-admin-console/service/permissions"
"ddm-admin-console/service/vault"
"github.com/patrickmn/go-cache"
)
type Settings struct {
HTTPPort string `envconfig:"HTTP_PORT" default:"8080"`
LogLevel string `envconfig:"LOG_LEVEL" default:"INFO"`
LogEncoding string `envconfig:"LOG_ENCODING" default:"json"`
Namespace string `envconfig:"NAMESPACE" default:"default"`
SessionSecret string `envconfig:"SESSION_SECRET" default:"UdWaTEfULunPTkRC9sFLG26APz9W5gEC8x"`
OCClientID string `envconfig:"OC_CLIENT_ID"`
OCClientSecret string `envconfig:"OC_CLIENT_SECRET"`
Host string `envconfig:"HOST"`
ClusterCodebaseName string `envconfig:"CLUSTER_CODEBASE_NAME"`
ClusterRepo string `envconfig:"CLUSTER_REPO"`
BackupSecretName string `envconfig:"BACKUP_SECRET_NAME" default:"backup-credential"`
GinMode string `envconfig:"GIN_MODE"`
Timezone string `envconfig:"TIMEZONE" default:"Europe/Kiev"`
RegistryRepoHost string `envconfig:"REGISTRY_REPO_HOST"`
RegistryHardwareKeyINITemplatePath string `envconfig:"REGISTRY_HW_KEY_INI_TPL_PATH" default:"osplm.ini"`
RootGerritName string `envconfig:"ROOT_GERRIT_NAME" default:"gerrit"`
GroupGitRepo string `envconfig:"GROUP_GIT_REPO"`
UsersNamespace string `envconfig:"USERS_NAMESPACE" default:"user-management"`
UsersRealm string `envconfig:"USERS_REALM" default:"openshift"`
EnableBranchProvisioners bool `envconfig:"ENABLE_BRANCH_PROVISIONERS"`
RegistryCodebaseLabels string `envconfig:"REGISTRY_CODEBASE_LABELS"`
GerritAPIUrlTemplate string `envconfig:"GERRIT_API_URL_TPL" default:"http://{HOST}:8080/a/"`
JenkinsAPIURL string `envconfig:"JENKINS_API_URL" default:"http://jenkins:8080"`
JenkinsAdminSecretName string `envconfig:"JENKINS_ADMIN_SECRET_NAME" default:"jenkins-admin-token"`
VaultNamespace string `envconfig:"VAULT_NAMESPACE" default:"user-management"`
VaultSecretName string `envconfig:"VAULT_SECRET_NAME" default:"vault-root-token"`
VaultSecretTokenKey string `envconfig:"VAULT_SECRET_TOKEN_KEY" default:"VAULT_ROOT_TOKEN"`
VaultAPIAddr string `envconfig:"VAULT_API_ADDR" default:"http://hashicorp-vault.user-management:8200"`
VaultRegistrySecretPathTemplate string `envconfig:"V_REG_SEC_PATH_TPL" default:"{engine}/registry/{registry}"`
VaultRegistrySMTPPwdSecretKey string `envconfig:"V_REG_SMTP_SEC_KEY" default:"smtp-password"`
VaultKVEngineName string `envconfig:"VAULT_KV_ENGINE_NAME" default:"registry-kv"`
VaultClusterAdminsPathTemplate string `envconfig:"V_CLS_ADM_PATH_TPL" default:"{engine}/cluster/{admin}"`
VaultClusterAdminsPasswordKey string `envconfig:"V_CLS_ADMIN_SEC_KEY" default:"password"`
VaultClusterPathTemplate string `envconfig:"V_CLS_ADM_PATH_TPL" default:"{engine}/cluster"`
VaultClusterKeyManagementPathTemplate string `envconfig:"V_CLS_KEYM_PATH_TPL" default:"{engine}/cluster/key-management"`
VaultCitizenSSLPath string `encvonfig:"V_SSL_CITIZEN_PATH" default:"custom-dns-names/{registry}/citizen-portal/{host}"`
VaultOfficerSSLPath string `encvonfig:"V_SSL_CITIZEN_PATH" default:"custom-dns-names/{registry}/officer-portal/{host}"`
VaultKeycloakSSLPath string `encvonfig:"V_SSL_KEYCLOAK_PATH" default:"custom-dns-names/{registry}/officer-portal/{host}"`
TempFolder string `envconfig:"TEMP_FOLDER" default:"/tmp"`
RegistryDNSManualPath string `envconfig:"REGISTRY_DNS_MANUAL_PATH" default:"platform/1.9.4/arch/architecture/platform/administrative/control-plane/keycloak-custom-url.html#_keycloak_dns"`
DDMManualEDPComponent string `envconfig:"DDM_MANUAL_EDP_COMPONENT" default:"ddm-architecture"`
OAuthUseExternalTokenURL bool `envconfig:"OAUTH_USE_EXTERNAL_TOKEN_URL"`
OAuthInternalTokenHost string `envconfig:"OAUTH_INTERNAL_TOKEN_HOST" default:"oauth-openshift.openshift-authentication.svc"`
GitUsername string `envconfig:"GERRIT_GIT_USERNAME" default:"project-creator"`
GitKeySecretName string `envconfig:"GERRIT_GIT_KEY_SECRET_NAME" default:"gerrit-project-creator"`
GitHost string `envconfig:"GERRIT_GIT_HOSTNAME" default:"gerrit"`
GitPort string `envconfig:"GERRIT_GIT_PORT" default:"31000"`
KeycloakDefaultHostname string `envconfig:"KEYCLOAK_DEFAULT_HOSTNAME"`
Mock string `envconfig:"MOCK"`
RegistryVersionFilter string `envconfig:"REGISTRY_VERSION_FILTER"`
WiremockAddr string `envconfig:"WIREMOCK_ADDR" default:"http://wiremock.{NAME_REGISTRY}:9021/"`
BackupBucketAccessKeyID string `envconfig:"ACCESS_KEY_ID" default:"accessKeyId"`
BackupBucketSecretAccessKey string `envconfig:"SECRET_ACCESS_KEY" default:"secretAccessKey"`
RegistryTemplateName string `envconfig:"REGISTRY_TEMPLATE_NAME"`
CloudProvider string `envconfig:"CLOUD_PROVIDER"`
}
type Services struct {
Codebase codebase.ServiceInterface
EDPComponent edpcomponent.ServiceInterface
K8S k8s.ServiceInterface
OpenShift openshift.ServiceInterface
Gerrit gerrit.ServiceInterface
GitServer gitserver.ServiceInterface
Jenkins jenkins.ServiceInterface
Keycloak keycloak.ServiceInterface
Vault vault.ServiceInterface
Cache *cache.Cache //TODO: make interface
PermService permissions.ServiceInterface
}