charts/kube-node-reboot/values.yaml (122 lines of code) (raw):
## @param spec The Kured configuration
## @skip spec
spec:
## @param image Docker image to use for the Kured container
## @skip image
image:
repository: ghcr.io/kubereboot/kured
tag: "" # will default to the appVersion in Chart.yaml
pullPolicy: IfNotPresent
pullSecrets: []
## @param revisionHistoryLimit The number of old history to retain to allow rollback
## @skip revisionHistoryLimit
revisionHistoryLimit: 10
## @param updateStrategy The strategy to use for updates
## @skip updateStrategy
updateStrategy: RollingUpdate
## @param maxUnavailable The maximum number of pods that can be unavailable during the update
## @skip maxUnavailable
maxUnavailable: 1
## @param podAnnotations - Annotations to add to the Kured pod
## @skip podAnnotations
podAnnotations: {}
# container.apparmor.security.beta.kubernetes.io/kured: unconfined
## @param dsAnnotations - Annotations to add to the Kured DaemonSet
## @skip dsAnnotations
dsAnnotations: {}
## @param extraArgs Additional arguments to pass to the Kured container
## @skip extraArgs
extraArgs: {}
## @param extraEnvVars Additional environment variables to pass to the Kured container
## @skip extraEnvVars
extraEnvVars: {}
# - name: slackHookUrl
# valueFrom:
# secretKeyRef:
# name: secret_name
# key: secret_key
# - name: regularEnvVariable
# value: 123
## @param configuration Configuration options for Kured
## @skip configuration
configuration:
useRebootSentinelHostPath: true # not actually a flag, indicates if the sentinel should be mounted
metricsHost: "" # host where metrics will listen
metricsPort: 8080 # port number where metrics will listen
lockTtl: 0 # force clean annotation after this amount of time (default 0, disabled)
alertFilterRegexp: "" # alert names to ignore when checking for active alerts
alertFiringOnly: false # only consider firing alerts when checking for active alerts
alertFilterMatchOnly: false # Only block if the alert-filter-regexp matches active alerts
blockingPodSelector: [] # label selector identifying pods whose presence should prevent reboots
endTime: "17:00" # only reboot before this time of day (default "23:59")
lockAnnotation: "" # annotation in which to record locking node (default "weave.works/kured-node-lock")
period: "30m0s" # reboot check period (default 1h0m0s)
forceReboot: false # force a reboot even if the drain fails or times out (default: false)
drainGracePeriod: "" # time in seconds given to each pod to terminate gracefully, if negative, the default value specified in the pod will be used (default: -1)
drainPodSelector: "" # only drain pods with labels matching the selector (default: '', all pods)
drainDelay: 0 # delay drain for this duration (default: 0, disabled)
drainTimeout: "" # timeout after which the drain is aborted (default: 0, infinite time)
skipWaitForDeleteTimeout: "" # when time is greater than zero, skip waiting for the pods whose deletion timestamp is older than N seconds while draining a node (default: 0)
prometheusUrl: "" # Prometheus instance to probe for active alerts
# only reboot on these days (default [su,mo,tu,we,th,fr,sa])
rebootDays:
- "mo"
- "tu"
- "we"
- "th"
- "fr"
rebootSentinel: "/var/run/reboot-required" # path to file whose existence signals need to reboot (default "/var/run/reboot-required")
rebootSentinelCommand: "" # command for which a successful run signals need to reboot (default ""). If non-empty, sentinel file will be ignored.
rebootCommand: "/bin/systemctl reboot" # command to run when a reboot is required by the sentinel
rebootDelay: "" # add a delay after drain finishes but before the reboot command is issued
rebootMethod: "" # method to use for reboots (default command), available: command, signal
rebootSignal: "" # signal to use for reboots (default 39 = SIGRTMIN+5).
slackChannel: "" # slack channel for reboot notifications
slackHookUrl: "" # slack hook URL for reboot notifications
slackUsername: "" # slack username for reboot notifications (default "kured")
notifyUrl: "" # notification URL with the syntax as follows: https://containrrr.dev/shoutrrr/services/overview/
messageTemplateDrain: "" # slack message template when notifying about a node being drained (default "Draining node %s")
messageTemplateReboot: "" # slack message template when notifying about a node being rebooted (default "Rebooted node %s")
messageTemplateUncordon: "" # slack message template when notifying about a node being uncordoned (default "Node %s rebooted & uncordoned successfully!")
startTime: "10:00" # only reboot after this time of day (default "0:00")
timeZone: "Europe/Amsterdam" # time-zone to use (valid zones from "time" golang package)
annotateNodes: true # enable 'weave.works/kured-reboot-in-progress' and 'weave.works/kured-most-recent-reboot-needed' node annotations to signify kured reboot operations
lockReleaseDelay: 0 # hold lock after reboot by this amount of time (default 0, disabled)
preferNoScheduleTaint: "" # Taint name applied during pending node reboot (to prevent receiving additional pods from other rebooting nodes). Disabled by default. Set e.g. to "weave.works/kured-node-reboot" to enable tainting.
logFormat: "text" # log format specified as text or json, defaults to text
preRebootNodeLabels: [] # labels to add to nodes before cordoning (default [])
postRebootNodeLabels: [] # labels to add to nodes after uncordoning (default [])
concurrency: 1 # amount of nodes to concurrently reboot. (default 1)
## @param rbac Enable RBAC resources
## @skip rbac
rbac:
create: true
## @param serviceAccount The name of the service account to use
## @skip serviceAccount
serviceAccount:
create: true
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: "/metrics"
prometheus.io/port: "8080"
## @param podSecurityPolicy Enable PodSecurityPolicy resources
## @skip podSecurityPolicy
podSecurityPolicy:
create: false
## @param containerSecurityContext Security context for the Kured container
## @skip containerSecurityContext
containerSecurityContext:
privileged: true # Give permission to nsenter /proc/1/ns/mnt
readOnlyRootFilesystem: true
# allowPrivilegeEscalation: true # Needed when using defaultAllowPrivilegedEscalation: false in psp
# Use the following security-context when "configuration.rebootMethod=signal and configuration.useRebootSentinelHostPath=true"
# containerSecurityContext:
# privileged: false
# readOnlyRootFilesystem: true
# allowPrivilegeEscalation: false
# capabilities:
# add:
# - CAP_KILL
# drop:
# - '*'
## @param resources Resource limits and requests for the Kured container
## @skip resources
resources:
limits:
cpu: "200m"
memory: "128Mi"
requests:
cpu: "200m"
memory: "128Mi"
## @param hostNetwork Use the host's network namespace
## @skip hostNetwork
hostNetwork: false
## @param metrics Enable Prometheus metrics
## @skip metrics
metrics:
create: false
namespace: ""
labels: {}
interval: 60s
scrapeTimeout: ""
## @param service Enable a service for the metrics
## @skip service
service:
create: false
port: 8080
annotations: {}
name: ""
type: ClusterIP
## @param livenessProbe The liveness probe for the Kured container
## @skip livenessProbe
livenessProbe:
httpGet:
path: /metrics
port: metrics
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 30
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 5
## @param readinessProbe The readiness probe for the Kured container
## @skip readinessProbe
readinessProbe:
httpGet:
path: /metrics
port: metrics
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 30
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 5
## @param podLabels Labels to add to the Kured pod
## @skip podLabels
podLabels: {}
## @param priorityClassName The name of the priority class to use
## @skip priorityClassName
priorityClassName: ""
## @param tolerations Tolerations for the Kured pod
## @skip tolerations
tolerations: []
## @param affinity Affinity for the Kured pod
## @skip affinity
affinity: {}
## @param nodeSelector Node selector for the Kured pod
## @skip nodeSelector
nodeSelector:
kubernetes.io/os: linux
## @param volumeMounts Additional volume mounts for the Kured container
## @skip volumeMounts
volumeMounts: []
## @param volumes Additional volumes for the Kured pod
## @skip volumes
volumes: []
## @param initContainers Additional init containers for the Kured pod
## @skip initContainers
initContainers: {}