StarlingX Rook Ceph Application
41adbba935
This will enable integration of the floating monitor chart into the application with: - SM service monitor changes: - Add and remove floating monitor placement labels in the start/stop functions. This will ensure that when SM is transitioning activity labels will align on the active controller. - The stop function will delete the pod to force a reschedule. - The status function will detect the presence of the DRBD mounted filesystem and adjust the labeling accordingly in case start/stop functions did not label as desired. - application plugin changes: - Add constants support for 'rook-ceph-floating-monitor' helmrelease - Provide initial utility functions to detect if the DRBD controller filesystem is enabled and if the floating monitor is assigned (via a helm use override) - Add a new function to get the IP family from the cluster-pod network to set overrides and determine the IPv4/IPv6 static address - Update the ceph cluster plugin to use a new utility function for detecting the IP family - Add the floating monitor helm plugin to generate the ip_family and static ip_address based on that family. Initial support provided for the cluster-pod network - Update the lifecycle plugin to optionally remove the floating monitor helm release on application remove - application metadata - disable the 'rook-ceph-floating-monitor' chart by default - FluxCD manifest changes - Change helmrepository API to v1 to clean up an error - Add manifests for the 'rook-ceph-floating-monitor' helm release - Temporarily set deletionPropagation in the rook-ceph-cluster, the rook-ceph-provisioner and rook-ceph-floating-monitor helmreleases to provide more predictive delete behavior - Update rook-ceph-cluster-static-overrides.yaml to add network defaults and disable the host network as the default provider. This was done to avoid port conflicts with the floating monitor. The cluster-pod network will now be the network used for the ceph cluster and its pods Enable monitor at runtime: - system helm-override-list rook-ceph -l - system helm-override-show rook-ceph rook-ceph-floating-monitor \ rook-ceph - system helm-override-update rook-ceph rook-ceph-floating-monitor \ rook-ceph --set assigned="true" - system helm-override-show rook-ceph rook-ceph-floating-monitor \ rook-ceph - system application-apply rook-ceph Disable monitor at runtime: - system helm-override-list rook-ceph -l - system helm-override-show rook-ceph rook-ceph-floating-monitor \ rook-ceph - system helm-override-update rook-ceph rook-ceph-floating-monitor \ rook-ceph --set assigned="false" - system helm-override-show rook-ceph rook-ceph-floating-monitor \ rook-ceph - system application-apply rook-ceph Future Improvements: - Pickup the desired network from the storage backend (cluster-pod, cluster-host, etc) and - update _get_ip_family() to use this value - update _get_static_floating_mon_ip() to get address pool range and calculate an appropriate static IP address for the monitor Test Plan: PASS - Pkg build + ISO generation PASS - Successful AIO-DX Installation PASS - Initial Rook deployment without floating monitor. PASS - Initial Rook deployment with floating monitor. PASS - Runtime override enable of Rook floating monitor + reapply PASS - Runtime override disable of Rook floating monitor + reapply Change-Id: Ie1ff75481b6c2f0d9d34eb228d3019465e36bc1e Depends-On: https://review.opendev.org/c/starlingx/config/+/926374 Story: 2011066 Task: 50838 Signed-off-by: Robert Church <robert.church@windriver.com> |
||
---|---|---|
helm-charts | ||
python3-k8sapp-rook-ceph | ||
stx-rook-ceph-helm | ||
.gitreview | ||
.zuul.yaml | ||
bindep.txt | ||
debian_build_layer.cfg | ||
debian_iso_image.inc | ||
debian_pkg_dirs | ||
README.md | ||
requirements.txt | ||
test-requirements.txt | ||
tox.ini |
app-rook-ceph
App-rook-ceph fluxCD app
Top Level Directory Structure
├── app-rook-ceph # Root Folder
│ ├── bindep.txt
│ ├── debian_build_layer.cfg
│ ├── debian_iso_image.inc
│ ├── debian_pkg_dirs
│ ├── python3-k8sapp-rook-ceph # lifecycle managemnt code to support flux apps
│ ├── README.md
│ ├── rook-ceph-helm # importing of upstream rook-ceph helm packages
│ ├── requirements.txt
│ ├── stx-rook-ceph-helm # helm Package manager for the app
│ ├── test-requirements.txt
│ └── tox.ini
About app-rook-ceph
Rook is a Ceph orchestrator providing a containerized solution for Ceph Storage. This application tracks the latest compatible upstream version of Rook and packs it targeting StarlingX platforms on fresh instalations. For systems that already have a Ceph backend installed, there's a migration app available.
Installation Guide
For instructions on how to build and install app-rook-ceph, follow the StarlingX Rook Ceph App installation guide.