added repo
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
Congratulations. You have just deployed JFrog Artifactory!
|
||||
{{- if .Values.artifactory.masterKey }}
|
||||
{{- if and (not .Values.artifactory.masterKeySecretName) (eq .Values.artifactory.masterKey "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF") }}
|
||||
|
||||
|
||||
***************************************** WARNING ******************************************
|
||||
* Your Artifactory master key is still set to the provided example: *
|
||||
* artifactory.masterKey=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF *
|
||||
* *
|
||||
* You should change this to your own generated key: *
|
||||
* $ export MASTER_KEY=$(openssl rand -hex 32) *
|
||||
* $ echo ${MASTER_KEY} *
|
||||
* *
|
||||
* Pass the created master key to helm with '--set artifactory.masterKey=${MASTER_KEY}' *
|
||||
* *
|
||||
* Alternatively, you can use a pre-existing secret with a key called master-key with *
|
||||
* '--set artifactory.masterKeySecretName=${SECRET_NAME}' *
|
||||
********************************************************************************************
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.artifactory.joinKey }}
|
||||
{{- if eq .Values.artifactory.joinKey "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" }}
|
||||
|
||||
|
||||
***************************************** WARNING ******************************************
|
||||
* Your Artifactory join key is still set to the provided example: *
|
||||
* artifactory.joinKey=EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE *
|
||||
* *
|
||||
* You should change this to your own generated key: *
|
||||
* $ export JOIN_KEY=$(openssl rand -hex 32) *
|
||||
* $ echo ${JOIN_KEY} *
|
||||
* *
|
||||
* Pass the created master key to helm with '--set artifactory.joinKey=${JOIN_KEY}' *
|
||||
* *
|
||||
********************************************************************************************
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- if and (or (or (or (or (or ( or ( or ( or (or (or ( or (or .Values.artifactory.masterKeySecretName .Values.global.masterKeySecretName) .Values.systemYamlOverride.existingSecret) (or .Values.artifactory.customCertificates.enabled .Values.global.customCertificates.enabled)) .Values.aws.licenseConfigSecretName) .Values.artifactory.persistence.customBinarystoreXmlSecret) .Values.access.customCertificatesSecretName) .Values.systemYamlOverride.existingSecret) .Values.artifactory.license.secret) .Values.artifactory.userPluginSecrets) (and .Values.artifactory.admin.secret .Values.artifactory.admin.dataKey)) (and .Values.artifactory.persistence.googleStorage.gcpServiceAccount.enabled .Values.artifactory.persistence.googleStorage.gcpServiceAccount.customSecretName)) (or .Values.artifactory.joinKeySecretName .Values.global.joinKeySecretName)) .Values.artifactory.unifiedSecretInstallation }}
|
||||
****************************************** WARNING **************************************************************************************************
|
||||
* The unifiedSecretInstallation flag is currently enabled, which creates the unified secret. The existing secrets will continue as separate secrets.*
|
||||
* Update the values.yaml with the existing secrets to add them to the unified secret. *
|
||||
*****************************************************************************************************************************************************
|
||||
{{- end }}
|
||||
|
||||
1. Get the Artifactory URL by running these commands:
|
||||
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- range .Values.ingress.hosts }}
|
||||
http://{{ . }}
|
||||
{{- end }}
|
||||
|
||||
{{- else if contains "NodePort" .Values.nginx.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "artifactory.nginx.fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT/
|
||||
|
||||
{{- else if contains "LoadBalancer" .Values.nginx.service.type }}
|
||||
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of the service by running 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "artifactory.nginx.fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "artifactory.nginx.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP/
|
||||
|
||||
{{- else if contains "ClusterIP" .Values.nginx.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "component={{ .Values.nginx.name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo http://127.0.0.1:{{ .Values.nginx.externalPortHttp }}
|
||||
kubectl port-forward --namespace {{ .Release.Namespace }} $POD_NAME {{ .Values.nginx.externalPortHttp }}:{{ .Values.nginx.internalPortHttp }}
|
||||
|
||||
{{- end }}
|
||||
|
||||
2. Open Artifactory in your browser
|
||||
Default credential for Artifactory:
|
||||
user: admin
|
||||
password: password
|
||||
|
||||
{{ if .Values.artifactory.javaOpts.jmx.enabled }}
|
||||
JMX configuration:
|
||||
{{- if not (contains "LoadBalancer" .Values.artifactory.service.type) }}
|
||||
If you want to access JMX from you computer with jconsole, you should set ".Values.artifactory.service.type=LoadBalancer" !!!
|
||||
{{ end }}
|
||||
|
||||
1. Get the Artifactory service IP:
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "artifactory.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
|
||||
2. Map the service name to the service IP in /etc/hosts:
|
||||
sudo sh -c "echo \"${SERVICE_IP} {{ template "artifactory.fullname" . }}\" >> /etc/hosts"
|
||||
|
||||
3. Launch jconsole:
|
||||
jconsole {{ template "artifactory.fullname" . }}:{{ .Values.artifactory.javaOpts.jmx.port }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,489 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "artifactory.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Expand the name nginx service.
|
||||
*/}}
|
||||
{{- define "artifactory.nginx.name" -}}
|
||||
{{- default .Chart.Name .Values.nginx.name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "artifactory.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified replicator app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "artifactory.replicator.fullname" -}}
|
||||
{{- if .Values.artifactory.replicator.ingress.name -}}
|
||||
{{- .Values.artifactory.replicator.ingress.name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-replication" .Chart.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified replicator tracker ingress name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "artifactory.replicator.tracker.fullname" -}}
|
||||
{{- if .Values.artifactory.replicator.trackerIngress.name -}}
|
||||
{{- .Values.artifactory.replicator.trackerIngress.name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-replication-tracker" .Chart.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified nginx name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "artifactory.nginx.fullname" -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- printf "%s-%s-%s" .Release.Name $name .Values.nginx.name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "artifactory.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
{{ default (include "artifactory.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else -}}
|
||||
{{ default "default" .Values.serviceAccount.name }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "artifactory.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Generate SSL certificates
|
||||
*/}}
|
||||
{{- define "artifactory.gen-certs" -}}
|
||||
{{- $altNames := list ( printf "%s.%s" (include "artifactory.fullname" .) .Release.Namespace ) ( printf "%s.%s.svc" (include "artifactory.fullname" .) .Release.Namespace ) -}}
|
||||
{{- $ca := genCA "artifactory-ca" 365 -}}
|
||||
{{- $cert := genSignedCert ( include "artifactory.fullname" . ) nil $altNames 365 $ca -}}
|
||||
tls.crt: {{ $cert.Cert | b64enc }}
|
||||
tls.key: {{ $cert.Key | b64enc }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Scheme (http/https) based on Access or Router TLS enabled/disabled
|
||||
*/}}
|
||||
{{- define "artifactory.scheme" -}}
|
||||
{{- if or .Values.access.accessConfig.security.tls .Values.router.tlsEnabled -}}
|
||||
{{- printf "%s" "https" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" "http" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve joinKey value
|
||||
*/}}
|
||||
{{- define "artifactory.joinKey" -}}
|
||||
{{- if .Values.global.joinKey -}}
|
||||
{{- .Values.global.joinKey -}}
|
||||
{{- else if .Values.artifactory.joinKey -}}
|
||||
{{- .Values.artifactory.joinKey -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve jfConnectToken value
|
||||
*/}}
|
||||
{{- define "artifactory.jfConnectToken" -}}
|
||||
{{- .Values.artifactory.jfConnectToken -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve masterKey value
|
||||
*/}}
|
||||
{{- define "artifactory.masterKey" -}}
|
||||
{{- if .Values.global.masterKey -}}
|
||||
{{- .Values.global.masterKey -}}
|
||||
{{- else if .Values.artifactory.masterKey -}}
|
||||
{{- .Values.artifactory.masterKey -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve joinKeySecretName value
|
||||
*/}}
|
||||
{{- define "artifactory.joinKeySecretName" -}}
|
||||
{{- if .Values.global.joinKeySecretName -}}
|
||||
{{- .Values.global.joinKeySecretName -}}
|
||||
{{- else if .Values.artifactory.joinKeySecretName -}}
|
||||
{{- .Values.artifactory.joinKeySecretName -}}
|
||||
{{- else -}}
|
||||
{{ include "artifactory.fullname" . }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve jfConnectTokenSecretName value
|
||||
*/}}
|
||||
{{- define "artifactory.jfConnectTokenSecretName" -}}
|
||||
{{- if .Values.artifactory.jfConnectTokenSecretName -}}
|
||||
{{- .Values.artifactory.jfConnectTokenSecretName -}}
|
||||
{{- else -}}
|
||||
{{ include "artifactory.fullname" . }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve masterKeySecretName value
|
||||
*/}}
|
||||
{{- define "artifactory.masterKeySecretName" -}}
|
||||
{{- if .Values.global.masterKeySecretName -}}
|
||||
{{- .Values.global.masterKeySecretName -}}
|
||||
{{- else if .Values.artifactory.masterKeySecretName -}}
|
||||
{{- .Values.artifactory.masterKeySecretName -}}
|
||||
{{- else -}}
|
||||
{{ include "artifactory.fullname" . }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve imagePullSecrets value
|
||||
*/}}
|
||||
{{- define "artifactory.imagePullSecrets" -}}
|
||||
{{- if .Values.global.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.global.imagePullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- else if .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- range .Values.imagePullSecrets }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve customInitContainersBegin value
|
||||
*/}}
|
||||
{{- define "artifactory.customInitContainersBegin" -}}
|
||||
{{- if .Values.global.customInitContainersBegin -}}
|
||||
{{- .Values.global.customInitContainersBegin -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.artifactory.customInitContainersBegin -}}
|
||||
{{- .Values.artifactory.customInitContainersBegin -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve customInitContainers value
|
||||
*/}}
|
||||
{{- define "artifactory.customInitContainers" -}}
|
||||
{{- if .Values.global.customInitContainers -}}
|
||||
{{- .Values.global.customInitContainers -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.artifactory.customInitContainers -}}
|
||||
{{- .Values.artifactory.customInitContainers -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve customVolumes value
|
||||
*/}}
|
||||
{{- define "artifactory.customVolumes" -}}
|
||||
{{- if .Values.global.customVolumes -}}
|
||||
{{- .Values.global.customVolumes -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.artifactory.customVolumes -}}
|
||||
{{- .Values.artifactory.customVolumes -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve customVolumeMounts value
|
||||
*/}}
|
||||
{{- define "artifactory.customVolumeMounts" -}}
|
||||
{{- if .Values.global.customVolumeMounts -}}
|
||||
{{- .Values.global.customVolumeMounts -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.artifactory.customVolumeMounts -}}
|
||||
{{- .Values.artifactory.customVolumeMounts -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve customSidecarContainers value
|
||||
*/}}
|
||||
{{- define "artifactory.customSidecarContainers" -}}
|
||||
{{- if .Values.global.customSidecarContainers -}}
|
||||
{{- .Values.global.customSidecarContainers -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.artifactory.customSidecarContainers -}}
|
||||
{{- .Values.artifactory.customSidecarContainers -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the proper artifactory chart image names
|
||||
*/}}
|
||||
{{- define "artifactory.getImageInfoByValue" -}}
|
||||
{{- $dot := index . 0 }}
|
||||
{{- $indexReference := index . 1 }}
|
||||
{{- $registryName := index $dot.Values $indexReference "image" "registry" -}}
|
||||
{{- $repositoryName := index $dot.Values $indexReference "image" "repository" -}}
|
||||
{{- $tag := default $dot.Chart.AppVersion (index $dot.Values $indexReference "image" "tag") | toString -}}
|
||||
{{- if $dot.Values.global }}
|
||||
{{- if and $dot.Values.splitServicesToContainers $dot.Values.global.versions.router (eq $indexReference "router") }}
|
||||
{{- $tag = $dot.Values.global.versions.router | toString -}}
|
||||
{{- end -}}
|
||||
{{- if and $dot.Values.global.versions.artifactory (or (eq $indexReference "artifactory") (eq $indexReference "nginx") ) }}
|
||||
{{- $tag = $dot.Values.global.versions.artifactory | toString -}}
|
||||
{{- end -}}
|
||||
{{- if $dot.Values.global.imageRegistry }}
|
||||
{{- printf "%s/%s:%s" $dot.Values.global.imageRegistry $repositoryName $tag -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the proper artifactory app version
|
||||
*/}}
|
||||
{{- define "artifactory.app.version" -}}
|
||||
{{- $image := split ":" ((include "artifactory.getImageInfoByValue" (list . "artifactory")) | toString) -}}
|
||||
{{- $tag := $image._1 -}}
|
||||
{{- printf "%s" $tag -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Custom certificate copy command
|
||||
*/}}
|
||||
{{- define "artifactory.copyCustomCerts" -}}
|
||||
echo "Copy custom certificates to {{ .Values.artifactory.persistence.mountPath }}/etc/security/keys/trusted";
|
||||
mkdir -p {{ .Values.artifactory.persistence.mountPath }}/etc/security/keys/trusted;
|
||||
for file in $(ls -1 /tmp/certs/* | grep -v .key | grep -v ":" | grep -v grep); do if [ -f "${file}" ]; then cp -v ${file} {{ .Values.artifactory.persistence.mountPath }}/etc/security/keys/trusted; fi done;
|
||||
if [ -f {{ .Values.artifactory.persistence.mountPath }}/etc/security/keys/trusted/tls.crt ]; then mv -v {{ .Values.artifactory.persistence.mountPath }}/etc/security/keys/trusted/tls.crt {{ .Values.artifactory.persistence.mountPath }}/etc/security/keys/trusted/ca.crt; fi;
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Circle of trust certificates copy command
|
||||
*/}}
|
||||
{{- define "artifactory.copyCircleOfTrustCertsCerts" -}}
|
||||
echo "Copy circle of trust certificates to {{ .Values.artifactory.persistence.mountPath }}/etc/access/keys/trusted";
|
||||
mkdir -p {{ .Values.artifactory.persistence.mountPath }}/etc/access/keys/trusted;
|
||||
for file in $(ls -1 /tmp/circleoftrustcerts/* | grep -v .key | grep -v ":" | grep -v grep); do if [ -f "${file}" ]; then cp -v ${file} {{ .Values.artifactory.persistence.mountPath }}/etc/access/keys/trusted; fi done;
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve requiredServiceTypes value
|
||||
*/}}
|
||||
{{- define "artifactory.router.requiredServiceTypes" -}}
|
||||
{{- $requiredTypes := "jfrt,jfac" -}}
|
||||
{{- if not .Values.access.enabled -}}
|
||||
{{- $requiredTypes = "jfrt" -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.observability.enabled -}}
|
||||
{{- $requiredTypes = printf "%s,%s" $requiredTypes "jfob" -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.metadata.enabled -}}
|
||||
{{- $requiredTypes = printf "%s,%s" $requiredTypes "jfmd" -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.event.enabled -}}
|
||||
{{- $requiredTypes = printf "%s,%s" $requiredTypes "jfevt" -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.integration.enabled -}}
|
||||
{{- $requiredTypes = printf "%s,%s" $requiredTypes "jfint" -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.frontend.enabled -}}
|
||||
{{- $requiredTypes = printf "%s,%s" $requiredTypes "jffe" -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.jfconnect.enabled -}}
|
||||
{{- $requiredTypes = printf "%s,%s" $requiredTypes "jfcon" -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.artifactory.replicator.enabled -}}
|
||||
{{- $requiredTypes = printf "%s,%s" $requiredTypes "jfxfer" -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.mc.enabled -}}
|
||||
{{- $requiredTypes = printf "%s,%s" $requiredTypes "jfmc" -}}
|
||||
{{- end -}}
|
||||
{{- $requiredTypes -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Check if the image is artifactory pro or not
|
||||
*/}}
|
||||
{{- define "artifactory.isImageProType" -}}
|
||||
{{- if not (regexMatch "^.*(oss|cpp-ce|jcr).*$" .Values.artifactory.image.repository) -}}
|
||||
{{ true }}
|
||||
{{- else -}}
|
||||
{{ false }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Check if the artifactory is using derby database
|
||||
*/}}
|
||||
{{- define "artifactory.isUsingDerby" -}}
|
||||
{{- if and (eq (default "derby" .Values.database.type) "derby") (not .Values.postgresql.enabled) -}}
|
||||
{{ true }}
|
||||
{{- else -}}
|
||||
{{ false }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
nginx scheme (http/https)
|
||||
*/}}
|
||||
{{- define "nginx.scheme" -}}
|
||||
{{- if .Values.nginx.http.enabled -}}
|
||||
{{- printf "%s" "http" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" "https" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
nginx command
|
||||
*/}}
|
||||
{{- define "nginx.command" -}}
|
||||
{{- if .Values.nginx.customCommand }}
|
||||
{{ toYaml .Values.nginx.customCommand }}
|
||||
{{ else }}
|
||||
- nginx
|
||||
- -g
|
||||
- 'daemon off;'
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
nginx port (80/443) based on http/https enabled
|
||||
*/}}
|
||||
{{- define "nginx.port" -}}
|
||||
{{- if .Values.nginx.http.enabled -}}
|
||||
{{- .Values.nginx.http.internalPort -}}
|
||||
{{- else -}}
|
||||
{{- .Values.nginx.https.internalPort -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve customInitContainers value
|
||||
*/}}
|
||||
{{- define "artifactory.nginx.customInitContainers" -}}
|
||||
{{- if .Values.nginx.customInitContainers -}}
|
||||
{{- .Values.nginx.customInitContainers -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve customVolumes value
|
||||
*/}}
|
||||
{{- define "artifactory.nginx.customVolumes" -}}
|
||||
{{- if .Values.nginx.customVolumes -}}
|
||||
{{- .Values.nginx.customVolumes -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{/*
|
||||
Resolve customVolumeMounts nginx value
|
||||
*/}}
|
||||
{{- define "artifactory.nginx.customVolumeMounts" -}}
|
||||
{{- if .Values.nginx.customVolumeMounts -}}
|
||||
{{- .Values.nginx.customVolumeMounts -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{/*
|
||||
Resolve customSidecarContainers value
|
||||
*/}}
|
||||
{{- define "artifactory.nginx.customSidecarContainers" -}}
|
||||
{{- if .Values.nginx.customSidecarContainers -}}
|
||||
{{- .Values.nginx.customSidecarContainers -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve Artifactory pod node selector value
|
||||
*/}}
|
||||
{{- define "artifactory.nodeSelector" -}}
|
||||
nodeSelector:
|
||||
{{- if .Values.global.nodeSelector }}
|
||||
{{ toYaml .Values.global.nodeSelector | indent 2 }}
|
||||
{{- else if .Values.artifactory.nodeSelector }}
|
||||
{{ toYaml .Values.artifactory.nodeSelector | indent 2 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve Nginx pods node selector value
|
||||
*/}}
|
||||
{{- define "nginx.nodeSelector" -}}
|
||||
nodeSelector:
|
||||
{{- if .Values.global.nodeSelector }}
|
||||
{{ toYaml .Values.global.nodeSelector | indent 2 }}
|
||||
{{- else if .Values.nginx.nodeSelector }}
|
||||
{{ toYaml .Values.nginx.nodeSelector | indent 2 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve unifiedCustomSecretVolumeName value
|
||||
*/}}
|
||||
{{- define "artifactory.unifiedCustomSecretVolumeName" -}}
|
||||
{{- printf "%s-%s" (include "artifactory.name" .) ("unified-secret-volume") | trunc 63 -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Check the Duplication of volume names for secrets. If unifiedSecretInstallation is enabled then the method is checking for volume names,
|
||||
if the volume exists in customVolume then an extra volume with the same name will not be getting added in unifiedSecretInstallation case.
|
||||
*/}}
|
||||
{{- define "artifactory.checkDuplicateUnifiedCustomVolume" -}}
|
||||
{{- if or .Values.global.customVolumes .Values.artifactory.customVolumes -}}
|
||||
{{- $val := (tpl (include "artifactory.customVolumes" .) .) | toJson -}}
|
||||
{{- contains (include "artifactory.unifiedCustomSecretVolumeName" .) $val | toString -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" "false" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Resolve fsGroup and runAsGroup on cluster based
|
||||
*/}}
|
||||
{{- define "artifactory.isOpenshiftCompatible" -}}
|
||||
{{- if (.Capabilities.APIVersions.Has "security.openshift.io/v1/SecurityContextConstraints") -}}
|
||||
{{- printf "%s" "true" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" "false" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,3 @@
|
||||
{{ if .Values.additionalResources }}
|
||||
{{ tpl .Values.additionalResources . }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,15 @@
|
||||
{{- if not (and .Values.artifactory.admin.secret .Values.artifactory.admin.dataKey) }}
|
||||
{{- if and .Values.artifactory.admin.password (not .Values.artifactory.unifiedSecretInstallation) }}
|
||||
kind: Secret
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-bootstrap-creds
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
data:
|
||||
bootstrap.creds: {{ (printf "%s@%s=%s" .Values.artifactory.admin.username .Values.artifactory.admin.ip .Values.artifactory.admin.password) | b64enc }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,15 @@
|
||||
{{- if and .Values.access.accessConfig (not .Values.artifactory.unifiedSecretInstallation) }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-access-config
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
type: Opaque
|
||||
stringData:
|
||||
access.config.patch.yml: |
|
||||
{{ tpl (toYaml .Values.access.accessConfig) . | indent 4 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,18 @@
|
||||
{{- if and (not .Values.artifactory.persistence.customBinarystoreXmlSecret) (not .Values.artifactory.unifiedSecretInstallation) }}
|
||||
kind: Secret
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-binarystore
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
stringData:
|
||||
binarystore.xml: |-
|
||||
{{- if .Values.artifactory.persistence.binarystoreXml }}
|
||||
{{ tpl .Values.artifactory.persistence.binarystoreXml . | indent 4 }}
|
||||
{{- else }}
|
||||
{{ tpl ( .Files.Get "files/binarystore.xml" ) . | indent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,13 @@
|
||||
{{ if .Values.artifactory.configMaps }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-configmaps
|
||||
labels:
|
||||
app: {{ template "artifactory.fullname" . }}
|
||||
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
data:
|
||||
{{ tpl .Values.artifactory.configMaps . | indent 2 }}
|
||||
{{ end -}}
|
||||
@@ -0,0 +1,19 @@
|
||||
{{- if and .Values.artifactory.customSecrets (not .Values.artifactory.unifiedSecretInstallation) }}
|
||||
{{- range .Values.artifactory.customSecrets }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" $ }}-{{ .name }}
|
||||
labels:
|
||||
app: "{{ template "artifactory.name" $ }}"
|
||||
chart: "{{ template "artifactory.chart" $ }}"
|
||||
component: "{{ $.Values.artifactory.name }}"
|
||||
heritage: {{ $.Release.Service | quote }}
|
||||
release: {{ $.Release.Name | quote }}
|
||||
type: Opaque
|
||||
stringData:
|
||||
{{ .key }}: |
|
||||
{{ .data | indent 4 -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,24 @@
|
||||
{{- if and (not .Values.database.secrets) (not .Values.postgresql.enabled) (not .Values.artifactory.unifiedSecretInstallation) }}
|
||||
{{- if or .Values.database.url .Values.database.user .Values.database.password }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-database-creds
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
type: Opaque
|
||||
data:
|
||||
{{- with .Values.database.url }}
|
||||
db-url: {{ tpl . $ | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- with .Values.database.user }}
|
||||
db-user: {{ tpl . $ | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- with .Values.database.password }}
|
||||
db-password: {{ tpl . $ | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,19 @@
|
||||
{{- if .Values.externalSecret.enabled -}}
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-secret
|
||||
spec:
|
||||
dataFrom:
|
||||
- extract:
|
||||
conversionStrategy: Default
|
||||
key: {{ .Values.externalSecret.key }}
|
||||
refreshInterval: 15s
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: {{ .Values.externalSecret.secretStoreRef.name }}
|
||||
target:
|
||||
creationPolicy: Owner
|
||||
deletionPolicy: Retain
|
||||
name: {{ template "artifactory.fullname" . }}-secret
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,16 @@
|
||||
{{- if not .Values.artifactory.persistence.googleStorage.gcpServiceAccount.customSecretName }}
|
||||
{{- if and (.Values.artifactory.persistence.googleStorage.gcpServiceAccount.enabled) (not .Values.artifactory.unifiedSecretInstallation) }}
|
||||
kind: Secret
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-gcpcreds
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
stringData:
|
||||
gcp.credentials.json: |-
|
||||
{{ tpl .Values.artifactory.persistence.googleStorage.gcpServiceAccount.config . | indent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,29 @@
|
||||
{{- if .Values.autoscaling.enabled }}
|
||||
{{- if semverCompare ">=v1.23.0-0" .Capabilities.KubeVersion.Version }}
|
||||
apiVersion: autoscaling/v2
|
||||
{{- else }}
|
||||
apiVersion: autoscaling/v2beta2
|
||||
{{- end }}
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
name: {{ template "artifactory.fullname" . }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
name: {{ template "artifactory.fullname" . }}
|
||||
minReplicas: {{ .Values.autoscaling.minReplicas }}
|
||||
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
|
||||
metrics:
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,12 @@
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-installer-info
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
data:
|
||||
installer-info.json: |
|
||||
{{ tpl .Values.installerInfo . }}
|
||||
@@ -0,0 +1,16 @@
|
||||
{{ if (not .Values.artifactory.unifiedSecretInstallation) }}
|
||||
{{- with .Values.artifactory.license.licenseKey }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" $ }}-license
|
||||
labels:
|
||||
app: {{ template "artifactory.name" $ }}
|
||||
chart: {{ template "artifactory.chart" $ }}
|
||||
heritage: {{ $.Release.Service }}
|
||||
release: {{ $.Release.Name }}
|
||||
type: Opaque
|
||||
data:
|
||||
artifactory.lic: {{ . | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,18 @@
|
||||
{{- if .Values.artifactory.migration.enabled }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-migration-scripts
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
data:
|
||||
migrate.sh: |
|
||||
{{ .Files.Get "files/migrate.sh" | indent 4 }}
|
||||
migrationHelmInfo.yaml: |
|
||||
{{ .Files.Get "files/migrationHelmInfo.yaml" | indent 4 }}
|
||||
migrationStatus.sh: |
|
||||
{{ .Files.Get "files/migrationStatus.sh" | indent 4 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,34 @@
|
||||
{{- range .Values.networkpolicy }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" $ }}-{{ .name }}-networkpolicy
|
||||
labels:
|
||||
app: {{ template "artifactory.name" $ }}
|
||||
chart: {{ template "artifactory.chart" $ }}
|
||||
release: {{ $.Release.Name }}
|
||||
heritage: {{ $.Release.Service }}
|
||||
spec:
|
||||
{{- if .podSelector }}
|
||||
podSelector:
|
||||
{{ .podSelector | toYaml | trimSuffix "\n" | indent 4 -}}
|
||||
{{ else }}
|
||||
podSelector: {}
|
||||
{{- end }}
|
||||
policyTypes:
|
||||
{{- if .ingress }}
|
||||
- Ingress
|
||||
{{- end }}
|
||||
{{- if .egress }}
|
||||
- Egress
|
||||
{{- end }}
|
||||
{{- if .ingress }}
|
||||
ingress:
|
||||
{{ .ingress | toYaml | trimSuffix "\n" | indent 2 -}}
|
||||
{{- end }}
|
||||
{{- if .egress }}
|
||||
egress:
|
||||
{{ .egress | toYaml | trimSuffix "\n" | indent 2 -}}
|
||||
{{- end }}
|
||||
---
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,101 @@
|
||||
{{- if eq .Values.artifactory.persistence.type "nfs" }}
|
||||
### Artifactory HA data
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-data-pv
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
id: {{ template "artifactory.name" . }}-data-pv
|
||||
type: nfs-volume
|
||||
spec:
|
||||
{{- if .Values.artifactory.persistence.nfs.mountOptions }}
|
||||
mountOptions:
|
||||
{{ toYaml .Values.artifactory.persistence.nfs.mountOptions | indent 4 }}
|
||||
{{- end }}
|
||||
capacity:
|
||||
storage: {{ .Values.artifactory.persistence.nfs.capacity }}
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
nfs:
|
||||
server: {{ .Values.artifactory.persistence.nfs.ip }}
|
||||
path: "{{ .Values.artifactory.persistence.nfs.haDataMount }}"
|
||||
readOnly: false
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-data-pvc
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
type: nfs-volume
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
storageClassName: ""
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.artifactory.persistence.nfs.capacity }}
|
||||
selector:
|
||||
matchLabels:
|
||||
id: {{ template "artifactory.name" . }}-data-pv
|
||||
app: {{ template "artifactory.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
---
|
||||
### Artifactory HA backup
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-backup-pv
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
id: {{ template "artifactory.name" . }}-backup-pv
|
||||
type: nfs-volume
|
||||
spec:
|
||||
{{- if .Values.artifactory.persistence.nfs.mountOptions }}
|
||||
mountOptions:
|
||||
{{ toYaml .Values.artifactory.persistence.nfs.mountOptions | indent 4 }}
|
||||
{{- end }}
|
||||
capacity:
|
||||
storage: {{ .Values.artifactory.persistence.nfs.capacity }}
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
nfs:
|
||||
server: {{ .Values.artifactory.persistence.nfs.ip }}
|
||||
path: "{{ .Values.artifactory.persistence.nfs.haBackupMount }}"
|
||||
readOnly: false
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-backup-pvc
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
type: nfs-volume
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
storageClassName: ""
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.artifactory.persistence.nfs.capacity }}
|
||||
selector:
|
||||
matchLabels:
|
||||
id: {{ template "artifactory.name" . }}-backup-pv
|
||||
app: {{ template "artifactory.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,24 @@
|
||||
{{- if .Values.artifactory.minAvailable -}}
|
||||
{{- if semverCompare "<v1.21.0-0" .Capabilities.KubeVersion.Version }}
|
||||
apiVersion: policy/v1beta1
|
||||
{{- else }}
|
||||
apiVersion: policy/v1
|
||||
{{- end }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
component: {{ .Values.artifactory.name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
component: {{ .Values.artifactory.name }}
|
||||
app: {{ template "artifactory.name" . }}
|
||||
role: {{ template "artifactory.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
minAvailable: {{ .Values.artifactory.minAvailable }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,9 @@
|
||||
{{- if .Values.artifactory.priorityClass.create }}
|
||||
apiVersion: scheduling.k8s.io/v1
|
||||
kind: PriorityClass
|
||||
metadata:
|
||||
name: {{ default (include "artifactory.fullname" .) .Values.artifactory.priorityClass.name }}
|
||||
value: {{ .Values.artifactory.priorityClass.value }}
|
||||
globalDefault: false
|
||||
description: "Artifactory priority class"
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if .Values.rbac.create }}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
component: {{ .Values.artifactory.name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
name: {{ template "artifactory.fullname" . }}
|
||||
rules:
|
||||
{{ toYaml .Values.rbac.role.rules }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,19 @@
|
||||
{{- if .Values.rbac.create }}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
component: {{ .Values.artifactory.name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
name: {{ template "artifactory.fullname" . }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ template "artifactory.serviceAccountName" . }}
|
||||
roleRef:
|
||||
kind: Role
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
name: {{ template "artifactory.fullname" . }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,28 @@
|
||||
{{- if not .Values.artifactory.unifiedSecretInstallation }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
type: Opaque
|
||||
data:
|
||||
{{- if or .Values.artifactory.masterKey .Values.global.masterKey }}
|
||||
{{- if not (or .Values.artifactory.masterKeySecretName .Values.global.masterKeySecretName) }}
|
||||
master-key: {{ include "artifactory.masterKey" . | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if or .Values.artifactory.joinKey .Values.global.joinKey }}
|
||||
{{- if not (or .Values.artifactory.joinKeySecretName .Values.global.joinKeySecretName) }}
|
||||
join-key: {{ include "artifactory.joinKey" . | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.artifactory.jfConnectToken }}
|
||||
{{- if not (.Values.artifactory.jfConnectTokenSecretName) }}
|
||||
jfconnect-token: {{ include "artifactory.jfConnectToken" . | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,57 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
component: {{ .Values.artifactory.name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
{{- with .Values.artifactory.labels }}
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.artifactory.service.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.artifactory.service.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.artifactory.service.type }}
|
||||
{{- if .Values.artifactory.service.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.artifactory.service.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- port: {{ .Values.artifactory.externalPort }}
|
||||
targetPort: {{ .Values.artifactory.internalPort }}
|
||||
{{- if .Values.artifactory.nodePort }}
|
||||
nodePort: {{ .Values.artifactory.nodePort }}
|
||||
{{- end }}
|
||||
protocol: TCP
|
||||
name: http-router
|
||||
- port: {{ .Values.federation.internalPort }}
|
||||
targetPort: {{ .Values.federation.internalPort }}
|
||||
protocol: TCP
|
||||
name: http-rtfs
|
||||
- port: {{ .Values.artifactory.externalArtifactoryPort }}
|
||||
targetPort: {{ .Values.artifactory.internalArtifactoryPort }}
|
||||
protocol: TCP
|
||||
name: http-artifactory
|
||||
{{- if .Values.artifactory.ssh.enabled }}
|
||||
- port: {{ .Values.artifactory.ssh.externalPort }}
|
||||
targetPort: {{ .Values.artifactory.ssh.internalPort }}
|
||||
protocol: TCP
|
||||
name: tcp-ssh
|
||||
{{- end }}
|
||||
{{- with .Values.artifactory.javaOpts.jmx }}
|
||||
{{- if .enabled }}
|
||||
- port: {{ .port }}
|
||||
targetPort: {{ .port }}
|
||||
protocol: TCP
|
||||
name: tcp-jmx
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
selector:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
component: "{{ .Values.artifactory.name }}"
|
||||
release: {{ .Release.Name }}
|
||||
@@ -0,0 +1,17 @@
|
||||
{{- if .Values.serviceAccount.create }}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
{{- with .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{ tpl (toYaml .) $ | indent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
component: {{ .Values.artifactory.name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
name: {{ template "artifactory.serviceAccountName" . }}
|
||||
automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
|
||||
{{- end }}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,15 @@
|
||||
{{- if and (not .Values.systemYamlOverride.existingSecret) (not .Values.artifactory.unifiedSecretInstallation) }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-systemyaml
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
type: Opaque
|
||||
stringData:
|
||||
system.yaml: |
|
||||
{{ tpl .Values.artifactory.systemYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,92 @@
|
||||
{{- if .Values.artifactory.unifiedSecretInstallation }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ template "artifactory.name" . }}-unified-secret
|
||||
labels:
|
||||
app: "{{ template "artifactory.name" $ }}"
|
||||
chart: "{{ template "artifactory.chart" $ }}"
|
||||
component: "{{ $.Values.artifactory.name }}"
|
||||
heritage: {{ $.Release.Service | quote }}
|
||||
release: {{ $.Release.Name | quote }}
|
||||
type: Opaque
|
||||
stringData:
|
||||
|
||||
{{- if .Values.access.accessConfig }}
|
||||
access.config.patch.yml: |
|
||||
{{ tpl (toYaml .Values.access.accessConfig) . | indent 4 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if and (not .Values.artifactory.persistence.customBinarystoreXmlSecret) }}
|
||||
binarystore.xml: |-
|
||||
{{- if .Values.artifactory.persistence.binarystoreXml }}
|
||||
{{ tpl .Values.artifactory.persistence.binarystoreXml . | indent 4 }}
|
||||
{{- else }}
|
||||
{{ tpl ( .Files.Get "files/binarystore.xml" ) . | indent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- if not .Values.systemYamlOverride.existingSecret }}
|
||||
system.yaml: |
|
||||
{{ tpl .Values.artifactory.systemYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if and .Values.artifactory.customSecrets }}
|
||||
{{- range .Values.artifactory.customSecrets }}
|
||||
{{ .key }}: |
|
||||
{{ .data | indent 4 -}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- if not .Values.artifactory.persistence.googleStorage.gcpServiceAccount.customSecretName }}
|
||||
{{- if .Values.artifactory.persistence.googleStorage.gcpServiceAccount.enabled }}
|
||||
gcp.credentials.json: |-
|
||||
{{ tpl .Values.artifactory.persistence.googleStorage.gcpServiceAccount.config . | indent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
data:
|
||||
|
||||
{{- if and (not .Values.database.secrets) (not .Values.postgresql.enabled) }}
|
||||
{{- if or .Values.database.url .Values.database.user .Values.database.password }}
|
||||
|
||||
{{- with .Values.database.url }}
|
||||
db-url: {{ tpl . $ | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- with .Values.database.user }}
|
||||
db-user: {{ tpl . $ | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- with .Values.database.password }}
|
||||
db-password: {{ tpl . $ | b64enc | quote }}
|
||||
{{- end }}
|
||||
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- if not (and .Values.artifactory.admin.secret .Values.artifactory.admin.dataKey) }}
|
||||
{{- if .Values.artifactory.admin.password }}
|
||||
bootstrap.creds: {{ (printf "%s@%s=%s" .Values.artifactory.admin.username .Values.artifactory.admin.ip .Values.artifactory.admin.password) | b64enc }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- with .Values.artifactory.license.licenseKey }}
|
||||
artifactory.lic: {{ . | b64enc | quote }}
|
||||
{{- end }}
|
||||
|
||||
{{- if or .Values.artifactory.masterKey .Values.global.masterKey }}
|
||||
{{- if not (or .Values.artifactory.masterKeySecretName .Values.global.masterKeySecretName) }}
|
||||
master-key: {{ include "artifactory.masterKey" . | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if or .Values.artifactory.joinKey .Values.global.joinKey }}
|
||||
{{- if not (or .Values.artifactory.joinKeySecretName .Values.global.joinKeySecretName) }}
|
||||
join-key: {{ include "artifactory.joinKey" . | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.artifactory.jfConnectToken }}
|
||||
{{- if not (.Values.artifactory.jfConnectTokenSecretName) }}
|
||||
jfconnect-token: {{ include "artifactory.jfConnectToken" . | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- end }}
|
||||
@@ -0,0 +1,15 @@
|
||||
{{- if .Values.filebeat.enabled }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-filebeat-config
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
|
||||
heritage: {{ .Release.Service | quote }}
|
||||
release: {{ .Release.Name | quote }}
|
||||
data:
|
||||
filebeat.yml: |
|
||||
{{ tpl .Values.filebeat.filebeatYml . | indent 4 }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,260 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $serviceName := include "artifactory.fullname" . -}}
|
||||
{{- $servicePort := .Values.artifactory.externalPort -}}
|
||||
{{- $artifactoryServicePort := .Values.artifactory.externalArtifactoryPort -}}
|
||||
{{- $ingressName := default ( include "artifactory.fullname" . ) .Values.ingress.name -}}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{- else }}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $ingressName }}
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
{{- if .Values.ingress.labels }}
|
||||
{{ .Values.ingress.labels | toYaml | trimSuffix "\n"| indent 4 -}}
|
||||
{{- end}}
|
||||
{{- with .Values.artifactory.labels }}
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{ .Values.ingress.annotations | toYaml | trimSuffix "\n" | indent 4 -}}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if and .Values.ingress.className (semverCompare ">=1.18.0-0" .Capabilities.KubeVersion.GitVersion) }}
|
||||
ingressClassName: {{ .Values.ingress.className }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingress.defaultBackend.enabled }}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
defaultBackend:
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{- else }}
|
||||
backend:
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- if .Values.ingress.hosts }}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
{{- range $host := .Values.ingress.hosts }}
|
||||
- host: {{ $host | quote }}
|
||||
http:
|
||||
paths:
|
||||
- path: {{ $.Values.ingress.routerPath }}
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
- path: {{ $.Values.ingress.artifactoryPath }}
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $artifactoryServicePort }}
|
||||
{{- if and $.Values.federation.enabled (not (regexMatch "^.*(oss|cpp-ce|jcr).*$" $.Values.artifactory.image.repository)) }}
|
||||
- path: {{ $.Values.ingress.rtfsPath }}
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $.Values.federation.internalPort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- range $host := .Values.ingress.hosts }}
|
||||
- host: {{ $host | quote }}
|
||||
http:
|
||||
paths:
|
||||
- path: {{ $.Values.ingress.routerPath }}
|
||||
backend:
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $servicePort }}
|
||||
- path: {{ $.Values.ingress.artifactoryPath }}
|
||||
backend:
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $artifactoryServicePort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- with .Values.ingress.additionalRules }}
|
||||
{{ tpl . $ | indent 2 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{ toYaml .Values.ingress.tls | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- if and .Values.artifactory.replicator.enabled .Values.artifactory.replicator.ingress.enabled }}
|
||||
---
|
||||
{{- $replicatorIngressName := default ( include "artifactory.replicator.fullname" . ) .Values.artifactory.replicator.ingress.name -}}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{- else }}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $replicatorIngressName }}
|
||||
labels:
|
||||
app: "{{ template "artifactory.name" $ }}"
|
||||
chart: "{{ template "artifactory.chart" $ }}"
|
||||
release: {{ $.Release.Name | quote }}
|
||||
heritage: {{ $.Release.Service | quote }}
|
||||
{{- if .Values.artifactory.replicator.ingress.annotations }}
|
||||
annotations:
|
||||
{{ .Values.artifactory.replicator.ingress.annotations | toYaml | trimSuffix "\n" | indent 4 -}}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if and (or .Values.ingress.className .Values.artifactory.replicator.ingress.className) (semverCompare ">=1.18.0-0" .Capabilities.KubeVersion.GitVersion) }}
|
||||
ingressClassName: {{ default .Values.ingress.className .Values.artifactory.replicator.ingress.className }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingress.defaultBackend.enabled }}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
defaultBackend:
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{- else }}
|
||||
backend:
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- if .Values.artifactory.replicator.ingress.hosts }}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
{{- range $host := .Values.artifactory.replicator.ingress.hosts }}
|
||||
- host: {{ $host | quote }}
|
||||
http:
|
||||
paths:
|
||||
- path: /replicator/
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
- path: /artifactory/api/replication/replicate/file/streaming
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- range $host := .Values.artifactory.replicator.ingress.hosts }}
|
||||
- host: {{ $host | quote }}
|
||||
http:
|
||||
paths:
|
||||
- path: /replicator/
|
||||
backend:
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $servicePort }}
|
||||
- path: /artifactory/api/replication/replicate/file/streaming
|
||||
backend:
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- if .Values.artifactory.replicator.ingress.tls }}
|
||||
tls:
|
||||
{{ toYaml .Values.artifactory.replicator.ingress.tls | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if and .Values.artifactory.replicator.enabled .Values.artifactory.replicator.trackerIngress.enabled }}
|
||||
---
|
||||
{{- $replicatorTrackerIngressName := default ( include "artifactory.replicator.tracker.fullname" . ) .Values.artifactory.replicator.trackerIngress.name -}}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{- else }}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $replicatorTrackerIngressName }}
|
||||
labels:
|
||||
app: "{{ template "artifactory.name" $ }}"
|
||||
chart: "{{ template "artifactory.chart" $ }}"
|
||||
release: {{ $.Release.Name | quote }}
|
||||
heritage: {{ $.Release.Service | quote }}
|
||||
{{- if .Values.artifactory.replicator.trackerIngress.annotations }}
|
||||
annotations:
|
||||
{{ .Values.artifactory.replicator.trackerIngress.annotations | toYaml | trimSuffix "\n" | indent 4 -}}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if and (or .Values.ingress.className .Values.artifactory.replicator.trackerIngress.className) (semverCompare ">=1.18.0-0" .Capabilities.KubeVersion.GitVersion) }}
|
||||
ingressClassName: {{ default .Values.ingress.className .Values.artifactory.replicator.trackerIngress.className }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingress.defaultBackend.enabled }}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
defaultBackend:
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{- else }}
|
||||
backend:
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- if .Values.artifactory.replicator.trackerIngress.hosts }}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
{{- range $host := .Values.artifactory.replicator.trackerIngress.hosts }}
|
||||
- host: {{ $host | quote }}
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- range $host := .Values.artifactory.replicator.trackerIngress.hosts }}
|
||||
- host: {{ $host | quote }}
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- if .Values.artifactory.replicator.trackerIngress.tls }}
|
||||
tls:
|
||||
{{ toYaml .Values.artifactory.replicator.trackerIngress.tls | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.customIngress }}
|
||||
---
|
||||
{{ .Values.customIngress | toYaml | trimSuffix "\n" }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,63 @@
|
||||
{{- if or .Values.artifactory.loggers .Values.artifactory.catalinaLoggers }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-logger
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
data:
|
||||
tail-log.sh: |
|
||||
#!/bin/sh
|
||||
|
||||
LOG_DIR=$1
|
||||
LOG_NAME=$2
|
||||
PID=
|
||||
|
||||
# Wait for log dir to appear
|
||||
while [ ! -d ${LOG_DIR} ]; do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
cd ${LOG_DIR}
|
||||
|
||||
LOG_PREFIX=$(echo ${LOG_NAME} | sed 's/.log$//g')
|
||||
|
||||
# Find the log to tail
|
||||
LOG_FILE=$(ls -1t ./${LOG_PREFIX}.log 2>/dev/null)
|
||||
|
||||
# Wait for the log file
|
||||
while [ -z "${LOG_FILE}" ]; do
|
||||
sleep 1
|
||||
LOG_FILE=$(ls -1t ./${LOG_PREFIX}.log 2>/dev/null)
|
||||
done
|
||||
|
||||
echo "Log file ${LOG_FILE} is ready!"
|
||||
|
||||
# Get inode number
|
||||
INODE_ID=$(ls -i ${LOG_FILE})
|
||||
|
||||
# echo "Tailing ${LOG_FILE}"
|
||||
tail -F ${LOG_FILE} &
|
||||
PID=$!
|
||||
|
||||
# Loop forever to see if a new log was created
|
||||
while true; do
|
||||
# Check inode number
|
||||
NEW_INODE_ID=$(ls -i ${LOG_FILE})
|
||||
|
||||
# If inode number changed, this means log was rotated and need to start a new tail
|
||||
if [ "${INODE_ID}" != "${NEW_INODE_ID}" ]; then
|
||||
kill -9 ${PID} 2>/dev/null
|
||||
INODE_ID="${NEW_INODE_ID}"
|
||||
|
||||
# Start a new tail
|
||||
tail -F ${LOG_FILE} &
|
||||
PID=$!
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and (not .Values.nginx.customArtifactoryConfigMap) .Values.nginx.enabled }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-nginx-artifactory-conf
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
data:
|
||||
artifactory.conf: |
|
||||
{{ tpl .Values.nginx.artifactoryConf . | indent 4 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and (not .Values.nginx.tlsSecretName) .Values.nginx.enabled .Values.nginx.https.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
type: kubernetes.io/tls
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-nginx-certificate
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
data:
|
||||
{{ ( include "artifactory.gen-certs" . ) | indent 2 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,14 @@
|
||||
{{- if and (not .Values.nginx.customConfigMap) .Values.nginx.enabled }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-nginx-conf
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
data:
|
||||
nginx.conf: |
|
||||
{{ tpl .Values.nginx.mainConf . | indent 4 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,216 @@
|
||||
{{- if .Values.nginx.enabled -}}
|
||||
{{- $serviceName := include "artifactory.fullname" . -}}
|
||||
{{- $servicePort := .Values.artifactory.externalPort -}}
|
||||
apiVersion: apps/v1
|
||||
kind: {{ .Values.nginx.kind }}
|
||||
metadata:
|
||||
name: {{ template "artifactory.nginx.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
component: {{ .Values.nginx.name }}
|
||||
{{- if .Values.nginx.labels }}
|
||||
{{ toYaml .Values.nginx.labels | indent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.nginx.deployment.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if eq .Values.nginx.kind "StatefulSet" }}
|
||||
serviceName: {{ template "artifactory.nginx.fullname" . }}
|
||||
{{- end }}
|
||||
{{- if ne .Values.nginx.kind "DaemonSet" }}
|
||||
replicas: {{ .Values.nginx.replicaCount }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
component: {{ .Values.nginx.name }}
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
checksum/nginx-conf: {{ include (print $.Template.BasePath "/nginx-conf.yaml") . | sha256sum }}
|
||||
checksum/nginx-artifactory-conf: {{ include (print $.Template.BasePath "/nginx-artifactory-conf.yaml") . | sha256sum }}
|
||||
{{- range $key, $value := .Values.nginx.annotations }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
component: {{ .Values.nginx.name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
securityContext:
|
||||
runAsUser: {{ .Values.nginx.uid }}
|
||||
runAsGroup: {{ .Values.nginx.gid }}
|
||||
serviceAccountName: {{ template "artifactory.serviceAccountName" . }}
|
||||
terminationGracePeriodSeconds: {{ .Values.nginx.terminationGracePeriodSeconds }}
|
||||
{{- if or .Values.imagePullSecrets .Values.global.imagePullSecrets }}
|
||||
{{- include "artifactory.imagePullSecrets" . | indent 6 }}
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.priorityClassName }}
|
||||
priorityClassName: {{ .Values.nginx.priorityClassName | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.topologySpreadConstraints }}
|
||||
topologySpreadConstraints:
|
||||
{{ tpl (toYaml .Values.nginx.topologySpreadConstraints) . | indent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- if .Values.nginx.customInitContainers }}
|
||||
{{ tpl (include "artifactory.nginx.customInitContainers" .) . | indent 6 }}
|
||||
{{- end }}
|
||||
- name: "setup"
|
||||
image: "{{ .Values.initContainerImage }}"
|
||||
imagePullPolicy: {{ .Values.nginx.image.pullPolicy }}
|
||||
{{- if .Values.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 10 }}
|
||||
{{- end }}
|
||||
command:
|
||||
- '/bin/sh'
|
||||
- '-c'
|
||||
- >
|
||||
rm -rfv {{ .Values.nginx.persistence.mountPath }}/lost+found;
|
||||
mkdir -p {{ .Values.nginx.persistence.mountPath }}/logs;
|
||||
volumeMounts:
|
||||
- mountPath: {{ .Values.nginx.persistence.mountPath | quote }}
|
||||
name: nginx-volume
|
||||
containers:
|
||||
- name: {{ .Values.nginx.name }}
|
||||
image: {{ include "artifactory.getImageInfoByValue" (list . "nginx") }}
|
||||
imagePullPolicy: {{ .Values.nginx.image.pullPolicy }}
|
||||
{{- with .Values.nginx.securityContext }}
|
||||
securityContext:
|
||||
{{ toYaml . | indent 10 }}
|
||||
{{- end }}
|
||||
command:
|
||||
{{- tpl (include "nginx.command" .) . | indent 10 }}
|
||||
ports:
|
||||
{{ if .Values.nginx.customPorts }}
|
||||
{{ toYaml .Values.nginx.customPorts | indent 8 }}
|
||||
{{ end }}
|
||||
# DEPRECATION NOTE: The following is to maintain support for values pre 1.3.1 and
|
||||
# will be cleaned up in a later version
|
||||
{{- if .Values.nginx.http }}
|
||||
{{- if .Values.nginx.http.enabled }}
|
||||
- containerPort: {{ .Values.nginx.http.internalPort }}
|
||||
name: http
|
||||
{{- end }}
|
||||
{{- else }} # DEPRECATED
|
||||
- containerPort: {{ .Values.nginx.internalPortHttp }}
|
||||
name: http-internal
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.https }}
|
||||
{{- if .Values.nginx.https.enabled }}
|
||||
- containerPort: {{ .Values.nginx.https.internalPort }}
|
||||
name: https
|
||||
{{- end }}
|
||||
{{- else }} # DEPRECATED
|
||||
- containerPort: {{ .Values.nginx.internalPortHttps }}
|
||||
name: https-internal
|
||||
{{- end }}
|
||||
{{- if .Values.artifactory.ssh.enabled }}
|
||||
- containerPort: {{ .Values.nginx.ssh.internalPort }}
|
||||
name: tcp-ssh
|
||||
{{- end }}
|
||||
{{- with .Values.nginx.lifecycle }}
|
||||
lifecycle:
|
||||
{{ toYaml . | indent 10 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: nginx-conf
|
||||
mountPath: /etc/nginx/nginx.conf
|
||||
subPath: nginx.conf
|
||||
- name: nginx-artifactory-conf
|
||||
mountPath: "{{ .Values.nginx.persistence.mountPath }}/conf.d/"
|
||||
- name: nginx-volume
|
||||
mountPath: {{ .Values.nginx.persistence.mountPath | quote }}
|
||||
{{- if .Values.nginx.https.enabled }}
|
||||
- name: ssl-certificates
|
||||
mountPath: "{{ .Values.nginx.persistence.mountPath }}/ssl"
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.customVolumeMounts }}
|
||||
{{ tpl (include "artifactory.nginx.customVolumeMounts" .) . | indent 8 }}
|
||||
{{- end }}
|
||||
resources:
|
||||
{{ toYaml .Values.nginx.resources | indent 10 }}
|
||||
{{- if .Values.nginx.startupProbe.enabled }}
|
||||
startupProbe:
|
||||
{{ tpl .Values.nginx.startupProbe.config . | indent 10 }}
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.readinessProbe.enabled }}
|
||||
readinessProbe:
|
||||
{{ tpl .Values.nginx.readinessProbe.config . | indent 10 }}
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
{{ tpl .Values.nginx.livenessProbe.config . | indent 10 }}
|
||||
{{- end }}
|
||||
{{- $mountPath := .Values.nginx.persistence.mountPath }}
|
||||
{{- range .Values.nginx.loggers }}
|
||||
- name: {{ . | replace "_" "-" | replace "." "-" }}
|
||||
image: {{ include "artifactory.getImageInfoByValue" (list $ "logger") }}
|
||||
command:
|
||||
- tail
|
||||
args:
|
||||
- '-F'
|
||||
- '{{ $mountPath }}/logs/{{ . }}'
|
||||
volumeMounts:
|
||||
- name: nginx-volume
|
||||
mountPath: {{ $mountPath }}
|
||||
resources:
|
||||
{{ toYaml $.Values.nginx.loggersResources | indent 10 }}
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.customSidecarContainers }}
|
||||
{{ tpl (include "artifactory.nginx.customSidecarContainers" .) . | indent 6 }}
|
||||
{{- end }}
|
||||
{{- if or .Values.nginx.nodeSelector .Values.global.nodeSelector }}
|
||||
{{ tpl (include "nginx.nodeSelector" .) . | indent 6 }}
|
||||
{{- end }}
|
||||
{{- with .Values.nginx.affinity }}
|
||||
affinity:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.nginx.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
{{- if .Values.nginx.customVolumes }}
|
||||
{{ tpl (include "artifactory.nginx.customVolumes" .) . | indent 6 }}
|
||||
{{- end }}
|
||||
- name: nginx-conf
|
||||
configMap:
|
||||
{{- if .Values.nginx.customConfigMap }}
|
||||
name: {{ .Values.nginx.customConfigMap }}
|
||||
{{- else }}
|
||||
name: {{ template "artifactory.fullname" . }}-nginx-conf
|
||||
{{- end }}
|
||||
- name: nginx-artifactory-conf
|
||||
configMap:
|
||||
{{- if .Values.nginx.customArtifactoryConfigMap }}
|
||||
name: {{ .Values.nginx.customArtifactoryConfigMap }}
|
||||
{{- else }}
|
||||
name: {{ template "artifactory.fullname" . }}-nginx-artifactory-conf
|
||||
{{- end }}
|
||||
- name: nginx-volume
|
||||
{{- if .Values.nginx.persistence.enabled }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ .Values.nginx.persistence.existingClaim | default (include "artifactory.nginx.fullname" .) }}
|
||||
{{- else }}
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.https.enabled }}
|
||||
- name: ssl-certificates
|
||||
secret:
|
||||
{{- if .Values.nginx.tlsSecretName }}
|
||||
secretName: {{ .Values.nginx.tlsSecretName }}
|
||||
{{- else }}
|
||||
secretName: {{ template "artifactory.fullname" . }}-nginx-certificate
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,23 @@
|
||||
{{- if .Values.nginx.enabled -}}
|
||||
{{- if semverCompare "<v1.21.0-0" .Capabilities.KubeVersion.Version }}
|
||||
apiVersion: policy/v1beta1
|
||||
{{- else }}
|
||||
apiVersion: policy/v1
|
||||
{{- end }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ template "artifactory.nginx.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
component: {{ .Values.nginx.name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
component: {{ .Values.nginx.name }}
|
||||
app: {{ template "artifactory.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
minAvailable: {{ .Values.nginx.minAvailable }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,26 @@
|
||||
{{- if and .Values.nginx.persistence.enabled (.Values.nginx.enabled ) }}
|
||||
{{- if (not .Values.nginx.persistence.existingClaim) }}
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ template "artifactory.nginx.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .Values.nginx.persistence.accessMode | quote }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.nginx.persistence.size | quote }}
|
||||
{{- if .Values.nginx.persistence.storageClassName }}
|
||||
{{- if (eq "-" .Values.nginx.persistence.storageClassName) }}
|
||||
storageClassName: ""
|
||||
{{- else }}
|
||||
storageClassName: "{{ .Values.nginx.persistence.storageClassName }}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,52 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "artifactory.fullname" . }}-nginx-scripts
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
data:
|
||||
configreloader.sh: |
|
||||
#!/bin/sh
|
||||
####
|
||||
# A helper script to use inotifyd to reload nginx config
|
||||
# upon configmap/ssl secrets changes.
|
||||
#
|
||||
# Synopsis: setup the nginx command via the values file
|
||||
# as follows:
|
||||
#
|
||||
####
|
||||
# nginx:
|
||||
# customVolumes: |
|
||||
# - name: scripts
|
||||
# configMap:
|
||||
# name: {{ "{{" }} template "artifactory.fullname" . {{ "}}" }}-nginx-scripts
|
||||
# defaultMode: 0550
|
||||
# customVolumeMounts: |
|
||||
# - name: scripts
|
||||
# mountPath: /var/opt/jfrog/nginx/scripts/
|
||||
# customCommand:
|
||||
# - /bin/sh
|
||||
# - -c
|
||||
# - |
|
||||
# # watch for configmap changes
|
||||
# /sbin/inotifyd /var/opt/jfrog/nginx/scripts/configreloader.sh {{ "{{" }} .Values.nginx.persistence.mountPath {{ "-}}" }}/conf.d:n &
|
||||
# {{ "{{" }} if .Values.nginx.https.enabled {{ "-}}" }}
|
||||
# # watch for tls secret changes
|
||||
# /sbin/inotifyd /var/opt/jfrog/nginx/scripts/configreloader.sh {{ "{{" }} .Values.nginx.persistence.mountPath {{ "-}}" }}/ssl:n &
|
||||
# {{ "{{" }} end {{ "-}}" }}
|
||||
# nginx -g 'daemon off;'
|
||||
if [[ "$3" =~ data_tmp ]] && [ "$1" = "n" ]
|
||||
then
|
||||
# a symlink has changed in one of the watched folders
|
||||
# lets verify the config
|
||||
nginx -t -q
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
# config is valid, lets reload nginx config
|
||||
nginx -q -s reload
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
{{- if .Values.nginx.enabled -}}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "artifactory.nginx.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
chart: {{ template "artifactory.chart" . }}
|
||||
component: {{ .Values.nginx.name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
{{- if .Values.nginx.service.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.nginx.service.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.nginx.service.type }}
|
||||
{{- if eq .Values.nginx.service.type "LoadBalancer" }}
|
||||
{{ if .Values.nginx.service.loadBalancerIP -}}
|
||||
loadBalancerIP: {{ .Values.nginx.service.loadBalancerIP }}
|
||||
{{ end -}}
|
||||
{{- if .Values.nginx.service.externalTrafficPolicy }}
|
||||
externalTrafficPolicy: {{ .Values.nginx.service.externalTrafficPolicy }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.service.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.nginx.service.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end }}
|
||||
ports:
|
||||
{{- if .Values.nginx.service.customPorts }}
|
||||
{{ toYaml .Values.nginx.service.customPorts | indent 2 }}
|
||||
{{ end }}
|
||||
# DEPRECATION NOTE: The following is to maintain support for values pre 1.3.0 and
|
||||
# will be cleaned up in a later version
|
||||
{{- if .Values.nginx.http }}
|
||||
{{- if .Values.nginx.http.enabled }}
|
||||
- port: {{ .Values.nginx.http.externalPort }}
|
||||
targetPort: {{ .Values.nginx.http.internalPort }}
|
||||
{{- if .Values.nginx.service.nodePort }}
|
||||
nodePort: {{ .Values.nginx.service.nodePort }}
|
||||
{{- end }}
|
||||
protocol: TCP
|
||||
name: http
|
||||
{{- end }}
|
||||
{{- else }} # DEPRECATED
|
||||
- port: {{ .Values.nginx.externalPortHttp }}
|
||||
targetPort: {{ .Values.nginx.internalPortHttp }}
|
||||
protocol: TCP
|
||||
name: http
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.https }}
|
||||
{{- if or .Values.nginx.https.enabled .Values.nginx.service.ssloffload }}
|
||||
- port: {{ .Values.nginx.https.externalPort }}
|
||||
{{- if .Values.nginx.service.ssloffload }}
|
||||
targetPort: {{ .Values.nginx.http.internalPort }}
|
||||
{{- else }}
|
||||
targetPort: {{ .Values.nginx.https.internalPort}}
|
||||
{{- end }}
|
||||
{{- if .Values.nginx.service.nodePort }}
|
||||
nodePort: {{ .Values.nginx.service.nodePort }}
|
||||
{{- end }}
|
||||
protocol: TCP
|
||||
name: https
|
||||
{{- end }}
|
||||
{{- else }} # DEPRECATED
|
||||
- port: {{ .Values.nginx.externalPortHttps }}
|
||||
targetPort: {{ .Values.nginx.internalPortHttps }}
|
||||
protocol: TCP
|
||||
name: https
|
||||
{{- end }}
|
||||
{{- if .Values.artifactory.ssh.enabled }}
|
||||
- port: {{ .Values.nginx.ssh.externalPort }}
|
||||
targetPort: {{ .Values.nginx.ssh.internalPort }}
|
||||
protocol: TCP
|
||||
name: tcp-ssh
|
||||
{{- end }}
|
||||
selector:
|
||||
app: {{ template "artifactory.name" . }}
|
||||
component: {{ .Values.nginx.name }}
|
||||
release: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
Reference in New Issue
Block a user