New to Stash? Please start here.

Workload Initializer

Stash operator can be used as a workload initializer. For this you need to create a InitializerConfiguration with initializer named stash.appscode.com. Please note that, this uses an alpha feature of Kubernetes.

$ kubectl apply -f ./hack/deploy/initializer.yaml
initializerconfiguration "stash-initializer-config" created
apiVersion: admissionregistration.k8s.io/v1alpha1
kind: InitializerConfiguration
metadata:
  labels:
    app: stash
  name: stash-initializer
initializers:
- name: stash.appscode.com
  rules:
  - apiGroups:
    - "*"
    apiVersions:
    - "*"
    resources:
    - daemonsets
    - deployments
    - replicasets
    - replicationcontrollers
    - statefulsets

This is helpful when you create Restic before creating workload objects. This allows stash operator to initialize the target workloads by adding sidecar or, init-container before workload-pods are created. Thus stash operator do not need to delete workload pods for applying changes.

This is particularly helpful for workload kind StatefulSet since kubernetes does not support updating StatefulSet after they are created.

Next Steps

  • Learn how to use Stash to backup a Kubernetes deployment here.
  • Learn about the details of Restic CRD here.
  • To restore a backup see here.
  • Learn about the details of Recovery CRD here.
  • To run backup in offline mode see here
  • See the list of supported backends and how to configure them here.
  • See working examples for supported workload types here.
  • Thinking about monitoring your backup operations? Stash works out-of-the-box with Prometheus.
  • Learn about how to configure RBAC roles.
  • Want to hack on Stash? Check our contribution guidelines.