|
| 1 | +# Katafygio |
| 2 | + |
| 3 | +[Katafygio](https://github.com/bpineau/katafygio) discovers Kubernetes objects (deployments, services, ...), and continuously save them as YAML files in a git repository. This provides real time, continuous backups, and keeps detailed changes history. |
| 4 | + |
| 5 | +## TL;DR; |
| 6 | + |
| 7 | +```bash |
| 8 | +$ helm install assets/helm-chart/katafygio/ |
| 9 | +``` |
| 10 | + |
| 11 | +## Introduction |
| 12 | + |
| 13 | +This chart installs a [Katafygio](https://github.com/bpineau/katafygio) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. |
| 14 | + |
| 15 | +## Prerequisites |
| 16 | + |
| 17 | +- Kubernetes 1.8+ |
| 18 | + |
| 19 | +## Chart Details |
| 20 | + |
| 21 | +If your backups are flooded by commits from uninteresting changes, you may filter out irrelevant objects using the `excludeKind` and `excludeObject` options. |
| 22 | + |
| 23 | +By default, the chart will dump (and version) the clusters content in /tmp/kf-dump (configurable with `localDir`). |
| 24 | +This can be useful as is, to keep a local and ephemeral changes history. To benefit from long term, out of cluster, and centrally reachable persistence, you may provide the address of a remote git repository (with `gitUrl`), where all changes will be pushed. |
| 25 | + |
| 26 | +## Installing the Chart |
| 27 | + |
| 28 | +To install the chart with the release name `my-release`: |
| 29 | + |
| 30 | +```bash |
| 31 | +$ helm install --name my-release assets/helm-chart/katafygio/ |
| 32 | +``` |
| 33 | + |
| 34 | +## Uninstalling the Chart |
| 35 | + |
| 36 | +To uninstall/delete the `my-release` deployment: |
| 37 | + |
| 38 | +```console |
| 39 | +$ helm delete my-release |
| 40 | +``` |
| 41 | + |
| 42 | +The command removes all the Kubernetes components associated with the chart and deletes the release. |
| 43 | + |
| 44 | +## Configuration |
| 45 | + |
| 46 | +The following table lists the configurable parameters of the Katafygio chart and their default values. |
| 47 | + |
| 48 | +| Parameter | Description | Default | |
| 49 | +|-------------------------|-------------------------------------------------------------|--------------------------------------| |
| 50 | +| `replicaCount` | Desired number of pods | `1` | |
| 51 | +| `image.repository` | Katafygio container image name | `bpineau/katafygio` | |
| 52 | +| `image.tag` | Katafygio container image tag | `v0.5.0` | |
| 53 | +| `image.pullPolicy` | Katafygio container image pull policy | `IfNotPresent` | |
| 54 | +| `localDir` | Container's local path where Katafygio will dump and commit | `/tmp/kf-dump` | |
| 55 | +| `gitUrl` | Optional remote repository where changes will be pushed | `nil` | |
| 56 | +| `noGit` | Disable git versioning | `false` | |
| 57 | +| `filter` | Label selector to dump only matched objects | `nil` | |
| 58 | +| `healthcheckPort` | The port Katafygio will listen for health checks requests | `8080` | |
| 59 | +| `excludeKind` | Object kinds to ignore | `{"replicaset","endpoints","event"}` | |
| 60 | +| `excludeObject` | Specific objects to ignore (eg. "configmap:default/foo") | `nil` | |
| 61 | +| `rbac.create` | Enable or disable RBAC roles and bindings | `true` | |
| 62 | +| `rbac.apiVersion` | RBAC API version | `v1` | |
| 63 | +| `serviceAccount.create` | Whether a ServiceAccount should be created | `true` | |
| 64 | +| `serviceAccount.name` | Service account to be used | `nil` | |
| 65 | +| `resyncInterval` | Seconds between full catch-up resyncs. 0 to disable | `300` | |
| 66 | +| `logLevel` | Log verbosity (ie. info, warning, error) | `warning` | |
| 67 | +| `logOutput` | Logs destination (stdout, stderr or syslog) | `stdout` | |
| 68 | +| `logServer` | Syslog server address (eg. "rsyslog:514") | `nil` | |
| 69 | +| `resources` | CPU/Memory resource requests/limits | `{}` | |
| 70 | +| `tolerations` | List of node taints to tolerate | `[]` | |
| 71 | +| `affinity` | Node affinity for pod assignment | `{}` | |
| 72 | +| `nodeSelector` | Node labels for pod assignment | `{}` | |
| 73 | + |
| 74 | +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. |
| 75 | + |
| 76 | +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, |
| 77 | + |
| 78 | +```bash |
| 79 | +$ helm install --name my-release -f values.yaml assets/helm-chart/katafygio/ |
| 80 | +``` |
| 81 | +> **Tip**: You can use the default [values.yaml](values.yaml) |
0 commit comments