-
Notifications
You must be signed in to change notification settings - Fork 30
Backup and disaster recovery
This page documents good practices for backup and disaster recovery of production Cloud Foundry clusters.
Assumptions:
- Inception-server via cloudfoundry-community/inception-server
- BOSH via cloudfoundry-community/bosh-bootstrap
- Cloud Foundry via cloudfoundry-community/bosh-cloudfoundry
- Deployed to AWS
- Make an AWS AMI from the inception server
- Make a backup of [your workstation]::
~/.inception-server
- Launch a new instance from your backup AWS AMI
- Restore the backup of [your workstation]::
~/.inception-server
- Reassign the elastic IP (as specified in
~/.inception_server/settings.yml
- Make sure you are taking regular snapshots of the persistent EBS volume attached to your MicroBOSH
- You can find the vol id using
inception_server$ grep disk_cid ~/.microbosh/deployments/bosh-deployments.yml
- You can find the vol id using
-
bosh backup
makes a.tgz
of MicroBOSH director to the persistent disk of the MicroBOSH. That said, there is no documented way to restore this.
-
Assumptions
- Persistent EBS volume for terminated MicroBosh is still around
-
bosh-deployments.yml
for terminated MicroBosh in git is up-to-date -
micro_bosh.yml
for terminated MicroBosh in git is up-to-date
-
cd path/to/deployments
(directory containing your bosh-deployments.yml file) -
In
bosh-deployments.yml
for terminated MicroBosh- Take note of its ami (e.g. ami-12345)
- Take note of its persistent disk's volume-id (e.g. vol-111111)
-
mv bosh-deployments.yml bosh-deployments-old.yml
-
Deploy a new MicroBosh
be bosh micro deploy ami-12345
- Take note of the new persistent disk's volume-id (e.g. vol-222222)
-
On the new MicroBosh
sudo -i
monit stop all
watch monit summary
- Wait until jobs are no longer being monitored
sv stop agent
mount
- Take note of device for
/var/vcap/store
(e.g./dev/xvdf1
, which corresponds to/dev/sdf
in the AWS console) umount /var/vcap/store
-
In the AWS console
- Detach the new persistent EBS volume (vol-222222 from new
bosh-deployments.yml
) from the new MicroBosh instance - Attach old persistent EBS volume (vol-111111 from old
bosh-deployments.yml
) to the new MicroBosh instance, use the same device as new persistent volume (e.g./dev/sdf
)
- Detach the new persistent EBS volume (vol-222222 from new
-
Back on the new MicroBosh
sudo -i
sed -i 's/vol-222222/vol-111111/' /var/vcap/bosh/settings.json
sv start agent
watch monit summary
-
sed -i 's/vol-222222/vol-111111/' bosh-deployments.yml
-
rm bosh-deployments-old.yml
-
git commit
-
git push
-
In the AWS console, delete the unused EBS volume
vol-222222
- No need to ask permission - if you want to make an edit or add a new section, just do it!
- The official cf-docs maintainers cherry-pick content from this wiki for the official docs
- The contents of this wiki are in no way endorsed, maintained or supported by the core Cloud Foundry team
- Development Process
- Mailing Lists & Chats
- CI and the Commit Pipeline
- Contributing Code or Docs
- Contribution Standards
- Design Documents
- Proposing New Features
- Adding New Services
- Project Incubator
- Reporting Security Vulnerabilities
- CFF vulnerability mgt
- CAB meeting minutes
See CFF official project list.
Roadmaps are reflected in pivotal trackers. Tracker Instructions and steps to watch stories. Here is a flat list of all trackers:
- BOSH
- BBR
- CF Abacus
- CF App Autoscaler
- CF Buildpacks
- Concourse roadmap, and milestones
- CF Containerization/quarks
- CF Container Networking
- CF CAPI
- CF API K8s Evolution
- CredHub
- CF CLI
- CF CLI V3 acceleration
- CF Diego
- CF Docs
- CF Eclipse
- CF Eirini
- CF Flintstone
- CF Foundation
- CF Garden
- CF Greenhouse (windows)
- CF GrootFS (aka Garden RootFs)
- CF Identity (aka UAA)
- CF Infrastructure (incls BBL)
- CF Java Buildpack
- CF Java Client
- CF Lattice
- CF Logging and Metrics
- CF MEGA (Release Integration)
- CF Networking - CF K8S
- CF Networking - CFAR Mesh
- CF Mysql (core services)
- CF Notifications
- CF Permissions
- CF Persistence
- CF Postgres-release
- CF Runtime OG
- CF Routing
- CF Routing TCP
- CF services API (aka SAPI)
- Cloud Service Brokers (by SAPI/service enablement team)
- Kubo
- License Finder
- BBR
- Buildpacks
- BOSH
- BOSH CPIs
- Cf Java Client
- Core services (mysql) - repo
- Garden
- Grootfs
- Infra/tools
- Java Buildpack
- Kubo - repo
- Loggregator
- Persistence
- Release integration - repo
- Routing
- Runtime - repo
- Service API (aka SAPI)
Maybe other CIs hosted on cf-app.com are mentioned in slack ?
- See Client Tools on docs
- 3rd Party Compatible Apps