2023-12-14 15:17:09 +00:00
suite : Controller > DaemonSet
templates :
- controller-daemonset.yaml
tests :
- it : should create a DaemonSet if `controller.kind` is "DaemonSet"
set :
controller.kind : DaemonSet
asserts :
- hasDocuments :
count : 1
- isKind :
of : DaemonSet
- equal :
path : metadata.name
value : RELEASE-NAME-ingress-nginx-controller
2024-02-02 06:55:15 +00:00
- it : should create a DaemonSet with argument `--enable-metrics=false` if `controller.metrics.enabled` is false
set :
controller.kind : DaemonSet
controller.metrics.enabled : false
asserts :
- contains :
path : spec.template.spec.containers[0].args
content : --enable-metrics=false
- it : should create a DaemonSet without argument `--enable-metrics=false` if `controller.metrics.enabled` is true
set :
controller.kind : DaemonSet
controller.metrics.enabled : true
asserts :
- notContains :
path : spec.template.spec.containers[0].args
content : --enable-metrics=false
2024-03-14 13:23:13 +00:00
- it : should create a DaemonSet with argument `--controller-class=k8s.io/ingress-nginx-internal` if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal"
set :
controller.kind : DaemonSet
controller.ingressClassResource.controllerValue : k8s.io/ingress-nginx-internal
asserts :
- contains :
path : spec.template.spec.containers[0].args
content : --controller-class=k8s.io/ingress-nginx-internal
2024-02-02 06:55:15 +00:00
- it : should create a DaemonSet with resource limits if `controller.resources.limits` is set
set :
controller.kind : DaemonSet
controller.resources.limits.cpu : 500m
controller.resources.limits.memory : 512Mi
asserts :
- equal :
path : spec.template.spec.containers[0].resources.limits.cpu
value : 500m
- equal :
path : spec.template.spec.containers[0].resources.limits.memory
value : 512Mi
2024-04-05 21:19:58 +00:00
- it : should create a DaemonSet with topology spread constraints if `controller.topologySpreadConstraints` is set
set :
controller.kind : DaemonSet
controller.topologySpreadConstraints :
- labelSelector :
matchLabels :
app.kubernetes.io/name : '{{ include "ingress-nginx.name" . }}'
app.kubernetes.io/instance : '{{ .Release.Name }}'
app.kubernetes.io/component : controller
topologyKey : topology.kubernetes.io/zone
maxSkew : 1
whenUnsatisfiable : ScheduleAnyway
- labelSelector :
matchLabels :
app.kubernetes.io/name : '{{ include "ingress-nginx.name" . }}'
app.kubernetes.io/instance : '{{ .Release.Name }}'
app.kubernetes.io/component : controller
topologyKey : kubernetes.io/hostname
maxSkew : 1
whenUnsatisfiable : ScheduleAnyway
asserts :
- equal :
path : spec.template.spec.topologySpreadConstraints
value :
- labelSelector :
matchLabels :
app.kubernetes.io/name : ingress-nginx
app.kubernetes.io/instance : RELEASE-NAME
app.kubernetes.io/component : controller
topologyKey : topology.kubernetes.io/zone
maxSkew : 1
whenUnsatisfiable : ScheduleAnyway
- labelSelector :
matchLabels :
app.kubernetes.io/name : ingress-nginx
app.kubernetes.io/instance : RELEASE-NAME
app.kubernetes.io/component : controller
topologyKey : kubernetes.io/hostname
maxSkew : 1
whenUnsatisfiable : ScheduleAnyway
2024-06-14 09:13:44 +00:00
- it : should create a DaemonSet with affinity if `controller.affinity` is set
set :
controller.kind : DaemonSet
controller.affinity :
podAntiAffinity :
requiredDuringSchedulingIgnoredDuringExecution :
- labelSelector :
matchExpressions :
- key : app.kubernetes.io/name
operator : In
values :
- '{{ include "ingress-nginx.name" . }}'
- key : app.kubernetes.io/instance
operator : In
values :
- '{{ .Release.Name }}'
- key : app.kubernetes.io/component
operator : In
values :
- controller
topologyKey : kubernetes.io/hostname
asserts :
- equal :
path : spec.template.spec.affinity
value :
podAntiAffinity :
requiredDuringSchedulingIgnoredDuringExecution :
- labelSelector :
matchExpressions :
- key : app.kubernetes.io/name
operator : In
values :
- ingress-nginx
- key : app.kubernetes.io/instance
operator : In
values :
- RELEASE-NAME
- key : app.kubernetes.io/component
operator : In
values :
- controller
topologyKey : kubernetes.io/hostname