StarlingX Rook Ceph Application
Go to file
Robert Church 41adbba935 Enable optional AIO-DX floating monitor
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>
2024-08-15 12:54:12 -05:00
helm-charts Updates to rook-ceph-provisioner helm chart 2024-08-15 12:54:12 -05:00
python3-k8sapp-rook-ceph Enable optional AIO-DX floating monitor 2024-08-15 12:54:12 -05:00
stx-rook-ceph-helm Enable optional AIO-DX floating monitor 2024-08-15 12:54:12 -05:00
.gitreview Added .gitreview 2024-03-25 19:33:20 +00:00
.zuul.yaml Initial commit for app-rook-ceph 2024-05-08 09:51:44 -03:00
bindep.txt Initial commit for app-rook-ceph 2024-05-08 09:51:44 -03:00
debian_build_layer.cfg Initial commit for app-rook-ceph 2024-05-08 09:51:44 -03:00
debian_iso_image.inc Initial commit for app-rook-ceph 2024-05-08 09:51:44 -03:00
debian_pkg_dirs Add floating monitor helm chart 2024-08-15 12:51:38 -05:00
README.md Initial commit for app-rook-ceph 2024-05-08 09:51:44 -03:00
requirements.txt Add app-rook-ceph repo setup for FluxCD App 2024-04-03 16:12:15 -03:00
test-requirements.txt Add app-rook-ceph repo setup for FluxCD App 2024-04-03 16:12:15 -03:00
tox.ini Add app-rook-ceph repo setup for FluxCD App 2024-04-03 16:12:15 -03:00

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.

References

StarlingX

Rook Ceph

Migration App