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
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.8.8] - 2025-01-03

### Added

- Pod Disruption Budgets can be defined by adding a `podDisruptionBudget` to a deployment with `minAvailable` and `maxUnavailable` specified as described [in the Kubernetes documentation](https://kubernetes.io/docs/tasks/run-application/configure-pdb/).

## [1.8.7] - 2024-12-23

### Added
Expand Down
2 changes: 1 addition & 1 deletion charts/common/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ apiVersion: v2
description: Common service chart
name: common
type: library
version: 1.8.7
version: 1.8.8
maintainers:
- name: DevOps
4 changes: 4 additions & 0 deletions charts/common/templates/_deployment.yaml.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@
{{ include "common.kubernetes.podautoscaler" (dict "global" $global "selector" $deploymentName "autoscaling" .) }}
{{- end }}

{{- with $deploymentDetails.podDisruptionBudget }}
{{- include "common.kubernetes.pod_disruption_budget" (dict "chart" $chart "deploymentName" $deploymentName "selector" $selector "pdb" .) }}
{{- end }}

---
apiVersion: apps/v1
kind: Deployment
Expand Down
1 change: 0 additions & 1 deletion charts/common/templates/_microservice.yaml.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,4 @@
{{- with .Values.secrets }}
{{- include "common.kubernetes.clusterexternalsecret" (dict "root" $ "global" $global "secrets" .) -}}
{{- end -}}

{{- end }}
17 changes: 17 additions & 0 deletions charts/common/templates/_pod_disruption_budget.yaml.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{{- define "common.kubernetes.pod_disruption_budget" -}}
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ printf "%s-%s-pdb" .chart.Name .deploymentName }}
spec:
{{- if .pdb.minAvailable }}
minAvailable: {{ .pdb.minAvailable }}
{{- end }}
{{- if .pdb.maxUnavailable }}
maxUnavailable: {{ .pdb.maxUnavailable }}
{{- end }}
selector:
matchLabels:
app: {{ .selector }}
{{- end }}
10 changes: 5 additions & 5 deletions test/expected_output/affinity.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: apps/v1
kind: Deployment
metadata:
Expand All @@ -10,24 +10,24 @@ metadata:
labels:
app: web
app.kubernetes.io/name: dummy
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
spec:
replicas: 3
selector:
matchLabels:
selector: defaults-deployment-web
selector: my-cool-app-deployment-web
template:
metadata:
annotations:
provi.repository: https://github.com/example/repo
provi.slack: my-cool-team
labels:
selector: defaults-deployment-web
selector: my-cool-app-deployment-web
app: web
app.kubernetes.io/name: dummy
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
spec:
Expand Down
12 changes: 6 additions & 6 deletions test/expected_output/autoscaler.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: apps/v1
kind: Deployment
metadata:
Expand All @@ -10,23 +10,23 @@ metadata:
labels:
app: web
app.kubernetes.io/name: dummy
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
spec:
selector:
matchLabels:
selector: defaults-deployment-web
selector: my-cool-app-deployment-web
template:
metadata:
annotations:
provi.repository: https://github.com/example/repo
provi.slack: my-cool-team
labels:
selector: defaults-deployment-web
selector: my-cool-app-deployment-web
app: web
app.kubernetes.io/name: dummy
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
spec:
Expand Down Expand Up @@ -91,7 +91,7 @@ spec:
values:
- karpenter
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
Expand Down
4 changes: 2 additions & 2 deletions test/expected_output/clusterexternalsecret-basic.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: external-secrets.io/v1beta1
kind: ClusterExternalSecret
metadata:
Expand Down Expand Up @@ -38,7 +38,7 @@ spec:
key: rds!cluster-1a123b45-6c78-901d-e234-f5678901a23b
property: password
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: external-secrets.io/v1beta1
kind: ClusterExternalSecret
metadata:
Expand Down
4 changes: 2 additions & 2 deletions test/expected_output/configmaps.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: v1
kind: ConfigMap
metadata:
name: testmap
annotations:
provi.repository: https://github.com/example/repo
labels:
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
data:
Expand Down
10 changes: 5 additions & 5 deletions test/expected_output/containers-basic.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: apps/v1
kind: Deployment
metadata:
Expand All @@ -8,22 +8,22 @@ metadata:
provi.repository: https://github.com/example/repo
labels:
app: web
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
spec:
replicas: 1
selector:
matchLabels:
selector: defaults-deployment-web
selector: my-cool-app-deployment-web
template:
metadata:
annotations:
provi.repository: https://github.com/example/repo
labels:
selector: defaults-deployment-web
selector: my-cool-app-deployment-web
app: web
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
spec:
Expand Down
12 changes: 6 additions & 6 deletions test/expected_output/cronjobs-global-serviceaccount.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: v1
kind: ServiceAccount
metadata:
Expand All @@ -9,11 +9,11 @@ metadata:
eks.amazonaws.com/role-arn: "arn:aws:iam::123456789:role/test-service-account"
eks.amazonaws.com/sts-regional-endpoints: "true"
labels:
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: batch/v1
kind: CronJob
metadata:
Expand All @@ -22,7 +22,7 @@ metadata:
provi.repository: https://github.com/example/repo
labels:
app: scheduler
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
spec:
Expand All @@ -42,9 +42,9 @@ spec:
annotations:
provi.repository: https://github.com/example/repo
labels:
selector: defaults-cronjob-scheduler
selector: my-cool-app-cronjob-scheduler
app: scheduler
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
spec:
Expand Down
12 changes: 6 additions & 6 deletions test/expected_output/cronjobs-serviceaccount.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: v1
kind: ServiceAccount
metadata:
Expand All @@ -10,11 +10,11 @@ metadata:
eks.amazonaws.com/role-arn: "arn:aws:iam::123456789:role/test-service-account"
eks.amazonaws.com/sts-regional-endpoints: "true"
labels:
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: batch/v1
kind: CronJob
metadata:
Expand All @@ -24,7 +24,7 @@ metadata:
test.annotation: hello-test-world
labels:
app: myCoolJob
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
spec:
Expand All @@ -45,9 +45,9 @@ spec:
provi.repository: https://github.com/example/repo
test.annotation: hello-test-world
labels:
selector: defaults-cronjob-myCoolJob
selector: my-cool-app-cronjob-myCoolJob
app: myCoolJob
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
spec:
Expand Down
8 changes: 4 additions & 4 deletions test/expected_output/cronjobs.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: batch/v1
kind: CronJob
metadata:
Expand All @@ -10,7 +10,7 @@ metadata:
test.override.annotation: hello-override-world
labels:
app: scheduler
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
testOverrideLabel: hello-override-world
Expand All @@ -33,9 +33,9 @@ spec:
test.annotation: hello-test-world
test.override.annotation: hello-override-world
labels:
selector: defaults-cronjob-scheduler
selector: my-cool-app-cronjob-scheduler
app: scheduler
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
testOverrideLabel: hello-override-world
Expand Down
16 changes: 8 additions & 8 deletions test/expected_output/deployments-selector.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: v1
kind: ServiceAccount
metadata:
Expand All @@ -9,11 +9,11 @@ metadata:
eks.amazonaws.com/role-arn: "arn:aws:iam::123456789:role/test-deployments"
eks.amazonaws.com/sts-regional-endpoints: "true"
labels:
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: v1
kind: Service
metadata:
Expand All @@ -22,7 +22,7 @@ metadata:
provi.repository: https://github.com/example/repo
labels:
app: web
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
spec:
Expand All @@ -35,7 +35,7 @@ spec:
protocol: TCP
targetPort: 8080
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: apps/v1
kind: Deployment
metadata:
Expand All @@ -44,7 +44,7 @@ metadata:
provi.repository: https://github.com/example/repo
labels:
app: web
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
spec:
Expand All @@ -58,7 +58,7 @@ spec:
labels:
selector: test-foo-selector
app: web
chart: defaults
chart: my-cool-app
chartVersion: 1.0.0
team: cool-team
spec:
Expand Down Expand Up @@ -122,7 +122,7 @@ spec:
values:
- karpenter
---
# Source: defaults/templates/microservice.yaml.tpl
# Source: my-cool-app/templates/microservice.yaml.tpl
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
Expand Down
Loading