Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion charts/common/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ description: A Helm chart containing reuse templates

type: library

version: 0.7.0
version: 0.8.0
2 changes: 2 additions & 0 deletions charts/common/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ A Helm chart containing reuse templates
| defaults.health.port | int | `8090` | health port |
| defaults.health.readiness | object | `{"initialDelaySeconds":5,"path":"/readyz","periodSeconds":10}` | readiness probe parameters |
| defaults.health.startup | object | `{"failureThreshold":30,"path":"/readyz"}` | startup probe parameters |
| defaults.hostAliases.enabled | bool | `false` | toggle to enable/disable hostAliases configuration |
| defaults.hostAliases.entries | list | `[{"hostnames":["kcp.api.portal.dev.local","portal.dev.local"],"ip":"10.96.188.4"}]` | host aliases |
| defaults.imagePullPolicy | string | `"IfNotPresent"` | imagePullPolicy is the policy to use when pulling images for all charts |
| defaults.istio.enabled | bool | `false` | toggle to enable/disable istio |
| defaults.istio.gateway.name | string | `"gateway"` | name of the gateway |
Expand Down
41 changes: 41 additions & 0 deletions charts/common/templates/_hostAliases.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{{- /*
Render hostAliases using lookup order:
1. hostAliasesOverride
2. global.hostAliases
3. hostAliases
4. defaults.hostAliases

Each of these keys is expected to be an array, or a map with "enabled" and "entries" keys.
If the chosen one is empty or unset, render nothing.
*/ -}}
{{- define "common.hostAliases" -}}
{{- $v := .Values -}}
{{- $source := dict -}}
{{- $aliases := list -}}
{{- $aliasesEnabled := false -}}
{{- $defaultKey := "common.defaults.hostAliases" -}}

{{- if and $v (hasKey $v "hostAliasesOverride") -}}
{{- $source = index $v "hostAliasesOverride" -}}
{{- else if and $v.global (hasKey $v.global "hostAliases") -}}
{{- $source = index $v.global "hostAliases" -}}
{{- else if and $v (hasKey $v "hostAliases") -}}
{{- $source = index $v "hostAliases" -}}
{{- else if eq (include "common.hasNestedKey" (dict "Values" $v "key" $defaultKey)) "true" }}
{{- $source = index $v.common.defaults "hostAliases" -}}
{{- end }}

{{- if $source -}}
{{- if kindIs "slice" $source -}}
{{- $aliases = $source -}}
{{- else if and (kindIs "map" $source) (default true $source.enabled) -}}
{{- $aliases = $source.entries | default $v.common.defaults.hostAliases.entries -}}
{{- $aliasesEnabled = $source.enabled -}}
{{- end -}}
{{- end -}}

{{- if $aliasesEnabled -}}
hostAliases:
{{- toYaml $aliases | nindent 8 }}
{{- end -}}
{{- end }}
6 changes: 3 additions & 3 deletions charts/common/test-chart/Chart.lock
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
dependencies:
- name: common
repository: file://..
version: 0.6.0
digest: sha256:7ef6218c37c536063d41574993e0588c39c0267d6dd3764be36d17a16f9a21d8
generated: "2025-10-28T08:07:32.522363+01:00"
version: 0.8.0
digest: sha256:8bc71da3fdc2d1bf0560bb58038a292105c1a87d825e2c003768bbe83126b550
generated: "2025-11-17T15:05:29.464986171+02:00"
2 changes: 1 addition & 1 deletion charts/common/test-chart/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,5 @@ appVersion: "1.16.0"

dependencies:
- name: common
version: 0.6.0
version: 0.8.0
repository: file://..
2 changes: 1 addition & 1 deletion charts/common/test-chart/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ A Helm chart for Kubernetes

| Repository | Name | Version |
|------------|------|---------|
| file://.. | common | 0.6.0 |
| file://.. | common | 0.8.0 |

## Values

Expand Down
Binary file removed charts/common/test-chart/charts/common-0.6.0.tgz
Binary file not shown.
Binary file added charts/common/test-chart/charts/common-0.8.0.tgz
Binary file not shown.
3 changes: 2 additions & 1 deletion charts/common/test-chart/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ spec:
{{- include "common.labelMatcher" . | indent 8 }}
spec:
{{- include "common.pod.securityContext" . | indent 6 }}
terminationGracePeriodSeconds: {{ include "common.terminationGracePeriodSeconds" .}}
terminationGracePeriodSeconds: {{ include "common.terminationGracePeriodSeconds" . }}
{{ include "common.hostAliases" . | indent 0 }}
containers:
- {{- include "common.podBasics" . | indent 8 }}
{{- include "common.container.securityContext" . | indent 8 }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,99 @@ test global region:
terminationGracePeriodSeconds: 10
volumeMounts: null
volumes: null
test host aliases:
1: |
apiVersion: apps/v1
kind: Deployment
metadata:
name: RELEASE-NAME-test-chart
spec:
revisionHistoryLimit: 3
selector:
matchLabels:
app: RELEASE-NAME-test-chart
strategy:
rollingUpdate:
maxSurge: 5
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
labels:
app: RELEASE-NAME-test-chart
spec:
automountServiceAccountToken: true
containers:
- args:
- -- operator
- --leader-elect
- --metrics-bind-address=:9090
- --health-probe-bind-address=:8090
- --log-level=warn
- --region=local
- --environment=local
- --image-tag=0.1.0
- --image-name="ghcr.io/your-org/your-image"
- --shutdown-timeout=1m
- --max-concurrent-reconciles=10
env: null
image: ghcr.io/your-org/your-image:0.1.0
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 1
httpGet:
path: /healthz
port: 8090
periodSeconds: 10
name: RELEASE-NAME-test-chart
ports:
- containerPort: 8080
name: http
protocol: TCP
- containerPort: 9090
name: metrics
protocol: TCP
- containerPort: 8090
name: health-port
protocol: TCP
readinessProbe:
httpGet:
path: /readyz
port: 8090
initialDelaySeconds: 5
periodSeconds: 10
resources:
limits:
memory: 512Mi
requests:
cpu: 40m
memory: 50Mi
securityContext:
readOnlyRootFilesystem: true
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
startupProbe:
failureThreshold: 30
httpGet:
path: /readyz
port: 8090
periodSeconds: 10
hostAliases:
- hostnames:
- local.test
ip: 127.0.0.1
- hostnames:
- my.test
ip: 192.168.1.1
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
serviceAccountName: RELEASE-NAME-test-chart
terminationGracePeriodSeconds: 10
volumeMounts: null
volumes: null
test name override:
1: |
apiVersion: apps/v1
Expand Down
21 changes: 0 additions & 21 deletions charts/common/test-chart/tests/__snapshot__/istio_test.yaml.snap
Original file line number Diff line number Diff line change
Expand Up @@ -40,24 +40,3 @@ test local value:
host: some.host
port:
number: 8080
test test no value:
1: |
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: RELEASE-NAME-test-chart
spec:
gateways:
- NAMESPACE/gateway
hosts:
- some.domain
http:
match:
- uri:
exact: some.domain
name: default
route:
- destination:
host: some.host
port:
number: 8080
105 changes: 105 additions & 0 deletions charts/common/test-chart/tests/deployment_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,108 @@ tests:
port: 8080
asserts:
- matchSnapshot: {}
- it: test host aliases
set:
hostAliases:
enabled: true
entries:
- ip: "127.0.0.1"
hostnames:
- "local.test"
- ip: "192.168.1.1"
hostnames:
- "my.test"
asserts:
- matchSnapshot: {}
- equal:
path: spec.template.spec.hostAliases[0].ip
value: "127.0.0.1"
- equal:
path: spec.template.spec.hostAliases[0].hostnames[0]
value: "local.test"
- equal:
path: spec.template.spec.hostAliases[1].ip
value: "192.168.1.1"
- equal:
path: spec.template.spec.hostAliases[1].hostnames[0]
value: "my.test"
- it: test disabled hostAliases
set:
hostAliases.enabled: false
asserts:
- notExists:
path: spec.template.spec.hostAliases
- it: test hostAliases override
set:
global:
hostAliases:
enabled: false
hostAliasesOverride:
enabled: true
entries:
- ip: "127.0.0.1"
hostnames:
- "local.test"
- ip: "192.168.1.1"
hostnames:
- "my.test"
asserts:
- equal:
path: spec.template.spec.hostAliases[0].ip
value: "127.0.0.1"
- equal:
path: spec.template.spec.hostAliases[0].hostnames[0]
value: "local.test"
- equal:
path: spec.template.spec.hostAliases[1].ip
value: "192.168.1.1"
- equal:
path: spec.template.spec.hostAliases[1].hostnames[0]
value: "my.test"
- it: test hostAliases global
set:
global:
hostAliases:
enabled: true
entries:
- ip: "127.0.0.1"
hostnames:
- "local.test"
- ip: "192.168.1.1"
hostnames:
- "my.test"
asserts:
- equal:
path: spec.template.spec.hostAliases[0].ip
value: "127.0.0.1"
- equal:
path: spec.template.spec.hostAliases[0].hostnames[0]
value: "local.test"
- equal:
path: spec.template.spec.hostAliases[1].ip
value: "192.168.1.1"
- equal:
path: spec.template.spec.hostAliases[1].hostnames[0]
value: "my.test"
- it: test enable default hostAliases
# defaults:
# hostAliases:
# enabled: false
# entries:
# - ip: "10.96.188.4"
# hostnames:
# - "kcp.api.portal.dev.local"
# - "portal.dev.local"
set:
hostAliases:
enabled: true
asserts:
- equal:
path: spec.template.spec.hostAliases[0].ip
value: "10.96.188.4"
- equal:
path: spec.template.spec.hostAliases[0].hostnames[0]
value: "kcp.api.portal.dev.local"
- equal:
path: spec.template.spec.hostAliases[0].hostnames[1]
value: "portal.dev.local"
10 changes: 10 additions & 0 deletions charts/common/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,13 @@ defaults:
kind: SecretStore
# -- the default store name to be used in external secrets
name: environment-store

hostAliases:
# -- toggle to enable/disable hostAliases configuration
enabled: false
# -- host aliases
entries:
- ip: "10.96.188.4"
hostnames:
- "kcp.api.portal.dev.local"
- "portal.dev.local"
Loading