Developer toolkit for Red Hat Advanced Cluster Management (ACM) and Multicluster Engine (MCE) operators. This repository provides automation scripts, compliance checkers, build monitors, and development utilities for the stolostron project team.
This toolkit serves as a centralized hub for:
- Konflux Build Monitoring & Compliance - Monitor CI/CD builds and validate compliance across multiple dimensions
- Release Management - Version management, component onboarding, and release automation
- Bundle Generation - Generate Helm charts and operator bundles from OLM manifests
- Quality Engineering - Build notifications and PR status tracking
- Pod Security Compliance - Validate and enforce OpenShift pod security standards
- Cloud Infrastructure - Azure AKS cluster provisioning for testing
- Jira Integration - Automated progress summaries and issue tracking from merged PRs
Required Tools:
kubectloroc(OpenShift CLI)yq(YAML processor)jq(JSON processor)skopeo(container image inspection)- Python 3.6+
Optional Tools (for specific scripts):
operator-sdk(for AKS OLM setup)az(Azure CLI for AKS provisioning)podman(for bundle generation)
Authentication:
- GitHub token in
authorization.txt(for Konflux scripts) - OpenShift login (
oc loginor KUBECONFIG) - Quay registry pull secrets (see pull-secret-propagation-guide.md)
# Clone the repository
git clone https://github.com/stolostron/installer-dev-tools.git
cd installer-dev-tools
# Install Python dependencies
pip install -r scripts/qe/requirements.txt
# Verify you're logged into OpenShift
oc whoamiMonitor and validate Konflux-based CI/CD builds for ACM and MCE operators.
Key Scripts:
| Script | Description |
|---|---|
compliance.sh |
Validate component compliance (image promotion, hermetic builds, EC, multiarch) |
batch-compliance.sh |
Run compliance checks in parallel for multiple applications |
konflux-build-monitor-v2.py |
Comprehensive build monitoring (apps, snapshots, releases, Quay status) |
analyze-diffs.sh |
Enforce development phase policies (feature-complete, code-lockdown) |
konflux-snapshot-difftool.sh |
Generate git diffs between Konflux snapshots |
check-component-promotions.sh |
Monitor component promotion status |
Example Usage:
cd scripts/konflux
# Check compliance for ACM 2.15
./compliance.sh acm-215
# Check compliance filtered by squad
./compliance.sh --squad=grc acm-215
# Run batch compliance checks
./batch-compliance.sh acm-215 mce-29
# Monitor builds for multiple releases
python3 konflux-build-monitor-v2.py --apps release-acm-216,release-mce-211 --verbose
# Analyze snapshot diffs for code freeze compliance
./konflux-snapshot-difftool.sh -v acm-2.15.0 -s snapshot1 -s snapshot2
./analyze-diffs.sh --mode code-lockdown --format jsonQuality engineering tools for build notifications and PR tracking.
Key Scripts:
| Script | Description |
|---|---|
konflux-build-notification.sh |
Monitor and notify about new Konflux builds |
konflux-build-status.sh |
Check current build status |
pr-downstream-status.py |
Track downstream PR merge status |
Example Usage:
cd scripts/qe
# Check for new builds and generate diff reports
./konflux-build-notification.sh
# Check PR downstream status
python3 pr-downstream-status.pyValidate and enforce OpenShift pod security standards for ACM/MCE installations.
Key Scripts:
| Script | Description |
|---|---|
pod-linter.sh |
Scan pods for SCC usage and security context violations |
pod-enforce.sh |
Automatically remediate security violations |
Example Usage:
cd scripts/compliance
# Scan all ACM/MCE pods for security violations
./pod-linter.sh
# Automatically patch deployments to enforce security
./pod-enforce.shGenerate Helm charts and operator bundles from OLM manifests for custom testing.
Key Scripts:
| Script | Description |
|---|---|
generate-charts.py |
Convert OLM bundles to Helm charts |
bundles-to-charts.py |
Bundle to chart conversion utility |
move-charts.py |
Move generated charts to target locations |
Documentation:
- Custom Bundle Guide - Build custom operator bundles from scratch
- Cloned Bundle Guide - Streamlined workflow using existing bundles
Release management, versioning, and component onboarding.
Key Scripts:
| Script | Description |
|---|---|
onboard-new-components.py |
Interactive wizard for onboarding new components |
release-version.sh |
Validate operator versions match resource annotations |
refresh-image-aliases.py |
Update image alias configurations |
Example Usage:
cd scripts/release
# Onboard a new component
python3 onboard-new-components.py
# Validate deployment versions
./release-version.shAzure Kubernetes Service cluster provisioning for testing.
Key Scripts:
| Script | Description |
|---|---|
create-aks.sh |
Create AKS cluster with OLM installed |
delete-aks.sh |
Delete AKS cluster and resources |
Example Usage:
cd scripts/aks
# Create AKS cluster
./create-aks.sh eastus my-test-cluster my-resource-group
# Delete when done
./delete-aks.sh my-resource-groupCLI tool for automatically generating and posting progress summaries to Jira from merged pull requests.
Features:
- π€ AI-powered summaries using local Ollama (free and private)
- π Manual summaries for work without PRs
- π Automatic status transitions (New β In Progress, Merged β Review)
- π§ͺ QE test case generation with QE-NotApplicable detection
- πΎ Smart caching to prevent duplicate posts
- π Works from any directory with auto-repo detection
Installation:
cd jira-pr-cli
pip install -e .
# First-time setup
jira-pr-summary --setupExample Usage:
# Process a specific PR
jira-pr-summary --pr 3369
# Use AI for summaries (requires Ollama)
jira-pr-summary --pr 3369 --ai
# Process all PRs for an issue
jira-pr-summary --issue ACM-28712
# Manual summary (no PR required)
jira-pr-summary --manual ACM-28592Documentation:
- README.md - Full documentation
- INSTALL.md - Installation guide
/scripts/tools/- Utility scripts (image validation, etc.)/scripts/utils/- Common helper functions shared across scripts
- Squad-Based Filtering: Filter compliance checks by team ownership
- Multi-Architecture Support: Validate builds for amd64, arm64, ppc64le, s390x
- Parallel Processing: Run batch checks concurrently for faster results
- Multiple Output Formats: Text, JSON, CSV for different use cases
- Development Phase Awareness: Code freeze policy enforcement
- Comprehensive Monitoring: Full-stack visibility from builds to deployments
Configuration templates are available in /config/:
config.tpl- OLM operator configuration templatecharts-config.tpl- Helm chart configuration template
- CONTRIBUTING.md - Contribution guidelines and DCO requirements
- pull-secret-propagation-guide.md - Configure private registry access
- SECURITY.md - Security vulnerability reporting
- custom-bundle-generation/ - Custom bundle creation guides
# Check compliance for a release
cd scripts/konflux
./compliance.sh acm-215
# Monitor for new builds
cd ../qe
./konflux-build-notification.shcd scripts/compliance
./pod-linter.sh
# Review lint.yaml output
./pod-enforce.sh # Apply fixes# Build custom operator image
IMG=quay.io/user/operator:tag make podman-build
podman push quay.io/user/operator:tag
# Follow the custom bundle guide
# See: custom-bundle-generation/CUSTOM_BUNDLE_GUIDE.mdcd scripts/konflux
./konflux-snapshot-difftool.sh -v acm-2.15.0 -s baseline -s current
./analyze-diffs.sh --mode code-lockdown --format csv# One-time setup
cd jira-pr-cli
pip install -e .
jira-pr-summary --setup
# After merging a PR
cd ~/any-repo
jira-pr-summary --pr 3369 --aiPlatforms:
- Konflux (Red Hat CI/CD)
- OpenShift/Kubernetes
- Azure AKS
- Quay.io Registry
Languages:
- Bash
- Python 3.6+
- YAML/JSON
Tools:
- kubectl/oc, yq, jq
- skopeo, podman
- operator-sdk
- Azure CLI
We welcome contributions! Please see CONTRIBUTING.md for:
- DCO sign-off requirements
- Pull request guidelines
- Pre-submission checks
- Issue management
This project is licensed under the Apache License 2.0. See LICENSE for details.
For questions or issues:
- Check existing Issues
- Review documentation in
/docsand/custom-bundle-generation - Submit a new issue with detailed information
Organization: stolostron Maintainers: See OWNERS Security: See SECURITY.md