diff --git a/bitnami/apache/Chart.yaml b/bitnami/apache/Chart.yaml index 2e3ce501c0..5426b1a1f9 100644 --- a/bitnami/apache/Chart.yaml +++ b/bitnami/apache/Chart.yaml @@ -26,4 +26,4 @@ name: apache sources: - https://github.com/bitnami/bitnami-docker-apache - https://httpd.apache.org -version: 8.1.1 +version: 8.2.0 diff --git a/bitnami/apache/README.md b/bitnami/apache/README.md index 53e1ca52fd..8ad46b1b7c 100644 --- a/bitnami/apache/README.md +++ b/bitnami/apache/README.md @@ -67,6 +67,7 @@ The following tables lists the configurable parameters of the Apache chart and t | `git.pullPolicy` | Git image pull policy | `Always` | | `git.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | | `replicaCount` | Number of replicas of the Apache deployment | `docker.io` | +| `hostAliases` | Add deployment host aliases | `Check values.yaml` | | `htdocsConfigMap` | ConfigMap with the server static content | `nil` | | `htdocsPVC` | PVC with the server static content | `nil` | | `vhostsConfigMap` | ConfigMap with the virtual hosts content | `nil` | diff --git a/bitnami/apache/ci/ct-values.yaml b/bitnami/apache/ci/ct-values.yaml index b738e2a57a..9333456aed 100644 --- a/bitnami/apache/ci/ct-values.yaml +++ b/bitnami/apache/ci/ct-values.yaml @@ -1,2 +1,4 @@ service: type: ClusterIP + +hostAliases: [] diff --git a/bitnami/apache/templates/NOTES.txt b/bitnami/apache/templates/NOTES.txt index 4fc7c15201..078560ed57 100644 --- a/bitnami/apache/templates/NOTES.txt +++ b/bitnami/apache/templates/NOTES.txt @@ -18,20 +18,20 @@ {{- else if contains "NodePort" .Values.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "apache.fullname" . }}) + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "common.names.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.service.type }} -** Please ensure an external IP is associated to the {{ template "apache.fullname" . }} service before proceeding ** -** Watch the status using: kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "apache.fullname" . }} ** +** Please ensure an external IP is associated to the {{ template "common.names.fullname" . }} service before proceeding ** +** Watch the status using: kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "common.names.fullname" . }} ** - export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "apache.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "common.names.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") {{- $port:=.Values.service.port | toString }} echo URL : http://$SERVICE_IP{{- if ne $port "80" }}:{{ .Values.service.port }}{{ end }}/ {{- else if contains "ClusterIP" .Values.service.type }} - kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ template "apache.fullname" . }} 8080:{{ .Values.service.port}} + kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ template "common.names.fullname" . }} 8080:{{ .Values.service.port}} echo URL : http://127.0.0.1:8080/ {{- end }} @@ -44,4 +44,4 @@ WARNING: Rolling tag detected ({{ .Values.image.repository }}:{{ .Values.image.t +info https://docs.bitnami.com/containers/how-to/understand-rolling-tags-containers/ {{- end }} -{{ include "apache.validateValues" . }} \ No newline at end of file +{{ include "apache.validateValues" . }} diff --git a/bitnami/apache/templates/_helpers.tpl b/bitnami/apache/templates/_helpers.tpl index e2e1401808..cf812485ab 100644 --- a/bitnami/apache/templates/_helpers.tpl +++ b/bitnami/apache/templates/_helpers.tpl @@ -1,125 +1,23 @@ {{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "apache.name" -}} -{{- default .Chart.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 "apache.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 -}} - -{{/* -Common labels -*/}} -{{- define "apache.labels" -}} -app.kubernetes.io/name: {{ include "apache.name" . }} -helm.sh/chart: {{ include "apache.chart" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end -}} - -{{/* -Labels to use on deploy.spec.selector.matchLabels and svc.spec.selector -*/}} -{{- define "apache.matchLabels" -}} -app.kubernetes.io/name: {{ include "apache.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end -}} - {{/* Return the proper Apache image name */}} {{- define "apache.image" -}} -{{- $registryName := .Values.image.registry -}} -{{- $repositoryName := .Values.image.repository -}} -{{- $tag := .Values.image.tag | toString -}} -{{/* -Helm 2.11 supports the assignment of a value to a variable defined in a different scope, -but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic. -Also, we can't use a single if because lazy evaluation is not an option -*/}} -{{- if .Values.global }} - {{- if .Values.global.imageRegistry }} - {{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}} - {{- else -}} - {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} - {{- end -}} -{{- else -}} - {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} -{{- end -}} +{{- include "common.images.image" (dict "imageRoot" .Values.image "global" .Values.global) -}} {{- end -}} {{/* Return the proper Apache Docker Image Registry Secret Names */}} {{- define "apache.imagePullSecrets" -}} -{{/* -Helm 2.11 supports the assignment of a value to a variable defined in a different scope, -but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic. -Also, we can't use a single if because lazy evaluation is not an option -*/}} -{{- if .Values.global }} -{{- if .Values.global.imagePullSecrets }} -imagePullSecrets: -{{- range .Values.global.imagePullSecrets }} - - name: {{ . }} -{{- end }} -{{- else if or .Values.image.pullSecrets .Values.metrics.image.pullSecrets }} -imagePullSecrets: -{{- range .Values.image.pullSecrets }} - - name: {{ . }} -{{- end }} -{{- range .Values.metrics.image.pullSecrets }} - - name: {{ . }} -{{- end }} -{{- end -}} -{{- else if or .Values.image.pullSecrets .Values.metrics.image.pullSecrets }} -imagePullSecrets: -{{- range .Values.image.pullSecrets }} - - name: {{ . }} -{{- end }} -{{- range .Values.metrics.image.pullSecrets }} - - name: {{ . }} -{{- end }} -{{- end -}} +{{- include "common.images.pullSecrets" (dict "images" (list .Values.image .Values.metrics.image) "global" .Values.global) -}} {{- end -}} {{/* Return the proper image name (for the metrics image) */}} {{- define "apache.metrics.image" -}} -{{- $registryName := .Values.metrics.image.registry -}} -{{- $repositoryName := .Values.metrics.image.repository -}} -{{- $tag := .Values.metrics.image.tag | toString -}} -{{/* -Helm 2.11 supports the assignment of a value to a variable defined in a different scope, -but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic. -Also, we can't use a single if because lazy evaluation is not an option -*/}} -{{- if .Values.global }} - {{- if .Values.global.imageRegistry }} - {{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}} - {{- else -}} - {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} - {{- end -}} -{{- else -}} - {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} -{{- end -}} +{{- include "common.images.image" (dict "imageRoot" .Values.metrics.image "global" .Values.global) -}} {{- end -}} {{/* @@ -206,23 +104,7 @@ apache: missing-extra-volume-mounts Return the proper git image name */}} {{- define "git.image" -}} -{{- $registryName := .Values.git.registry -}} -{{- $repositoryName := .Values.git.repository -}} -{{- $tag := .Values.git.tag | toString -}} -{{/* -Helm 2.11 supports the assignment of a value to a variable defined in a different scope, -but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic. -Also, we can't use a single if because lazy evaluation is not an option -*/}} -{{- if .Values.global }} - {{- if .Values.global.imageRegistry }} - {{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}} - {{- else -}} - {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} - {{- end -}} -{{- else -}} - {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} -{{- end -}} +{{- include "common.images.image" (dict "imageRoot" .Values.git "global" .Values.global) -}} {{- end -}} {{/* @@ -232,7 +114,7 @@ Get the vhosts config map name. {{- if .Values.vhostsConfigMap -}} {{- printf "%s" (tpl .Values.vhostsConfigMap $) -}} {{- else -}} - {{- printf "%s-vhosts" (include "apache.fullname" . ) -}} + {{- printf "%s-vhosts" (include "common.names.fullname" . ) -}} {{- end -}} {{- end -}} @@ -243,21 +125,6 @@ Get the httpd.conf config map name. {{- if .Values.httpdConfConfigMap -}} {{- printf "%s" (tpl .Values.httpdConfConfigMap $) -}} {{- else -}} - {{- printf "%s-httpd-conf" (include "apache.fullname" . ) -}} + {{- printf "%s-httpd-conf" (include "common.names.fullname" . ) -}} {{- end -}} {{- end -}} - -{{/* -Renders a value that contains template. -Usage: -{{ include "apache.tplValue" ( dict "value" .Values.path.to.the.Value "context" $) }} -*/}} -{{- define "apache.tplValue" -}} - {{- if typeIs "string" .value }} - {{- tpl .value .context }} - {{- else }} - {{- tpl (.value | toYaml) .context }} - {{- end }} -{{- end -}} - - diff --git a/bitnami/apache/templates/configmap-vhosts.yaml b/bitnami/apache/templates/configmap-vhosts.yaml index 93990f4fba..af67752cad 100644 --- a/bitnami/apache/templates/configmap-vhosts.yaml +++ b/bitnami/apache/templates/configmap-vhosts.yaml @@ -2,8 +2,8 @@ apiVersion: v1 kind: ConfigMap metadata: - name: {{ include "apache.fullname" . }}-vhosts - labels: {{- include "apache.labels" . | nindent 4 }} + name: {{ include "common.names.fullname" . }}-vhosts + labels: {{- include "common.labels.standard" . | nindent 4 }} data: {{ (.Files.Glob "files/vhosts/*.conf").AsConfig | indent 2 }} {{ end }} diff --git a/bitnami/apache/templates/configmap.yaml b/bitnami/apache/templates/configmap.yaml index 3af93fb35d..b80a9ffeb2 100644 --- a/bitnami/apache/templates/configmap.yaml +++ b/bitnami/apache/templates/configmap.yaml @@ -2,8 +2,8 @@ apiVersion: v1 kind: ConfigMap metadata: - name: {{ include "apache.fullname" . }}-httpd-conf - labels: {{- include "apache.labels" . | nindent 4 }} + name: {{ include "common.names.fullname" . }}-httpd-conf + labels: {{- include "common.labels.standard" . | nindent 4 }} data: {{ (.Files.Glob "files/httpd.conf").AsConfig | indent 2 }} {{ end }} diff --git a/bitnami/apache/templates/deployment.yaml b/bitnami/apache/templates/deployment.yaml index 156202dcea..7862856538 100644 --- a/bitnami/apache/templates/deployment.yaml +++ b/bitnami/apache/templates/deployment.yaml @@ -1,32 +1,33 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: {{ include "apache.fullname" . }} - labels: {{- include "apache.labels" . | nindent 4 }} + name: {{ include "common.names.fullname" . }} + labels: {{- include "common.labels.standard" . | nindent 4 }} spec: selector: - matchLabels: {{- include "apache.matchLabels" . | nindent 6 }} + matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }} replicas: {{ .Values.replicaCount }} template: metadata: - labels: {{- include "apache.labels" . | nindent 8 }} + labels: {{- include "common.labels.standard" . | nindent 8 }} {{- if or .Values.podAnnotations (and .Values.metrics.enabled .Values.metrics.podAnnotations) }} annotations: {{- if .Values.podAnnotations }} - {{- include "apache.tplValue" (dict "value" .Values.podAnnotations "context" $) | nindent 8 }} + {{- include "common.tplvalues.render" (dict "value" .Values.podAnnotations "context" $) | nindent 8 }} {{- end }} {{- if and .Values.metrics.enabled .Values.metrics.podAnnotations }} - {{- include "apache.tplValue" (dict "value" .Values.metrics.podAnnotations "context" $) | nindent 8 }} + {{- include "common.tplvalues.render" (dict "value" .Values.metrics.podAnnotations "context" $) | nindent 8 }} {{- end }} {{- end }} spec: -{{- include "apache.imagePullSecrets" . | nindent 6 }} - hostAliases: - - ip: "127.0.0.1" - hostnames: - - "status.localhost" + {{- include "apache.imagePullSecrets" . | nindent 6 }} + {{- if .Values.hostAliases }} + # yamllint disable rule:indentation + hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.hostAliases "context" $) | nindent 8 }} + # yamllint enable rule:indentation + {{- end }} {{- if .Values.affinity }} - affinity: {{- include "apache.tplValue" (dict "value" .Values.affinity "context" $) | nindent 8 }} + affinity: {{- include "common.tplvalues.render" (dict "value" .Values.affinity "context" $) | nindent 8 }} {{- else }} affinity: podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAffinityPreset "context" $) | nindent 10 }} @@ -34,10 +35,10 @@ spec: nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.nodeAffinityPreset.type "key" .Values.nodeAffinityPreset.key "values" .Values.nodeAffinityPreset.values) | nindent 10 }} {{- end }} {{- if .Values.nodeSelector }} - nodeSelector: {{- include "apache.tplValue" (dict "value" .Values.nodeSelector "context" $) | nindent 8 }} + nodeSelector: {{- include "common.tplvalues.render" (dict "value" .Values.nodeSelector "context" $) | nindent 8 }} {{- end }} {{- if .Values.tolerations }} - tolerations: {{- include "apache.tplValue" (dict "value" .Values.tolerations "context" $) | nindent 8 }} + tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.tolerations "context" $) | nindent 8 }} {{- end }} {{- if .Values.cloneHtdocsFromGit.enabled }} initContainers: @@ -79,7 +80,7 @@ spec: - name: BITNAMI_DEBUG value: {{ ternary "true" "false" .Values.image.debug | quote }} {{- if .Values.extraEnvVars }} - {{- include "apache.tplValue" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }} + {{- include "common.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }} {{- end }} ports: - name: http @@ -170,4 +171,3 @@ spec: {{- if .Values.extraVolumes }} {{- include "common.tplvalues.render" ( dict "value" .Values.extraVolumes "context" $) | nindent 8 }} {{- end }} - diff --git a/bitnami/apache/templates/ingress.yaml b/bitnami/apache/templates/ingress.yaml index 791d0d2caa..66c8bf2beb 100644 --- a/bitnami/apache/templates/ingress.yaml +++ b/bitnami/apache/templates/ingress.yaml @@ -2,8 +2,8 @@ apiVersion: {{ include "common.capabilities.ingress.apiVersion" . }} kind: Ingress metadata: - name: {{ include "apache.fullname" . }} - labels: {{- include "apache.labels" . | nindent 4 }} + name: {{ include "common.names.fullname" . }} + labels: {{- include "common.labels.standard" . | nindent 4 }} annotations: {{- if .Values.ingress.certManager }} kubernetes.io/tls-acme: "true" diff --git a/bitnami/apache/templates/svc.yaml b/bitnami/apache/templates/svc.yaml index b44868eba6..500a7c1752 100644 --- a/bitnami/apache/templates/svc.yaml +++ b/bitnami/apache/templates/svc.yaml @@ -1,9 +1,9 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "apache.fullname" . }} - labels: {{- include "apache.labels" . | nindent 4 }} - annotations: {{ include "apache.tplValue" ( dict "value" .Values.service.annotations "context" $) | nindent 4 }} + name: {{ include "common.names.fullname" . }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + annotations: {{ include "common.tplvalues.render" ( dict "value" .Values.service.annotations "context" $) | nindent 4 }} spec: type: {{ .Values.service.type }} {{- if or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort") }} @@ -25,4 +25,4 @@ spec: {{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.https)) }} nodePort: {{ .Values.service.nodePorts.https }} {{- end }} - selector: {{- include "apache.matchLabels" . | nindent 4 }} + selector: {{- include "common.labels.matchLabels" . | nindent 4 }} diff --git a/bitnami/apache/values.yaml b/bitnami/apache/values.yaml index 3b7bfb62f7..6587016630 100644 --- a/bitnami/apache/values.yaml +++ b/bitnami/apache/values.yaml @@ -141,6 +141,15 @@ cloneHtdocsFromGit: ## podAnnotations: {} +## Deployment pod host aliases +## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ +## +hostAliases: + # Necessary for apache-exporter to work + - ip: "127.0.0.1" + hostnames: + - "status.localhost" + ## Apache pods' resource requests and limits ## ref: http://kubernetes.io/docs/user-guide/compute-resources/ ##