{{/*
# Copyright © 2017 Amdocs, Bell Canada
# Copyright © 2021 AT&T
# Modifications Copyright (C) 2021 Nordix Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
*/}}
{{- define "repositoryGenerator._repositoryHelper" -}}
{{- $dot := default . .dot -}}
{{- $initRoot := default $dot.Values.repositoryGenerator .initRoot -}}
{{- $repoName := .repoName }}
{{- $overrideName := printf "%s%s" $repoName "Override" }}
{{- if (hasKey $dot.Values $overrideName) -}}
{{- printf "%s" (first (pluck $overrideName $dot.Values)) -}}
{{- else -}}
{{- first (pluck $repoName $dot.Values.global $initRoot.global) -}}
{{- end }}
{{- end -}}
{{/*
Resolve the name of the common image repository.
- .Values.global.repository : default image repository for all ONAP images
- .Values.repositoryOverride : override global repository on a per chart basis
*/}}
{{- define "repositoryGenerator.repository" -}}
{{- include "repositoryGenerator._repositoryHelper" (merge (dict "repoName" "repository") .) }}
{{- end -}}
{{/*
Resolve the name of the dockerHub image repository.
- .Values.global.dockerHubRepository : default image dockerHubRepository for all dockerHub images
- .Values.dockerHubRepositoryOverride : override global dockerHub repository on a per chart basis
*/}}
{{- define "repositoryGenerator.dockerHubRepository" -}}
{{- include "repositoryGenerator._repositoryHelper" (merge (dict "repoName" "dockerHubRepository") .) }}
{{- end -}}
{{/*
Resolve the name of the elasticRepository image repository.
- .Values.global.elasticRepository : default image elasticRepository for all images using elastic repository
- .Values.elasticRepositoryOverride : override global elasticRepository repository on a per chart basis
*/}}
{{- define "repositoryGenerator.elasticRepository" -}}
{{- include "repositoryGenerator._repositoryHelper" (merge (dict "repoName" "elasticRepository") .) }}
{{- end -}}
{{/*
Resolve the name of the googleK8sRepository image repository.
- .Values.global.googleK8sRepository : default image dockerHubRepository for all dockerHub images
- .Values.googleK8sRepositoryOverride : override global dockerHub repository on a per chart basis
*/}}
{{- define "repositoryGenerator.googleK8sRepository" -}}
{{- include "repositoryGenerator._repositoryHelper" (merge (dict "repoName" "googleK8sRepository") .) }}
{{- end -}}
{{/*
Resolve the name of the GithubContainer registry
- .Values.global.githubContainerRegistry : default image githubContainerRegistry for all dockerHub images
- .Values.githubContainerRegistryOverride : override global githubContainerRegistry on a per chart basis
*/}}
{{- define "repositoryGenerator.githubContainerRegistry" -}}
{{- include "repositoryGenerator._repositoryHelper" (merge (dict "repoName" "githubContainerRegistry") .) }}
{{- end -}}
{{- define "repositoryGenerator.image._helper" -}}
{{- $dot := default . .dot -}}
{{- $initRoot := default $dot.Values.repositoryGenerator .initRoot -}}
{{- $image := .image }}
{{- $repoName := first (pluck $image $initRoot.imageRepoMapping) }}
{{- include "repositoryGenerator._repositoryHelper" (merge (dict "repoName" $repoName ) .) }}/{{- first (pluck $image $dot.Values.global $initRoot.global) -}}
{{- end -}}
{{- define "repositoryGenerator.image.busybox" -}}
{{- include "repositoryGenerator.image._helper" (merge (dict "image" "busyboxImage") .) }}
{{- end -}}
{{- define "repositoryGenerator.image.curl" -}}
{{- include "repositoryGenerator.image._helper" (merge (dict "image" "curlImage") .) }}
{{- end -}}
{{- define "repositoryGenerator.image.dcaepolicysync" -}}
{{- include "repositoryGenerator.image._helper" (merge (dict "image" "dcaePolicySyncImage") .) }}
{{- end -}}
{{- define "repositoryGenerator.image.envsubst" -}}
{{- include "repositoryGenerator.image._helper" (merge (dict "image" "envsubstImage") .) }}
{{- end -}}
{{- define "repositoryGenerator.image.htpasswd" -}}
{{- include "repositoryGenerator.image._helper" (merge (dict "image" "htpasswdImage") .) }}
{{- end -}}
{{- define "repositoryGenerator.image.jre" -}}
{{- include "repositoryGenerator.image._helper" (merge (dict "image" "jreImage") .) }}
{{- end -}}
{{- define "repositoryGenerator.image.kubectl" -}}
{{- include "repositoryGenerator.image._helper" (merge (dict "image" "kubectlImage") .) }}
{{- end -}}
{{- define "repositoryGenerator.image.logging" -}}
{{- include "repositoryGenerator.image._helper" (merge (dict "image" "loggingImage") .) }}
{{- end -}}
{{- define "repositoryGenerator.image.mariadb" -}}
{{- include "repositoryGenerator.image._helper" (merge (dict "image" "mariadbImage") .) }}
{{- end -}}
{{- define "repositoryGenerator.image.nginx" -}}
{{- include "repositoryGenerator.image._helper" (merge (dict "image" "nginxImage") .) }}
{{- end -}}
{{- define "repositoryGenerator.image.postgres" -}}
{{- include "repositoryGenerator.image._helper" (merge (dict "image" "postgresImage") .) }}
{{- end -}}
{{- define "repositoryGenerator.image.readiness" -}}
{{- include "repositoryGenerator.image._helper" (merge (dict "image" "readinessImage") .) }}
{{- end -}}
{{- define "repositoryGenerator.image.dbcClient" -}}
{{- include "repositoryGenerator.image._helper" (merge (dict "image" "dbcClientImage") .) }}
{{- end -}}
{{/*
Resolve the image repository secret token.
The value for .Values.global.repositoryCred is used if provided:
repositoryCred:
user: user
password: password
mail: email (optional)
You can also set the same things for dockerHub, elastic and googleK8s if
needed.
*/}}
{{- define "repositoryGenerator.secret" -}}
{{- $dot := default . .dot -}}
{{- $initRoot := default $dot.Values.repositoryGenerator .initRoot -}}
{{/* Our version of helm doesn't support deepCopy so we need this nasty trick */}}
{{- $subchartDot := fromJson (include "common.subChartDot" (dict "dot" $dot "initRoot" $initRoot)) }}
{{- $repoCreds := "" }}
{{- if $subchartDot.Values.global.repositoryCred }}
{{- $repo := $subchartDot.Values.global.repository }}
{{- $cred := $subchartDot.Values.global.repositoryCred }}
{{- $mail := default "@" $cred.mail }}
{{- $auth := printf "%s:%s" $cred.user $cred.password | b64enc }}
{{- $repoCreds = printf "\"%s\": {\"username\":\"%s\",\"password\":\"%s\",\"email\":\"%s\",\"auth\":\"%s\"}" $repo $cred.user $cred.password $mail $auth }}
{{- end }}
{{- if $subchartDot.Values.global.dockerHubRepositoryCred }}
{{- $dhRepo := $subchartDot.Values.global.dockerHubRepository }}
{{- $dhCred := $subchartDot.Values.global.dockerHubRepositoryCred }}
{{- $dhMail := default "@" $dhCred.mail }}
{{- $dhAuth := printf "%s:%s" $dhCred.user $dhCred.password | b64enc }}
{{- $dhRepoCreds := printf "\"%s\":{\"username\":\"%s\",\"password\":\"%s\",\"email\":\"%s\",\"auth\":\"%s\"}" $dhRepo $dhCred.user $dhCred.password $dhMail $dhAuth }}
{{- if eq "" $repoCreds }}
{{- $repoCreds = $dhRepoCreds }}
{{- else }}
{{- $repoCreds = printf "%s, %s" $repoCreds $dhRepoCreds }}
{{- end }}
{{- end }}
{{- if $subchartDot.Values.global.elasticRepositoryCred }}
{{- $eRepo := $subchartDot.Values.global.elasticRepository }}
{{- $eCred := $subchartDot.Values.global.elasticRepositoryCred }}
{{- $eMail := default "@" $eCred.mail }}
{{- $eAuth := printf "%s:%s" $eCred.user $eCred.password | b64enc }}
{{- $eRepoCreds := printf "\"%s\":{\"username\":\"%s\",\"password\":\"%s\",\"email\":\"%s\",\"auth\":\"%s\"}" $eRepo $eCred.user $eCred.password $eMail $eAuth }}
{{- if eq "" $repoCreds }}
{{- $repoCreds = $eRepoCreds }}
{{- else }}
{{- $repoCreds = printf "%s, %s" $repoCreds $eRepoCreds }}
{{- end }}
{{- end }}
{{- if $subchartDot.Values.global.googleK8sRepositoryCred }}
{{- $gcrRepo := $subchartDot.Values.global.googleK8sRepository }}
{{- $gcrCred := $subchartDot.Values.global.googleK8sRepositoryCred }}
{{- $gcrMail := default "@" $gcrCred.mail }}
{{- $gcrAuth := printf "%s:%s" $gcrCred.user $gcrCred.password | b64enc }}
{{- $gcrRepoCreds := printf "\"%s\":{\"username\":\"%s\",\"password\":\"%s\",\"email\":\"%s\",\"auth\":\"%s\"}" $gcrRepo $gcrCred.user $gcrCred.password $gcrMail $gcrAuth }}
{{- if eq "" $repoCreds }}
{{- $repoCreds = $gcrRepoCreds }}
{{- else }}
{{- $repoCreds = printf "%s, %s" $repoCreds $gcrRepoCreds }}
{{- end }}
{{- end }}
{{- if $subchartDot.Values.global.githubContainerRegistryCred }}
{{- $ghcrRepo := $subchartDot.Values.global.githubContainerRegistry }}
{{- $ghcrCred := $subchartDot.Values.global.githubContainerRegistryCred }}
{{- $ghcrMail := default "@" $ghcrCred.mail }}
{{- $ghcrAuth := printf "%s:%s" $ghcrCred.user $ghcrCred.password | b64enc }}
{{- $ghcrRepoCreds := printf "\"%s\":{\"username\":\"%s\",\"password\":\"%s\",\"email\":\"%s\",\"auth\":\"%s\"}" $ghcrRepo $ghcrCred.user $ghcrCred.password $ghcrMail $ghcrAuth }}
{{- if eq "" $repoCreds }}
{{- $repoCreds = $ghcrRepoCreds }}
{{- else }}
{{- $repoCreds = printf "%s, %s" $repoCreds $ghcrRepoCreds }}
{{- end }}
{{- end }}
{{- printf "{%s}" $repoCreds | b64enc -}}
{{- end -}}