Back to Charts

⚠️ Repo Archive Notice

stable/chaoskube/README.md

latest7.8 KB
Original Source

⚠️ Repo Archive Notice

As of Nov 13, 2020, charts in this repo will no longer be updated. For more information, see the Helm Charts Deprecation and Archive Notice, and Update.

Chaoskube Helm Chart

chaoskube periodically kills random pods in your Kubernetes cluster.

DEPRECATION NOTICE

This chart is deprecated and no longer supported.

TL;DR;

console
$ helm install stable/chaoskube

Installing the Chart

To install the chart with the release name my-release:

console
$ helm install --name my-release stable/chaoskube

The command deploys chaoskube on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.

Uninstalling the Chart

To uninstall/delete the my-release deployment:

console
$ helm delete my-release

The command removes all the Kubernetes components associated with the chart and deletes the release.

Configuration

By default chaoskube runs in dry-run mode so it doesn't actually kill anything. If you're sure you want to use it run helm with:

console
$ helm install stable/chaoskube --set dryRun=false
ParameterDescriptionDefault
namecontainer namechaoskube
imagedocker imagequay.io/linki/chaoskube
imageTagdocker image tagv0.11.0
imagePullSecretsA list of secret names for accessing private image registries[]
replicasnumber of replicas to run1
intervalinterval between pod terminations10m
labelslabel selector to filter pods by"" (matches everything)
kindsOwnerReference's Kind selector to filter pods by"" (matches everything)
annotationsannotation selector to filter pods by"" (matches everything)
namespacesnamespace selector to filter pods by"" (all namespaces)
dryRundon't kill pods, only log what would have been donetrue
logFormatOptions to choose log format(i.e. "text" or "json")"text"
debugEnable debug logging mode, for detailed logsfalse
timezoneSet timezone for running actions (Optional)"" (UTC)
excludedWeekdaysSet Days of the Week to avoid actions (Optional)"" (Don't skip any weekdays)
excludedTimesOfDaySet Time Range to avoid actions (Optional)"" (Don't skip any times of day)
excludedDaysOfYearSet Days of the Year to avoid actions (Optional)"" (Don't skip any days)
priorityClassNamepriorityClassNamenil
rbac.createcreate rbac service account and rolesfalse
rbac.serviceAccountNamename of serviceAccount to use when create is falsedefault
resourcesCPU/Memory resource requests/limits{}
nodeSelectorNode labels for pod assignment{}
tolerationsToleration labels for pod assignment[]
affinityAffinity settings for pod assignment{}
minimumAgeSet minimum pod age to filter pod by0s
podAnnotationsAnnotations for the chaoskube pod{}
podLabelsLabels for the chaoskube pod{}
gracePeriodgrace period to give pods when terminating them-1s (pod decides)
metrics.enabledEnable metrics handlerfalse
metrics.portListening port for metrics handler8080
metrics.service.typeMetrics service typeClusterIP
metrics.service.portMetrics service port8080
metrics.serviceMonitor.enabledSet this to true to create ServiceMonitor for Prometheus operatorfalse
metrics.serviceMonitor.additionalLabelsAdditional labels that can be used so ServiceMonitor will be discovered by Prometheus{}

Setting label and namespaces selectors from the shell can be tricky but is possible (example with zsh):

console
$ helm install \
  --set labels='app=mate\,stage!=prod',namespaces='!kube-system\,!production' \
  stable/chaoskube --debug --dry-run | grep -A7 args
    args:
    - --interval=10m
    - --labels=app=foo,stage!=prod
    - --namespaces=!kube-system,!production
    - --timezone=America/New_York
    - --excludedWeekdays="Sat,Tue"
    - --excludedTimesOfDay="12:00-18:00"
    - --excludedDaysOfYear="Apr1,Dec24"