2024-10-22 10:51:51 +03:00
|
|
|
{{/*
|
2024-10-21 16:17:49 +03:00
|
|
|
Expand the name of the chart.
|
|
|
|
*/}}
|
2024-10-22 10:51:51 +03:00
|
|
|
{{- define "ironic.name" -}}
|
2024-10-21 16:17:49 +03:00
|
|
|
{{- 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).
|
|
|
|
If release name contains chart name it will be used as a full name.
|
|
|
|
*/}}
|
2024-10-22 10:51:51 +03:00
|
|
|
{{- define "ironic.fullname" -}}
|
2024-10-21 16:17:49 +03:00
|
|
|
{{- 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 chart name and version as used by the chart label.
|
|
|
|
*/}}
|
2024-10-22 10:51:51 +03:00
|
|
|
{{- define "ironic.chart" -}}
|
2024-10-21 16:17:49 +03:00
|
|
|
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{/*
|
|
|
|
Common labels
|
|
|
|
*/}}
|
2024-10-22 10:51:51 +03:00
|
|
|
{{- define "ironic.labels" -}}
|
|
|
|
helm.sh/chart: {{ include "ironic.chart" . }}
|
|
|
|
{{ include "ironic.selectorLabels" . }}
|
2024-10-21 16:17:49 +03:00
|
|
|
{{- if .Chart.AppVersion }}
|
|
|
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
|
|
|
{{- end }}
|
|
|
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{/*
|
|
|
|
Selector labels
|
|
|
|
*/}}
|
2024-10-22 10:51:51 +03:00
|
|
|
{{- define "ironic.selectorLabels" -}}
|
|
|
|
app.kubernetes.io/component: ironic
|
|
|
|
app.kubernetes.io/name: {{ include "ironic.name" . }}
|
2024-10-21 16:17:49 +03:00
|
|
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{/*
|
|
|
|
Create the name of the service account to use
|
|
|
|
*/}}
|
2024-10-22 10:51:51 +03:00
|
|
|
{{- define "ironic.serviceAccountName" -}}
|
2024-10-21 16:17:49 +03:00
|
|
|
{{- if .Values.serviceAccount.create }}
|
2024-10-22 10:51:51 +03:00
|
|
|
{{- default (include "ironic.fullname" .) .Values.serviceAccount.name }}
|
2024-10-21 16:17:49 +03:00
|
|
|
{{- else }}
|
|
|
|
{{- default "default" .Values.serviceAccount.name }}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
2024-10-22 10:51:51 +03:00
|
|
|
|
|
|
|
{{/*
|
|
|
|
Shared directory volumeMount
|
|
|
|
*/}}
|
|
|
|
{{- define "ironic.sharedVolumeMount" -}}
|
|
|
|
- mountPath: /shared
|
|
|
|
name: ironic-data-volume
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{/*
|
|
|
|
Get ironic CA volumeMounts
|
|
|
|
*/}}
|
|
|
|
{{- define "ironic.CAVolumeMounts" -}}
|
|
|
|
- name: cert-ironic-ca
|
|
|
|
mountPath: "/certs/ca/ironic"
|
|
|
|
readOnly: true
|
|
|
|
{{- if .Values.global.enable_vmedia_tls }}
|
|
|
|
- name: cert-ironic-vmedia-ca
|
|
|
|
mountPath: "/certs/ca/vmedia"
|
|
|
|
readOnly: true
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
2025-08-01 12:00:25 +00:00
|
|
|
|
|
|
|
{{/*
|
2025-08-13 10:00:06 +00:00
|
|
|
Get the formatted "External" hostname or IP based URL
|
2025-08-01 12:00:25 +00:00
|
|
|
*/}}
|
2025-08-13 10:00:06 +00:00
|
|
|
{{- define "ironic.externalHttpUrl" }}
|
2025-08-12 15:06:48 +00:00
|
|
|
{{- $host := ternary (include "metal3.hostIP" .) .Values.global.externalHttpHost (empty .Values.global.externalHttpHost) }}
|
2025-08-13 10:00:06 +00:00
|
|
|
{{- if regexMatch ".*:.*" $host }}
|
|
|
|
{{- $host = print "[" $host "]" }}
|
2025-08-01 12:00:25 +00:00
|
|
|
{{- end }}
|
2025-08-13 10:00:06 +00:00
|
|
|
{{- $protocol := "http" }}
|
|
|
|
{{- $port := "6180" }}
|
|
|
|
{{- if .Values.global.enable_vmedia_tls }}
|
|
|
|
{{- $protocol = "https" }}
|
|
|
|
{{- $port = .Values.global.vmediaTLSPort | default "6185" }}
|
2025-08-01 12:00:25 +00:00
|
|
|
{{- end }}
|
2025-08-13 10:00:06 +00:00
|
|
|
{{- print $protocol "://" $host ":" $port }}
|
2025-08-01 12:00:25 +00:00
|
|
|
{{- end }}
|
2025-07-31 14:55:07 +00:00
|
|
|
|
|
|
|
{{/*
|
|
|
|
Get the command to use for Liveness and Readiness probes
|
|
|
|
*/}}
|
|
|
|
{{- define "ironic.probeCommand" }}
|
|
|
|
{{- $host := "127.0.0.1" }}
|
|
|
|
{{- if eq .Values.listenOnAll false }}
|
2025-08-12 15:06:48 +00:00
|
|
|
{{- $host = coalesce .Values.global.provisioningIP .Values.global.ironicIP .Values.global.provisioningHostname }}
|
2025-07-31 14:55:07 +00:00
|
|
|
{{- if regexMatch ".*:.*" $host }}
|
|
|
|
{{- $host = print "[" $host "]" }}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
|
|
{{- print "curl -sSfk https://" $host ":6385" }}
|
|
|
|
{{- end }}
|
2025-07-31 20:50:01 +00:00
|
|
|
|
|
|
|
{{/*
|
|
|
|
Create the subjectAltNames section to be set on the Certificate
|
|
|
|
*/}}
|
|
|
|
{{- define "ironic.subjectAltNames" -}}
|
|
|
|
{{- with .Values.global }}
|
|
|
|
{{- if .provisioningHostname }}
|
|
|
|
dnsNames:
|
|
|
|
- {{ .provisioningHostname }}
|
|
|
|
{{- end -}}
|
|
|
|
{{- if or .ironicIP .provisioningIP }}
|
|
|
|
ipAddresses:
|
2025-08-12 15:06:48 +00:00
|
|
|
- {{ coalesce .provisioningIP .ironicIP }}
|
2025-07-31 20:50:01 +00:00
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|