app-rook-ceph/debian_pkg_dirs
Robert Church b5a6779471 Add floating monitor helm chart
This change adds a new helm chart to be deployed on AIO-DX systems when:
- the optional ceph DRDB filesystem is deployed (via controllerfs API)
- the floating monitor is enabled (via application helm plugin)

The chart starts a deployment that is based on the standard ceph monitor
deployment generated by the Rook Operator.

Changes to the deployment include:
- overrides enabled for cluster FSID and static public address
- setting monitor name to 'mon-float'
- add an init container to prevent start if the filesystem mount is
  not a DRBD device
- add an init container to wipe any existing monitor DB if this
  deployment was NOT previously running

Orchestration of this monitor is managed by helm install and delete
hooks. These hooks perform the following activities
- pre-install:
  - Wait for the cephcluster to be 'Ready'
  - Disable the Rook operator from managing monitors
  - Patch the monitor endpoints to include the floating monitor
  - Patch the config secrets to include the floating monitor
  - Wait for the fixed monitors to absorb the changes
  - Extract the cluster FSID and populate a configmap for input to the
    floating monitor deployment
  - Save the current health state of the cluster. If the state is
    HEALTH_OK, the post-install will look to achieve that state again
    prior to completion
- post-install
  - Wait for the floating monitor deployment to be 'available'
  - If the cluster was previously HEALTH_OK; wait for a HEALTH_WARN ->
    HEALTH_OK transition as the monitor joins the cluster
  - Save the state of the floating monitor as enabled so that subsequent
    restarts of the floating monitor does not remove the existing
    monitor DB on init
- pre-delete
  - Wait for the cluster to be 'Ready'
  - Save the current health state of the cluster. If the state is
    HEALTH_OK, the post-delete will look to achieve that state again
    prior to completion
- post-delete
  - Wait for the floating monitor pod to be deleted
  - Patch the monitor endpoints to remove the floating monitor
  - Patch the config secrets to remove the floating monitor
  - Restart the monitor deployments to pick up the changes
  - Re-enable the Rook Operator to manage the monitors
  - Patch the cephcluster to perform monitor failovers in 5s to allow
    the Operator to "cleanup" evidence of the floating monitor quickly
  - Restore the default failover value for by patching the cephcluster
    and setting thr value to 600s
  - If the cluster was previously HEALTH_OK; wait for a HEALTH_WARN ->
    HEALTH_OK transition as the monitor joins the cluster

Test Plan:
PASS - Pkg build + ISO generation
PASS - Successful AIO-DX Installation
PASS - Initial Rook deployment without floating monitor.
PASS - manually add/remove a floating monitor via helm commands (upgrade
      --install & delete)
PASS - IPv4/IPv6 lab testing

Change-Id: I16f6a6bc9b14801d379a4f3f5210d29ee72195ee
Depends-On: https://review.opendev.org/c/starlingx/stx-puppet/+/926375
Story: 2011066
Task: 50836
Signed-off-by: Robert Church <robert.church@windriver.com>
2024-08-15 12:51:38 -05:00

6 lines
177 B
Plaintext

helm-charts/custom/rook-ceph-floating-monitor-helm
helm-charts/custom/rook-ceph-provisioner-helm
helm-charts/upstream/rook-ceph-helm
python3-k8sapp-rook-ceph
stx-rook-ceph-helm