Files
otel-demo/chart/templates/_objects.tpl
Scaffolder 92edf90fd9
Some checks failed
CI Pipeline / Build and Test (push) Successful in 4s
Security Scanning / Trivy — Filesystem & Dependency Scan (push) Failing after 7s
Security Scanning / Gitleaks — Secret Scan (push) Failing after 7s
Security Scanning / Security Summary (push) Failing after 3s
Build and Publish TechDocs / build-and-publish (push) Successful in 1m2s
initial commit
Change-Id: I8e318861a258686ddc53dda08858f74c573a6520
2026-04-02 13:07:28 +00:00

311 lines
9.6 KiB
Smarty

{{/*
Demo component Deployment template
*/}}
{{- define "otel-demo.deployment" }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .name }}
labels:
{{- include "otel-demo.labels" . | nindent 4 }}
spec:
replicas: {{ .replicas | default .defaultValues.replicas }}
revisionHistoryLimit: {{ .revisionHistoryLimit | default .defaultValues.revisionHistoryLimit }}
selector:
matchLabels:
{{- include "otel-demo.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "otel-demo.selectorLabels" . | nindent 8 }}
{{- include "otel-demo.workloadLabels" . | nindent 8 }}
{{- if .podLabels }}
{{- toYaml .podLabels | nindent 8 }}
{{- end }}
{{- if .podAnnotations }}
annotations:
{{- toYaml .podAnnotations | nindent 8 }}
{{- end }}
spec:
{{- if or .defaultValues.image.pullSecrets ((.imageOverride).pullSecrets) }}
imagePullSecrets:
{{- ((.imageOverride).pullSecrets) | default .defaultValues.image.pullSecrets | toYaml | nindent 8}}
{{- end }}
serviceAccountName: {{ include "otel-demo.serviceAccountName" .}}
{{- $schedulingRules := .schedulingRules | default dict }}
{{- if or .defaultValues.schedulingRules.nodeSelector $schedulingRules.nodeSelector}}
nodeSelector:
{{- $schedulingRules.nodeSelector | default .defaultValues.schedulingRules.nodeSelector | toYaml | nindent 8 }}
{{- end }}
{{- if or .defaultValues.schedulingRules.affinity $schedulingRules.affinity}}
affinity:
{{- $schedulingRules.affinity | default .defaultValues.schedulingRules.affinity | toYaml | nindent 8 }}
{{- end }}
{{- if or .defaultValues.schedulingRules.tolerations $schedulingRules.tolerations}}
tolerations:
{{- $schedulingRules.tolerations | default .defaultValues.schedulingRules.tolerations | toYaml | nindent 8 }}
{{- end }}
{{- if or .defaultValues.podSecurityContext .podSecurityContext }}
securityContext:
{{- .podSecurityContext | default .defaultValues.podSecurityContext | toYaml | nindent 8 }}
{{- end}}
containers:
- name: {{ .name }}
image: '{{ ((.imageOverride).repository) | default .defaultValues.image.repository }}:{{ ((.imageOverride).tag) | default (printf "%s-%s" (default .Chart.AppVersion .defaultValues.image.tag) .name) }}'
imagePullPolicy: {{ ((.imageOverride).pullPolicy) | default .defaultValues.image.pullPolicy }}
{{- if .command }}
command:
{{- .command | toYaml | nindent 12 -}}
{{- end }}
{{- if or .ports .service}}
ports:
{{- include "otel-demo.pod.ports" . | nindent 12 }}
{{- end }}
env:
{{- include "otel-demo.pod.env" . | nindent 12 }}
resources:
{{- .resources | toYaml | nindent 12 }}
{{- if or .defaultValues.securityContext .securityContext }}
securityContext:
{{- .securityContext | default .defaultValues.securityContext | toYaml | nindent 12 }}
{{- end}}
{{- if .livenessProbe }}
livenessProbe:
{{- .livenessProbe | toYaml | nindent 12 }}
{{- end }}
{{- if .readinessProbe }}
readinessProbe:
{{- .readinessProbe | toYaml | nindent 12 }}
{{- end }}
volumeMounts:
{{- if .additionalVolumeMounts }}
{{- tpl (toYaml .additionalVolumeMounts) . | nindent 12 }}
{{- end }}
{{- range .mountedConfigMaps }}
- name: {{ .name | lower }}
mountPath: {{ .mountPath }}
{{- if .subPath }}
subPath: {{ .subPath }}
{{- end }}
{{- end }}
{{- range .mountedEmptyDirs }}
- name: {{ .name | lower }}
mountPath: {{ .mountPath }}
{{- if .subPath }}
subPath: {{ .subPath }}
{{- end }}
{{- end }}
{{- range .sidecarContainers }}
{{- $sidecar := set . "name" (.name | lower)}}
{{- $sidecar := set . "Chart" $.Chart }}
{{- $sidecar := set . "Release" $.Release }}
{{- $sidecar := set . "defaultValues" $.defaultValues }}
- name: {{ .name }}
image: '{{ ((.imageOverride).repository) | default .defaultValues.image.repository }}:{{ ((.imageOverride).tag) | default (printf "%s-%s" (default .Chart.AppVersion .defaultValues.image.tag) .name) }}'
imagePullPolicy: {{ ((.imageOverride).pullPolicy) | default .defaultValues.image.pullPolicy }}
{{- if .command }}
command:
{{- .command | toYaml | nindent 12 -}}
{{- end }}
{{- if or .ports .service }}
ports:
{{- include "otel-demo.pod.ports" . | nindent 12 }}
{{- end }}
env:
{{- include "otel-demo.pod.env" . | nindent 12 }}
{{- if .resources }}
resources:
{{- .resources | toYaml | nindent 12 }}
{{- end }}
{{- if or .defaultValues.securityContext .securityContext }}
securityContext:
{{- .securityContext | default .defaultValues.securityContext | toYaml | nindent 12 }}
{{- end}}
{{- if .livenessProbe }}
livenessProbe:
{{- .livenessProbe | toYaml | nindent 12 }}
{{- end }}
{{- if .readinessProbe }}
readinessProbe:
{{- .readinessProbe | toYaml | nindent 12 }}
{{- end }}
{{- if .volumeMounts }}
volumeMounts:
{{- .volumeMounts | toYaml | nindent 12 }}
{{- end }}
{{- end }}
{{- if .initContainers }}
initContainers:
{{- tpl (toYaml .initContainers) . | nindent 8 }}
{{- end}}
volumes:
{{- range .mountedConfigMaps }}
- name: {{ .name | lower}}
configMap:
{{- if .existingConfigMap }}
name: {{ tpl .existingConfigMap $ }}
{{- else }}
name: {{ $.name }}-{{ .name | lower }}
{{- end }}
{{- end }}
{{- range .mountedEmptyDirs }}
- name: {{ .name | lower}}
emptyDir: {}
{{- end }}
{{- if .additionalVolumes }}
{{- tpl (toYaml .additionalVolumes) . | nindent 8 }}
{{- end }}
{{- end }}
{{/*
Demo component Service template
*/}}
{{- define "otel-demo.service" }}
{{- if or .ports .service}}
{{- $service := .service | default dict }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ .name }}
labels:
{{- include "otel-demo.labels" . | nindent 4 }}
{{- with $service.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
type: {{ $service.type | default "ClusterIP" }}
ports:
{{- if .ports }}
{{- range .ports }}
- port: {{ .value }}
name: {{ .name}}
targetPort: {{ .value }}
{{- end }}
{{- end }}
{{- if and .service .service.port }}
- port: {{ .service.port}}
name: tcp-service
targetPort: {{ .service.port }}
{{- if .service.nodePort }}
nodePort: {{ .service.nodePort }}
{{- end }}
{{- end }}
{{- range $i, $sidecar := .sidecarContainers }}
{{- if .ports }}
{{- range .ports }}
- port: {{ .value }}
name: {{ .name}}
targetPort: {{ .value }}
{{- end }}
{{- end }}
{{- if and .service .service.port }}
- port: {{ .service.port}}
name: tcp-service-{{ $i }}
targetPort: {{ .service.port }}
{{- if .service.nodePort }}
nodePort: {{ .service.nodePort }}
{{- end }}
{{- end }}
{{- end }}
selector:
{{- include "otel-demo.selectorLabels" . | nindent 4 }}
{{- end}}
{{- end}}
{{/*
Demo component ConfigMap template
*/}}
{{- define "otel-demo.configmap" }}
{{- range .mountedConfigMaps }}
{{- if .data }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $.name }}-{{ .name | lower }}
labels:
{{- include "otel-demo.labels" $ | nindent 4 }}
data:
{{- .data | toYaml | nindent 2}}
{{- end}}
{{- end}}
{{- end}}
{{/*
Demo component Ingress template
*/}}
{{- define "otel-demo.ingress" }}
{{- $hasIngress := false}}
{{- if .ingress }}
{{- if .ingress.enabled }}
{{- $hasIngress = true }}
{{- end }}
{{- end }}
{{- $hasServicePorts := false}}
{{- if .service }}
{{- if .service.port }}
{{- $hasServicePorts = true }}
{{- end }}
{{- end }}
{{- if and $hasIngress (or .ports $hasServicePorts) }}
{{- $ingresses := list .ingress }}
{{- if .ingress.additionalIngresses }}
{{- $ingresses := concat $ingresses .ingress.additionalIngresses -}}
{{- end }}
{{- range $ingresses }}
---
apiVersion: "networking.k8s.io/v1"
kind: Ingress
metadata:
{{- if .name }}
name: {{ $.name }}-{{ .name | lower }}
{{- else }}
name: {{ $.name }}
{{- end }}
labels:
{{- include "otel-demo.labels" $ | nindent 4 }}
{{- if .annotations }}
annotations:
{{ toYaml .annotations | nindent 4 }}
{{- end }}
spec:
{{- if .ingressClassName }}
ingressClassName: {{ .ingressClassName }}
{{- end -}}
{{- if .tls }}
tls:
{{- range .tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
{{- with .secretName }}
secretName: {{ . }}
{{- end }}
{{- end }}
{{- end }}
rules:
{{- range .hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
pathType: {{ .pathType }}
backend:
service:
name: {{ $.name }}
port:
number: {{ .port }}
{{- end }}
{{- end }}
{{- end}}
{{- end}}
{{- end}}