Skip to content

Epic: [Self-Hosted] Enable a way to persist Gitpod K8s Manifests for Disaster recovery Purposes #10719

Closed
@lucasvaltl

Description

@lucasvaltl

Summary

Find a way to persist the k8s ymls needed to install (kubectl apply) Gitpod in a secure location in order to be able to use these to quickly re-install Gitpod in its last known state in the event of a disaster.

Context

In the event of an unforeseen event where, e.g. your entire cluster running Gitpod goes down, you need to be able to quickly re-instate Gitpod in its last known state. The actual application state and the workspace state is usually saved externally, however one also needs to have the k8s manifests used to install Gitpod. Otherwise one would have to go through the entire installation flow manually, which would be prone to human error especially in a stressful situation.

Value

  • Speed up your Recovery Time Objective (RTO) and the risk of human error while doing a recovery (you do not need ti manually insert values into an installation UI)

Acceptance Criteria

  • The K8s ymls required to install (apply) gitpod can be backed up outside of the cluster
  • Ideally this is version controlled, i.e. this lives in a git repo (Git Ops Workflow)
  • Documentation

Measurement

  • Adoption by customers.

Potential solutions

  • Enable KOTS Gitops workflow (we have an FR open for this)
  • Enable a GitOps workflow ourselves
  • One way would be to explicitly document the configuration and the kots CLI (non ui) installation path and then expect users to use this.
  • Download config map in a regular cadence
  • Rely on Replicated's backup and restore, with the downside that it would make the user assume we are backing up all data (i.e. also data stored in external dependencies) when in fact we are only backing up the application k8s manifest data. We cannot change the UI here, so it will be hard to message this.

Issues

Additional Context:

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions