diff --git a/stable/sonatype-nexus/Chart.yaml b/stable/sonatype-nexus/Chart.yaml index 5778a1f99d..ab93318b24 100644 --- a/stable/sonatype-nexus/Chart.yaml +++ b/stable/sonatype-nexus/Chart.yaml @@ -1,5 +1,5 @@ name: sonatype-nexus -version: 1.11.0 +version: 1.12.0 appVersion: 3.13.0-01 description: Sonatype Nexus is an open source repository manager keywords: diff --git a/stable/sonatype-nexus/README.md b/stable/sonatype-nexus/README.md index 40832b3468..d1e34fb0bd 100644 --- a/stable/sonatype-nexus/README.md +++ b/stable/sonatype-nexus/README.md @@ -77,12 +77,16 @@ The following table lists the configurable parameters of the Nexus chart and the | `nexus.livenessProbe.initialDelaySeconds` | LivenessProbe initial delay | 30 | | `nexus.livenessProbe.periodSeconds` | Seconds between polls | 30 | | `nexus.livenessProbe.failureThreshold` | Number of attempts before failure | 6 | +| `nexus.livenessProbe.timeoutSeconds` | Time in seconds after liveness probe times out | `nil` | | `nexus.livenessProbe.path` | Path for LivenessProbe | / | | `nexus.readinessProbe.initialDelaySeconds` | ReadinessProbe initial delay | 30 | | `nexus.readinessProbe.periodSeconds` | Seconds between polls | 30 | | `nexus.readinessProbe.failureThreshold` | Number of attempts before failure | 6 | +| `nexus.readinessProbe.timeoutSeconds` | Time in seconds after readiness probe times out | `nil` | | `nexus.readinessProbe.path` | Path for ReadinessProbe | / | | `nexus.hostAliases` | Aliases for IPs in /etc/hosts | [] | +| `nexusProxy.enabled` | Enable nexus proxy | `true` | +| `nexusProxy.targetPort` | Container Port for Nexus proxy | `8080` | | `nexusProxy.port` | Port for exposing Nexus | `8080` | | `nexusProxy.imageName` | Proxy image | `quay.io/travelaudience/docker-nexus-proxy` | | `nexusProxy.imageTag` | Proxy image version | `2.1.0` | @@ -119,6 +123,21 @@ The following table lists the configurable parameters of the Nexus chart and the | `config.enabled` | Enable configmap | `false` | | `config.mountPath` | Path to mount the config | `/sonatype-nexus-conf` | | `config.data` | Configmap data | `nil` | +| `deployment.annotations` | Annotations to enhance deployment configuration | `{}` | +| `deployment.initContainers` | Init containers to run before main containers | `nil` | +| `deployment.postStart.command` | Command to run after starting the nexus container | `nil` | +| `deployment.additionalContainers` | Add additional Container | `nil` | +| `deployment.additionalVolumes` | Add additional Container | `nil` | +| `secret.enabled` | Enable secret | `false` | +| `secret.mountPath` | Path to mount the secret | `/etc/secret-volume` | +| `secret.readOnly` | Secret readonly state | `true` | +| `secret.data` | Secret data | `nil` | +| `service.enabled` | Enable additional service | `nil` | +| `service.name` | Service name | `nil` | +| `service.labels` | Service labels | `nil` | +| `service.annotations` | Service annotations | `nil` | +| `service.targetPort` | Service port | `nil` | +| `service.port` | Port for exposing service | `nil` | If `nexusProxy.env.cloudIamAuthEnabled` is set to `true` the following variables need to be configured diff --git a/stable/sonatype-nexus/templates/deployment.yaml b/stable/sonatype-nexus/templates/deployment.yaml index 40ec22e938..d73e1121c5 100644 --- a/stable/sonatype-nexus/templates/deployment.yaml +++ b/stable/sonatype-nexus/templates/deployment.yaml @@ -4,6 +4,13 @@ metadata: name: {{ template "nexus.fullname" . }} labels: {{ include "nexus.labels" . | indent 4 }} +{{- if .Values.nexus.labels }} +{{ toYaml .Values.nexus.labels | indent 4 }} +{{- end }} +{{- if .Values.deployment.annotations }} + annotations: +{{ toYaml .Values.deployment.annotations | indent 4 }} +{{- end }} spec: replicas: {{ .Values.replicaCount }} {{- if .Values.deploymentStrategy }} @@ -20,6 +27,10 @@ spec: app: {{ template "nexus.name" . }} release: {{ .Release.Name }} spec: + {{- if .Values.deployment.initContainers }} + initContainers: +{{ toYaml .Values.deployment.initContainers | indent 6 }} + {{- end }} {{- if .Values.nexus.nodeSelector }} nodeSelector: {{ toYaml .Values.nexus.nodeSelector | indent 8 }} @@ -32,6 +43,12 @@ spec: - name: nexus image: {{ .Values.nexus.imageName }}:{{ .Values.nexus.imageTag }} imagePullPolicy: {{ .Values.nexus.imagePullPolicy }} + {{- if .Values.deployment.postStart.command }} + lifecycle: + postStart: + exec: + command: {{ .Values.deployment.postStart.command }} + {{- end }} env: {{ toYaml .Values.nexus.env | indent 12 }} resources: @@ -48,6 +65,9 @@ spec: initialDelaySeconds: {{ .Values.nexus.livenessProbe.initialDelaySeconds }} periodSeconds: {{ .Values.nexus.livenessProbe.periodSeconds }} failureThreshold: {{ .Values.nexus.livenessProbe.failureThreshold }} + {{- if .Values.nexus.livenessProbe.timeoutSeconds }} + timeoutSeconds: {{ .Values.nexus.livenessProbe.timeoutSeconds }} + {{- end }} readinessProbe: httpGet: path: {{ .Values.nexus.readinessProbe.path }} @@ -55,6 +75,9 @@ spec: initialDelaySeconds: {{ .Values.nexus.readinessProbe.initialDelaySeconds }} periodSeconds: {{ .Values.nexus.readinessProbe.periodSeconds }} failureThreshold: {{ .Values.nexus.readinessProbe.failureThreshold }} + {{- if .Values.nexus.readinessProbe.timeoutSeconds }} + timeoutSeconds: {{ .Values.nexus.readinessProbe.timeoutSeconds }} + {{- end }} volumeMounts: - mountPath: /nexus-data name: nexus-data @@ -64,6 +87,12 @@ spec: - mountPath: {{ .Values.config.mountPath }} name: {{ template "nexus.name" . }}-conf {{- end }} + {{- if .Values.secret.enabled }} + - mountPath: {{ .Values.secret.mountPath }} + name: {{ template "nexus.name" . }}-secret + readOnly: {{ .Values.secret.readOnly }} + {{- end }} + {{- if .Values.nexusProxy.enabled }} - name: nexus-proxy image: {{ .Values.nexusProxy.imageName }}:{{ .Values.nexusProxy.imageTag }} resources: @@ -75,7 +104,7 @@ spec: - name: CLOUD_IAM_AUTH_ENABLED value: {{ .Values.nexusProxy.env.cloudIamAuthEnabled | quote }} - name: BIND_PORT - value: {{ .Values.nexusProxy.port | quote }} + value: {{ .Values.nexusProxy.targetPort | quote }} - name: ENFORCE_HTTPS value: {{ .Values.nexusProxy.env.enforceHttps | quote }} - name: NEXUS_DOCKER_HOST @@ -112,7 +141,7 @@ spec: value: "86400000" {{- end }} ports: - - containerPort: {{ .Values.nexusProxy.port }} + - containerPort: {{ .Values.nexusProxy.targetPort }} name: nexus-proxy {{- if .Values.nexusProxy.env.cloudIamAuthEnabled }} volumeMounts: @@ -120,6 +149,7 @@ spec: name: {{ template "nexus.proxy-ks.name" . }} readOnly: true {{- end }} + {{- end }} {{- if .Values.nexusBackup.enabled }} - name: nexus-backup image: {{ .Values.nexusBackup.imageName }}:{{ .Values.nexusBackup.imageTag }} @@ -150,6 +180,9 @@ spec: - mountPath: /nexus-data/backup name: nexus-backup {{- end }} + {{- if .Values.deployment.additionalContainers }} +{{ toYaml .Values.deployment.additionalContainers | indent 8 }} + {{- end }} {{- if .Values.nexus.securityContext }} securityContext: {{ toYaml .Values.nexus.securityContext | indent 8 }} @@ -179,6 +212,14 @@ spec: configMap: name: {{ template "nexus.name" . }}-conf {{- end }} + {{- if .Values.secret.enabled }} + - name: {{ template "nexus.name" . }}-secret + secret: + secretName: {{ template "nexus.name" . }}-secret + {{- end }} + {{- if .Values.deployment.additionalVolumes }} +{{ toYaml .Values.deployment.additionalVolumes | indent 8 }} + {{- end }} {{- with .Values.tolerations }} tolerations: {{ toYaml . | indent 8 }} diff --git a/stable/sonatype-nexus/templates/proxy-svc.yaml b/stable/sonatype-nexus/templates/proxy-svc.yaml index 409e362cd5..d4e17c701e 100644 --- a/stable/sonatype-nexus/templates/proxy-svc.yaml +++ b/stable/sonatype-nexus/templates/proxy-svc.yaml @@ -7,6 +7,9 @@ metadata: {{- if .Values.nexus.labels }} {{ toYaml .Values.nexus.labels | indent 4 }} {{- end }} +{{- if .Values.nexusProxy.labels }} +{{ toYaml .Values.nexusProxy.labels | indent 4 }} +{{- end }} {{- if .Values.nexus.annotations }} annotations: {{ toYaml .Values.nexus.annotations | indent 4 }} @@ -16,7 +19,7 @@ spec: - name: {{ .Values.nexusProxy.name }} port: {{ .Values.nexusProxy.port }} protocol: TCP - targetPort: {{ .Values.nexusProxy.port }} + targetPort: {{ .Values.nexusProxy.targetPort }} selector: app: {{ template "nexus.name" . }} release: {{ .Release.Name }} diff --git a/stable/sonatype-nexus/templates/secret.yaml b/stable/sonatype-nexus/templates/secret.yaml new file mode 100644 index 0000000000..80e7799c2d --- /dev/null +++ b/stable/sonatype-nexus/templates/secret.yaml @@ -0,0 +1,13 @@ +{{- if .Values.secret.enabled -}} +apiVersion: v1 +kind: Secret +metadata: + name: {{ template "nexus.name" . }}-secret + labels: +{{ include "nexus.labels" . | indent 4 }} +{{- if .Values.nexus.labels }} +{{ toYaml .Values.nexus.labels | indent 4 }} +{{- end }} +data: +{{ toYaml .Values.secret.data | indent 2 }} +{{- end}} diff --git a/stable/sonatype-nexus/templates/service.yaml b/stable/sonatype-nexus/templates/service.yaml new file mode 100644 index 0000000000..cea16b3438 --- /dev/null +++ b/stable/sonatype-nexus/templates/service.yaml @@ -0,0 +1,25 @@ +{{- if .Values.service.enabled -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ template "nexus.name" . }}-service + labels: +{{ include "nexus.labels" . | indent 4 }} +{{- if .Values.service.labels }} +{{ toYaml .Values.service.labels | indent 4 }} +{{- end }} +{{- if .Values.service.annotations }} + annotations: +{{ toYaml .Values.service.annotations | indent 4 }} +{{- end }} +spec: + ports: + - name: {{ .Values.service.name }} + port: {{ .Values.service.port }} + protocol: TCP + targetPort: {{ .Values.service.targetPort }} + selector: + app: {{ template "nexus.name" . }} + release: {{ .Release.Name }} + type: {{ .Values.service.serviceType }} +{{- end}} \ No newline at end of file diff --git a/stable/sonatype-nexus/values.yaml b/stable/sonatype-nexus/values.yaml index 57fef9ef02..5104ddd7fd 100644 --- a/stable/sonatype-nexus/values.yaml +++ b/stable/sonatype-nexus/values.yaml @@ -39,11 +39,13 @@ nexus: initialDelaySeconds: 30 periodSeconds: 30 failureThreshold: 6 + # timeoutSeconds: 10 path: / readinessProbe: initialDelaySeconds: 30 periodSeconds: 30 failureThreshold: 6 + # timeoutSeconds: 10 path: / # hostAliases allows the modification of the hosts file inside a container hostAliases: [] @@ -53,10 +55,13 @@ nexus: # - "www.example.com" nexusProxy: + enabled: true imageName: quay.io/travelaudience/docker-nexus-proxy imageTag: 2.3.0 imagePullPolicy: IfNotPresent port: 8080 + targetPort: 8080 + # labels: {} env: nexusDockerHost: nexusHttpHost: @@ -136,3 +141,38 @@ config: enabled: false mountPath: /sonatype-nexus-conf data: + +deployment: + # # Add annotations in deployment to enhance deployment configurations + annotations: {} + # # Add init containers. e.g. to be used to give specific permissions for nexus-data. + # # Add your own init container or uncomment and modify the given example. + initContainers: + # - name: fmp-volume-permission + # image: busybox + # imagePullPolicy: IfNotPresent + # command: ['chown','-R', '200', '/nexus-data'] + # volumeMounts: + # - name: nexus-data + # mountPath: /nexus-data + # # Uncomment and modify this to run a command after starting the nexus container. + postStart: + command: # '["/bin/sh", "-c", "ls"]' + additionalContainers: + additionalVolumes: + +# # To use an additional secret, set enable to true and add data +secret: + enabled: false + mountPath: /etc/secret-volume + readOnly: true + data: + +# # To use an additional service, set enable to true +service: + enabled: false + name: nexus-service + labels: {} + annotations: {} + targetPort: 80 + port: 80