aap-demo 2.0.0.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aap_demo-2.0.0.dev0/.ansible-lint +39 -0
- aap_demo-2.0.0.dev0/.claude/CLAUDE.md +98 -0
- aap_demo-2.0.0.dev0/.claude/skills/aap-demo/SKILL.md +343 -0
- aap_demo-2.0.0.dev0/.claude/skills/aap-demo/evals/evals.json +300 -0
- aap_demo-2.0.0.dev0/.commitlintrc.json +32 -0
- aap_demo-2.0.0.dev0/.editorconfig +26 -0
- aap_demo-2.0.0.dev0/.github/ISSUE_TEMPLATE/bug_report.yaml +18 -0
- aap_demo-2.0.0.dev0/.github/ISSUE_TEMPLATE/documentation.yaml +21 -0
- aap_demo-2.0.0.dev0/.github/ISSUE_TEMPLATE/github-plugin-apme.md +81 -0
- aap_demo-2.0.0.dev0/.github/PULL_REQUEST_TEMPLATE.md +32 -0
- aap_demo-2.0.0.dev0/.github/requirements/pypi-build.txt +13 -0
- aap_demo-2.0.0.dev0/.github/workflows/commitlint.yaml +54 -0
- aap_demo-2.0.0.dev0/.github/workflows/lint.yaml +171 -0
- aap_demo-2.0.0.dev0/.github/workflows/pr-checks.yaml +114 -0
- aap_demo-2.0.0.dev0/.github/workflows/pypi-publish.yaml +59 -0
- aap_demo-2.0.0.dev0/.github/workflows/python-tests.yaml +87 -0
- aap_demo-2.0.0.dev0/.github/workflows/status-badges.yaml +23 -0
- aap_demo-2.0.0.dev0/.github/workflows/test.yaml +133 -0
- aap_demo-2.0.0.dev0/.github/workflows/version-check.yaml +27 -0
- aap_demo-2.0.0.dev0/.gitignore +35 -0
- aap_demo-2.0.0.dev0/.markdown-link-check.json +33 -0
- aap_demo-2.0.0.dev0/.markdownlint.json +25 -0
- aap_demo-2.0.0.dev0/.pre-commit-config.yaml +119 -0
- aap_demo-2.0.0.dev0/.secrets.baseline +337 -0
- aap_demo-2.0.0.dev0/.shellcheckrc +2 -0
- aap_demo-2.0.0.dev0/.yamllint +51 -0
- aap_demo-2.0.0.dev0/LICENSE +202 -0
- aap_demo-2.0.0.dev0/Makefile +24 -0
- aap_demo-2.0.0.dev0/PKG-INFO +291 -0
- aap_demo-2.0.0.dev0/README.md +249 -0
- aap_demo-2.0.0.dev0/SECURITY.md +27 -0
- aap_demo-2.0.0.dev0/SKILL.md +226 -0
- aap_demo-2.0.0.dev0/VERSION +1 -0
- aap_demo-2.0.0.dev0/aap-demo.sh +3480 -0
- aap_demo-2.0.0.dev0/addons/ao/README.md +461 -0
- aap_demo-2.0.0.dev0/addons/ao/demos/README.md +30 -0
- aap_demo-2.0.0.dev0/addons/ao/deploy.sh +1767 -0
- aap_demo-2.0.0.dev0/addons/ao/lib/admin-password.sh +99 -0
- aap_demo-2.0.0.dev0/addons/ao/lib/install-plan-approval.sh +99 -0
- aap_demo-2.0.0.dev0/addons/ao/lib/replica-profile.sh +16 -0
- aap_demo-2.0.0.dev0/addons/ao/manifests/README.md +58 -0
- aap_demo-2.0.0.dev0/addons/ao/manifests/automationorchestrator-cr.yaml +43 -0
- aap_demo-2.0.0.dev0/addons/ao/manifests/operator-rbac.yaml +73 -0
- aap_demo-2.0.0.dev0/addons/ao/manifests/operator-subscription.yaml +28 -0
- aap_demo-2.0.0.dev0/addons/ao/manifests/postgres-cluster.yaml +62 -0
- aap_demo-2.0.0.dev0/addons/ao/playbooks/sync-ao-demos.yml +174 -0
- aap_demo-2.0.0.dev0/addons/ao/playbooks/tasks/sync_workflow.yml +188 -0
- aap_demo-2.0.0.dev0/addons/ao/scripts/generate-manifests.sh +44 -0
- aap_demo-2.0.0.dev0/addons/ao/scripts/import-demos.py +356 -0
- aap_demo-2.0.0.dev0/addons/ao/scripts/provision-aap-demos.py +282 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/.gitignore +5 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/README.md +489 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/TEST_PLAN.md +551 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/defaults.yml +46 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/deploy.sh +872 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/apme-vars.example.yml +27 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/deploy_apme_portal.yml +134 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/aap_apme_prerequisites/defaults/main.yml +12 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/aap_apme_prerequisites/meta/main.yml +12 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/aap_apme_prerequisites/tasks/create_api_token.yml +72 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/aap_apme_prerequisites/tasks/create_oauth_app.yml +205 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/aap_apme_prerequisites/tasks/main.yml +84 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_gateway_helm/defaults/main.yml +6 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_gateway_helm/files/apme-values.yaml +102 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_gateway_helm/meta/main.yml +8 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_gateway_helm/tasks/main.yml +113 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_helm_bootstrap/defaults/main.yml +10 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_helm_bootstrap/tasks/main.yml +54 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_helm_values/defaults/main.yml +4 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_helm_values/files/portal-apme-values.yaml.template +2197 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_helm_values/meta/main.yml +8 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_helm_values/tasks/aap_auth_only.yml +36 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_helm_values/tasks/main.yml +217 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_helm_values/tasks/pah_integration.yml +25 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_helm_values/tasks/portal_app_config_substitution.yml +18 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_oci_push/defaults/main.yml +10 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_oci_push/meta/main.yml +8 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_oci_push/tasks/main.yml +75 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_pah_integration/defaults/main.yml +23 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_pah_integration/meta/main.yml +9 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_pah_integration/tasks/main.yml +87 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_pah_integration/tasks/seed_apme_galaxy_servers.yml +203 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_scm_secrets/defaults/main.yml +4 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_scm_secrets/meta/main.yml +8 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/apme_scm_secrets/tasks/main.yml +80 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/openshift_apme_setup/defaults/main.yml +17 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/openshift_apme_setup/files/apme-register-git-repository/content/catalog-info.yaml +24 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/openshift_apme_setup/files/apme-register-git-repository/template.yaml +128 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/openshift_apme_setup/meta/main.yml +8 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/openshift_apme_setup/tasks/main.yml +83 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/openshift_apme_setup/templates/registries-openshift-integrated.conf.j2 +13 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/portal_helm_install/defaults/main.yml +6 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/portal_helm_install/meta/main.yml +8 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/roles/portal_helm_install/tasks/main.yml +52 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/setup.yml +51 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/tasks/resolve_plugin_pack.yml +43 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/templates/deployment-info.md.j2 +49 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/playbooks/templates/kubeconfig.j2 +21 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/plugin_packs/.gitignore +1 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/plugin_packs/README.md +6 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/plugin_packs/apme-prototype-plugins-8593383-20260718025043.oci.tar.gz +4 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/plugin_packs/plugin-pack.manifest.yml +2 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/requirements.txt +13 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/requirements.yml +13 -0
- aap_demo-2.0.0.dev0/addons/apme-eap/scripts/push_oci_archive.py +133 -0
- aap_demo-2.0.0.dev0/addons/devspaces/checluster.yaml +43 -0
- aap_demo-2.0.0.dev0/addons/devspaces/deploy.sh +138 -0
- aap_demo-2.0.0.dev0/addons/fleet/cloud-init/meta-data.template +2 -0
- aap_demo-2.0.0.dev0/addons/fleet/cloud-init/user-data.template +7 -0
- aap_demo-2.0.0.dev0/addons/fleet/deploy.sh +67 -0
- aap_demo-2.0.0.dev0/addons/fleet/fleet-aap.sh +471 -0
- aap_demo-2.0.0.dev0/addons/fleet/fleet.sh +692 -0
- aap_demo-2.0.0.dev0/addons/local-cache/README.md +81 -0
- aap_demo-2.0.0.dev0/addons/local-cache/deploy.sh +486 -0
- aap_demo-2.0.0.dev0/addons/mcp-server/README.md +89 -0
- aap_demo-2.0.0.dev0/addons/mcp-server/deploy.sh +349 -0
- aap_demo-2.0.0.dev0/addons/mcp-server/mcp-server.yaml +46 -0
- aap_demo-2.0.0.dev0/addons/ollama/README.md +102 -0
- aap_demo-2.0.0.dev0/addons/ollama/deploy.sh +179 -0
- aap_demo-2.0.0.dev0/addons/ollama/ollama.yaml +136 -0
- aap_demo-2.0.0.dev0/addons/olm/deploy.sh +178 -0
- aap_demo-2.0.0.dev0/addons/opa/README.md +385 -0
- aap_demo-2.0.0.dev0/addons/opa/deploy.sh +1050 -0
- aap_demo-2.0.0.dev0/addons/opa/playbooks/clear-policies.yml +40 -0
- aap_demo-2.0.0.dev0/addons/opa/playbooks/demo-policy.yml +229 -0
- aap_demo-2.0.0.dev0/addons/opa/playbooks/load-policies.yml +75 -0
- aap_demo-2.0.0.dev0/addons/opa/playbooks/test-policies.yml +22 -0
- aap_demo-2.0.0.dev0/addons/portal/README.md +514 -0
- aap_demo-2.0.0.dev0/addons/portal/deploy.sh +1100 -0
- aap_demo-2.0.0.dev0/addons/portal/values.yaml.template +37 -0
- aap_demo-2.0.0.dev0/addons/portal-operator/README.md +106 -0
- aap_demo-2.0.0.dev0/addons/portal-operator/deploy.sh +825 -0
- aap_demo-2.0.0.dev0/addons/product-demo-cloud/README.md +46 -0
- aap_demo-2.0.0.dev0/addons/product-demo-cloud/deploy.sh +137 -0
- aap_demo-2.0.0.dev0/addons/product-demo-linux/README.md +75 -0
- aap_demo-2.0.0.dev0/addons/product-demo-linux/deploy.sh +142 -0
- aap_demo-2.0.0.dev0/addons/product-demo-network/README.md +44 -0
- aap_demo-2.0.0.dev0/addons/product-demo-network/deploy.sh +135 -0
- aap_demo-2.0.0.dev0/addons/product-demo-openshift/README.md +55 -0
- aap_demo-2.0.0.dev0/addons/product-demo-openshift/deploy.sh +137 -0
- aap_demo-2.0.0.dev0/addons/product-demo-satellite/README.md +138 -0
- aap_demo-2.0.0.dev0/addons/product-demo-satellite/deploy.sh +131 -0
- aap_demo-2.0.0.dev0/addons/product-demo-windows/README.md +50 -0
- aap_demo-2.0.0.dev0/addons/product-demo-windows/deploy.sh +142 -0
- aap_demo-2.0.0.dev0/addons/product-demos/README.md +79 -0
- aap_demo-2.0.0.dev0/addons/product-demos/deploy.sh +108 -0
- aap_demo-2.0.0.dev0/addons/product-demos-base/README.md +285 -0
- aap_demo-2.0.0.dev0/addons/product-demos-base/deploy.sh +746 -0
- aap_demo-2.0.0.dev0/addons/product-demos-base/lib.sh +920 -0
- aap_demo-2.0.0.dev0/addons/product-demos-base/patches/README.md +20 -0
- aap_demo-2.0.0.dev0/addons/product-demos-base/patches/install-apd.yml +58 -0
- aap_demo-2.0.0.dev0/addons/product-demos-base/playbooks/install-apd-aap-demo.yml +40 -0
- aap_demo-2.0.0.dev0/addons/registry/deploy.sh +93 -0
- aap_demo-2.0.0.dev0/addons/registry/registry.yaml +136 -0
- aap_demo-2.0.0.dev0/addons/setup-pah/deploy.sh +62 -0
- aap_demo-2.0.0.dev0/config/crs/aap-controller-eda.yaml +16 -0
- aap_demo-2.0.0.dev0/config/crs/aap-controller.yaml +16 -0
- aap_demo-2.0.0.dev0/config/crs/aap-minimal-noingress.yaml +63 -0
- aap_demo-2.0.0.dev0/config/crs/aap-minimal-rwx.yaml +21 -0
- aap_demo-2.0.0.dev0/config/crs/aap-minimal.yaml +48 -0
- aap_demo-2.0.0.dev0/config/manifests/aap-ingress.yaml +51 -0
- aap_demo-2.0.0.dev0/config/manifests/aap-storage-pvcs.yaml +31 -0
- aap_demo-2.0.0.dev0/config/manifests/coredns-config.yaml +17 -0
- aap_demo-2.0.0.dev0/config/manifests/kustomization.yaml +13 -0
- aap_demo-2.0.0.dev0/config/manifests/local-path-provisioner.yaml +160 -0
- aap_demo-2.0.0.dev0/config/manifests/local-path-scc.yaml +24 -0
- aap_demo-2.0.0.dev0/config/manifests/nfs-provisioner.yaml +113 -0
- aap_demo-2.0.0.dev0/config/manifests/nfs-server.yaml +76 -0
- aap_demo-2.0.0.dev0/config/olm/catalogsource.yaml +27 -0
- aap_demo-2.0.0.dev0/config/olm/operatorgroup.yaml +15 -0
- aap_demo-2.0.0.dev0/config/olm/subscription.yaml +18 -0
- aap_demo-2.0.0.dev0/config/patches/controller-git-safe-directory.yaml +34 -0
- aap_demo-2.0.0.dev0/docs/CONTRIBUTING.md +302 -0
- aap_demo-2.0.0.dev0/docs/FULL-README.md +343 -0
- aap_demo-2.0.0.dev0/docs/LINTING-QUICK-REF.md +130 -0
- aap_demo-2.0.0.dev0/docs/LINTING-SETUP.md +319 -0
- aap_demo-2.0.0.dev0/docs/LINTING.md +503 -0
- aap_demo-2.0.0.dev0/docs/aap-mcp-server.md +76 -0
- aap_demo-2.0.0.dev0/docs/adr/000-template.md +65 -0
- aap_demo-2.0.0.dev0/docs/adr/001-project-cli-architecture.md +103 -0
- aap_demo-2.0.0.dev0/docs/adr/002-portal-helm-deployment.md +173 -0
- aap_demo-2.0.0.dev0/docs/adr/003-infrastructure-backend-selection.md +119 -0
- aap_demo-2.0.0.dev0/docs/adr/004-portal-helm-addon.md +402 -0
- aap_demo-2.0.0.dev0/docs/adr/005-olm-on-microshift.md +121 -0
- aap_demo-2.0.0.dev0/docs/adr/006-storage-architecture.md +108 -0
- aap_demo-2.0.0.dev0/docs/adr/007-coredns-route-resolution.md +106 -0
- aap_demo-2.0.0.dev0/docs/adr/008-addon-system.md +124 -0
- aap_demo-2.0.0.dev0/docs/adr/009-aap-operator-olm-deployment.md +149 -0
- aap_demo-2.0.0.dev0/docs/adr/010-cross-platform-cli.md +119 -0
- aap_demo-2.0.0.dev0/docs/adr/011-mcp-server-addon.md +104 -0
- aap_demo-2.0.0.dev0/docs/adr/012-scc-and-pod-security.md +112 -0
- aap_demo-2.0.0.dev0/docs/adr/013-in-cluster-registry.md +115 -0
- aap_demo-2.0.0.dev0/docs/adr/014-testing-strategy.md +103 -0
- aap_demo-2.0.0.dev0/docs/adr/015-ingress-ca-user-store-trust.md +199 -0
- aap_demo-2.0.0.dev0/docs/adr/016-console-pah-authentication.md +379 -0
- aap_demo-2.0.0.dev0/docs/adr/017-ao-addon.md +184 -0
- aap_demo-2.0.0.dev0/docs/adr/018-product-demos-addon.md +460 -0
- aap_demo-2.0.0.dev0/docs/adr/019-apme-playbook-addon.md +425 -0
- aap_demo-2.0.0.dev0/docs/adr/019b-apme-aap-native-execution.md +479 -0
- aap_demo-2.0.0.dev0/docs/adr/020-full-openshift-support.md +400 -0
- aap_demo-2.0.0.dev0/docs/adr/021-local-cache-addon.md +285 -0
- aap_demo-2.0.0.dev0/docs/adr/022-apme-prebuilt-portal-hub.md +293 -0
- aap_demo-2.0.0.dev0/docs/adr/023-addon-auto-wiring.md +152 -0
- aap_demo-2.0.0.dev0/docs/adr/024-ollama-addon.md +161 -0
- aap_demo-2.0.0.dev0/docs/adr/025-portal-operator-cpu-preflight.md +165 -0
- aap_demo-2.0.0.dev0/docs/adr/026-fleet-addon.md +157 -0
- aap_demo-2.0.0.dev0/docs/adr/027-low-resource-ao-replicas.md +102 -0
- aap_demo-2.0.0.dev0/docs/adr/028-ao-agentic-model-binding.md +79 -0
- aap_demo-2.0.0.dev0/docs/adr/029-windows-feature-parity.md +123 -0
- aap_demo-2.0.0.dev0/docs/adr/030-windows-native-addon-execution.md +60 -0
- aap_demo-2.0.0.dev0/docs/adr/031-windows-git-bash-wrapper.md +62 -0
- aap_demo-2.0.0.dev0/docs/adr/README.md +98 -0
- aap_demo-2.0.0.dev0/docs/collection-authentication.md +299 -0
- aap_demo-2.0.0.dev0/docs/environment-comparison.md +144 -0
- aap_demo-2.0.0.dev0/docs/plans/windows-feature-parity.md +103 -0
- aap_demo-2.0.0.dev0/docs/plans/windows-git-bash-wrapper.md +34 -0
- aap_demo-2.0.0.dev0/docs/plans/windows-native-addon-port.md +33 -0
- aap_demo-2.0.0.dev0/images/Containerfile.vm +123 -0
- aap_demo-2.0.0.dev0/images/config/microshift-config.yaml +5 -0
- aap_demo-2.0.0.dev0/images/config/policy.json +16 -0
- aap_demo-2.0.0.dev0/includes/aap-demo-notice.sh +43 -0
- aap_demo-2.0.0.dev0/includes/aap-demo-paths.sh +29 -0
- aap_demo-2.0.0.dev0/includes/aap-demo-version.sh +54 -0
- aap_demo-2.0.0.dev0/includes/aap-readiness.sh +20 -0
- aap_demo-2.0.0.dev0/includes/addon-wire.sh +1273 -0
- aap_demo-2.0.0.dev0/includes/ao-llm.sh +247 -0
- aap_demo-2.0.0.dev0/includes/crc-create.sh +810 -0
- aap_demo-2.0.0.dev0/includes/galaxy-auth.sh +231 -0
- aap_demo-2.0.0.dev0/includes/infra-api.sh +95 -0
- aap_demo-2.0.0.dev0/includes/infra-crc.sh +211 -0
- aap_demo-2.0.0.dev0/includes/ingress-ca-trust.sh +533 -0
- aap_demo-2.0.0.dev0/includes/json-utils.sh +62 -0
- aap_demo-2.0.0.dev0/includes/olm-catalog-signature.sh +367 -0
- aap_demo-2.0.0.dev0/includes/persistent-crio-store.sh +351 -0
- aap_demo-2.0.0.dev0/includes/temp-swap.sh +231 -0
- aap_demo-2.0.0.dev0/install.sh +279 -0
- aap_demo-2.0.0.dev0/lint.mk +90 -0
- aap_demo-2.0.0.dev0/powershell/README.md +330 -0
- aap_demo-2.0.0.dev0/powershell/aap-demo.ps1 +430 -0
- aap_demo-2.0.0.dev0/powershell/install.ps1 +260 -0
- aap_demo-2.0.0.dev0/powershell/native/AapDemo.psm1 +105 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/Addons.ps1 +199 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/Collections.ps1 +838 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/Commands.ps1 +581 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/Create.ps1 +215 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/Deploy.ps1 +165 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/Diagnose.ps1 +323 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/Helpers.ps1 +1623 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/NativeAddons.ps1 +245 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/NativeAo.ps1 +360 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/NativeAoWire.ps1 +298 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/NativeProcess.ps1 +77 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/Portal.ps1 +1545 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/Prerequisites.ps1 +68 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/Status.ps1 +191 -0
- aap_demo-2.0.0.dev0/powershell/native/Private/Watch.ps1 +143 -0
- aap_demo-2.0.0.dev0/pyproject.toml +99 -0
- aap_demo-2.0.0.dev0/requirements.yml +8 -0
- aap_demo-2.0.0.dev0/scripts/README.md +104 -0
- aap_demo-2.0.0.dev0/scripts/aap-demo-completion.bash +60 -0
- aap_demo-2.0.0.dev0/scripts/aap-demo-completion.zsh +57 -0
- aap_demo-2.0.0.dev0/scripts/check-version-bump.sh +152 -0
- aap_demo-2.0.0.dev0/scripts/enable-temp-swap.sh +54 -0
- aap_demo-2.0.0.dev0/scripts/local-prereq.sh +62 -0
- aap_demo-2.0.0.dev0/scripts/multi-host-test.ps1 +1118 -0
- aap_demo-2.0.0.dev0/scripts/preflight-checks.sh +120 -0
- aap_demo-2.0.0.dev0/scripts/require-tool.sh +17 -0
- aap_demo-2.0.0.dev0/scripts/setup-linting.sh +324 -0
- aap_demo-2.0.0.dev0/scripts/test-temp-swap-flow.sh +42 -0
- aap_demo-2.0.0.dev0/scripts/watch-aap.sh +225 -0
- aap_demo-2.0.0.dev0/src/aap_demo/__init__.py +6 -0
- aap_demo-2.0.0.dev0/src/aap_demo/__main__.py +10 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cli/__init__.py +0 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cli/_schema_args.py +137 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cli/addons.py +21 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cli/completion.py +16 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cli/day2.py +17 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cli/gui.py +12 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cli/lifecycle.py +156 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cli/main.py +565 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cli/observe.py +68 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cli/ops.py +378 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/__init__.py +3 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/aap.py +907 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/bootstrap.py +662 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/catalog_signature.py +575 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/coredns.py +337 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/deploy.py +369 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/ingress_ca.py +316 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/kubeconfig.py +190 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/namespace.py +136 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/olm.py +276 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/preflight.py +134 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/pull_secret.py +380 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/runtime.py +324 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/scc.py +174 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/status.py +582 -0
- aap_demo-2.0.0.dev0/src/aap_demo/cluster/storage.py +73 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/__init__.py +0 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/bash_v1.py +171 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/config.py +219 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/console.py +907 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/context.py +65 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/errors.py +84 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/events.py +135 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/migration.py +369 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/output.py +43 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/paths.py +173 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/prompts.py +51 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/schema.py +164 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/secrets.py +221 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/version.py +101 -0
- aap_demo-2.0.0.dev0/src/aap_demo/core/waiting.py +89 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/__init__.py +27 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/crc-release +1 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/crs/__init__.py +1 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/crs/aap-controller-eda.yaml +16 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/crs/aap-controller.yaml +16 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/crs/aap-minimal-noingress.yaml +63 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/crs/aap-minimal-rwx.yaml +21 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/crs/aap-minimal.yaml +48 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/manifests/__init__.py +1 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/manifests/aap-storage-pvcs.yaml +31 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/manifests/nfs-provisioner.yaml +113 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/manifests/nfs-server.yaml +76 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/olm/__init__.py +1 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/olm/catalogsource.yaml +27 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/olm/operatorgroup.yaml +15 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/olm/subscription.yaml +18 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/schema/__init__.py +0 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/schema/addons.yaml +30 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/schema/core.yaml +59 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/schema/crc.yaml +78 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/schema/deploy.yaml +74 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/schema/gui.yaml +52 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/schema/playbooks.yaml +88 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/schema/secrets.yaml +19 -0
- aap_demo-2.0.0.dev0/src/aap_demo/data/schema/trust.yaml +28 -0
- aap_demo-2.0.0.dev0/src/aap_demo/diagnostics/__init__.py +3 -0
- aap_demo-2.0.0.dev0/src/aap_demo/diagnostics/checks.py +388 -0
- aap_demo-2.0.0.dev0/src/aap_demo/diagnostics/report.py +55 -0
- aap_demo-2.0.0.dev0/src/aap_demo/exec/__init__.py +0 -0
- aap_demo-2.0.0.dev0/src/aap_demo/exec/kubectl.py +65 -0
- aap_demo-2.0.0.dev0/src/aap_demo/exec/oc.py +58 -0
- aap_demo-2.0.0.dev0/src/aap_demo/exec/operator_sdk.py +140 -0
- aap_demo-2.0.0.dev0/src/aap_demo/exec/runner.py +366 -0
- aap_demo-2.0.0.dev0/src/aap_demo/exec/ssh.py +152 -0
- aap_demo-2.0.0.dev0/src/aap_demo/infra/__init__.py +9 -0
- aap_demo-2.0.0.dev0/src/aap_demo/infra/crc.py +445 -0
- aap_demo-2.0.0.dev0/src/aap_demo/infra/crc_install.py +280 -0
- aap_demo-2.0.0.dev0/test/README.md +175 -0
- aap_demo-2.0.0.dev0/test/test-aap-readiness.sh +78 -0
- aap_demo-2.0.0.dev0/test/test-ao-admin-password.sh +117 -0
- aap_demo-2.0.0.dev0/test/test-ao-catalog-source.sh +115 -0
- aap_demo-2.0.0.dev0/test/test-ao-enable-provider.sh +129 -0
- aap_demo-2.0.0.dev0/test/test-ao-import-demos.py +169 -0
- aap_demo-2.0.0.dev0/test/test-ao-install-plan-approval.sh +84 -0
- aap_demo-2.0.0.dev0/test/test-ao-llm-provider.sh +97 -0
- aap_demo-2.0.0.dev0/test/test-ao-llm-wiring.sh +216 -0
- aap_demo-2.0.0.dev0/test/test-ao-llm-workflow-binding.sh +86 -0
- aap_demo-2.0.0.dev0/test/test-ao-mcp-integration.sh +20 -0
- aap_demo-2.0.0.dev0/test/test-ao-olm-approval.sh +20 -0
- aap_demo-2.0.0.dev0/test/test-ao-operator-subscription.sh +23 -0
- aap_demo-2.0.0.dev0/test/test-ao-replica-profile.sh +90 -0
- aap_demo-2.0.0.dev0/test/test-ao-scc.sh +64 -0
- aap_demo-2.0.0.dev0/test/test-cli-parsing.sh +21 -0
- aap_demo-2.0.0.dev0/test/test-core-commands.sh +252 -0
- aap_demo-2.0.0.dev0/test/test-crc-create-linux-does-not-require-windows-daemon.sh +77 -0
- aap_demo-2.0.0.dev0/test/test-crc-create-stability.sh +74 -0
- aap_demo-2.0.0.dev0/test/test-crc-create-windows-daemon-setup.sh +68 -0
- aap_demo-2.0.0.dev0/test/test-crc-kubectl-fallback.sh +12 -0
- aap_demo-2.0.0.dev0/test/test-crc-resource-prompt-condition.sh +64 -0
- aap_demo-2.0.0.dev0/test/test-crc-resource-prompt.sh +22 -0
- aap_demo-2.0.0.dev0/test/test-crc-version-check.sh +227 -0
- aap_demo-2.0.0.dev0/test/test-deploy-cache-order.sh +44 -0
- aap_demo-2.0.0.dev0/test/test-deploy-cache-skip.sh +16 -0
- aap_demo-2.0.0.dev0/test/test-destroy-invalid-state.sh +100 -0
- aap_demo-2.0.0.dev0/test/test-infra-crc-status.sh +44 -0
- aap_demo-2.0.0.dev0/test/test-ingress-ca-export.sh +121 -0
- aap_demo-2.0.0.dev0/test/test-install.sh +22 -0
- aap_demo-2.0.0.dev0/test/test-json-utils.sh +23 -0
- aap_demo-2.0.0.dev0/test/test-kubectl-child-fallback.sh +12 -0
- aap_demo-2.0.0.dev0/test/test-local-cache.sh +231 -0
- aap_demo-2.0.0.dev0/test/test-mcp-rollout-timeout.sh +20 -0
- aap_demo-2.0.0.dev0/test/test-nfs-capacity-diagnostics.sh +18 -0
- aap_demo-2.0.0.dev0/test/test-nfs-storage-size.sh +21 -0
- aap_demo-2.0.0.dev0/test/test-ollama.sh +260 -0
- aap_demo-2.0.0.dev0/test/test-olm-windows-gitbash.sh +14 -0
- aap_demo-2.0.0.dev0/test/test-persistent-crio-store.sh +53 -0
- aap_demo-2.0.0.dev0/test/test-portal-helm.sh +112 -0
- aap_demo-2.0.0.dev0/test/test-portal-operator.sh +112 -0
- aap_demo-2.0.0.dev0/test/test-powershell-crc-status.ps1 +44 -0
- aap_demo-2.0.0.dev0/test/test-powershell-deploy-prerequisites.ps1 +55 -0
- aap_demo-2.0.0.dev0/test/test-powershell-git-bash-addon.ps1 +84 -0
- aap_demo-2.0.0.dev0/test/test-powershell-git-bash-interactive.ps1 +72 -0
- aap_demo-2.0.0.dev0/test/test-powershell-installer-launcher.ps1 +18 -0
- aap_demo-2.0.0.dev0/test/test-powershell-native-addons.ps1 +55 -0
- aap_demo-2.0.0.dev0/test/test-powershell-parity.ps1 +60 -0
- aap_demo-2.0.0.dev0/test/test-powershell-portal-host-alias.ps1 +29 -0
- aap_demo-2.0.0.dev0/test/test-product-demos-api.sh +162 -0
- aap_demo-2.0.0.dev0/test/test-product-demos-overlay.sh +35 -0
- aap_demo-2.0.0.dev0/test/test-product-demos-project-sync.sh +29 -0
- aap_demo-2.0.0.dev0/test/test-provision-aap-demos.py +74 -0
- aap_demo-2.0.0.dev0/test/test-windows-deferred-addons.sh +14 -0
- aap_demo-2.0.0.dev0/test/test-windows-ingress-ca.sh +22 -0
- aap_demo-2.0.0.dev0/test/test-windows-jq-prerequisite.sh +24 -0
- aap_demo-2.0.0.dev0/test/test-windows-python-prerequisite.sh +28 -0
- aap_demo-2.0.0.dev0/tests/conftest.py +70 -0
- aap_demo-2.0.0.dev0/tests/fixtures/crc/status_running.json +11 -0
- aap_demo-2.0.0.dev0/tests/fixtures/crc/status_stopped.json +11 -0
- aap_demo-2.0.0.dev0/tests/fixtures/golden/aap-storage-pvcs.aap-operator.aap.yaml +31 -0
- aap_demo-2.0.0.dev0/tests/fixtures/golden/catalogsource.aap-operator.4.22.yaml +27 -0
- aap_demo-2.0.0.dev0/tests/fixtures/golden/cr.controller-eda.aap-operator.yaml +16 -0
- aap_demo-2.0.0.dev0/tests/fixtures/golden/cr.controller.aap-operator.yaml +16 -0
- aap_demo-2.0.0.dev0/tests/fixtures/golden/cr.minimal-noingress.public.yaml +63 -0
- aap_demo-2.0.0.dev0/tests/fixtures/golden/cr.minimal-rwx.aap-operator.yaml +22 -0
- aap_demo-2.0.0.dev0/tests/fixtures/golden/cr.minimal.aap-operator.yaml +49 -0
- aap_demo-2.0.0.dev0/tests/fixtures/golden/operatorgroup.aap-operator.yaml +15 -0
- aap_demo-2.0.0.dev0/tests/fixtures/golden/subscription.aap-operator.stable-2.6.BUGGY.yaml +18 -0
- aap_demo-2.0.0.dev0/tests/fixtures/golden/subscription.aap-operator.stable-2.7.yaml +18 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/addons_only/.aap-demo/config +1 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/empty_config/.aap-demo/config +0 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/full/.aap-demo/atf-vault-password +1 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/full/.aap-demo/config +10 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/full/.aap-demo/crc-ingress-ca.crt +4 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/full/.aap-demo/galaxy-token +1 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/full/.aap-demo/kubeconfig.microshift +1 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/full/.aap-demo/local-cache/microshift/image.tar +1 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/full/.aap-demo/pah-token +1 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/full/.aap-demo/pull-secret.txt +1 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/no_config/.aap-demo/pull-secret.txt +1 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/partial/.aap-demo/config +2 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/partial/.aap-demo/galaxy-token +1 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/partial/.aap-demo/kubeconfig.microshift +1 -0
- aap_demo-2.0.0.dev0/tests/fixtures/legacy_home/retired_addons/.aap-demo/config +2 -0
- aap_demo-2.0.0.dev0/tests/integration/__init__.py +0 -0
- aap_demo-2.0.0.dev0/tests/integration/conftest.py +84 -0
- aap_demo-2.0.0.dev0/tests/integration/test_deploy_live.py +255 -0
- aap_demo-2.0.0.dev0/tests/unit/test_bash_v1.py +153 -0
- aap_demo-2.0.0.dev0/tests/unit/test_bootstrap.py +387 -0
- aap_demo-2.0.0.dev0/tests/unit/test_catalog_signature.py +377 -0
- aap_demo-2.0.0.dev0/tests/unit/test_cli_observe.py +165 -0
- aap_demo-2.0.0.dev0/tests/unit/test_cli_surface.py +260 -0
- aap_demo-2.0.0.dev0/tests/unit/test_cluster_aap.py +678 -0
- aap_demo-2.0.0.dev0/tests/unit/test_cluster_deploy.py +610 -0
- aap_demo-2.0.0.dev0/tests/unit/test_cluster_kubeconfig.py +227 -0
- aap_demo-2.0.0.dev0/tests/unit/test_cluster_namespace_scc.py +411 -0
- aap_demo-2.0.0.dev0/tests/unit/test_cluster_olm.py +230 -0
- aap_demo-2.0.0.dev0/tests/unit/test_cluster_preflight.py +263 -0
- aap_demo-2.0.0.dev0/tests/unit/test_cluster_status.py +407 -0
- aap_demo-2.0.0.dev0/tests/unit/test_config_store.py +127 -0
- aap_demo-2.0.0.dev0/tests/unit/test_console_report.py +99 -0
- aap_demo-2.0.0.dev0/tests/unit/test_console_tasks.py +353 -0
- aap_demo-2.0.0.dev0/tests/unit/test_crc_install.py +98 -0
- aap_demo-2.0.0.dev0/tests/unit/test_diagnostics_checks.py +321 -0
- aap_demo-2.0.0.dev0/tests/unit/test_events.py +103 -0
- aap_demo-2.0.0.dev0/tests/unit/test_exec_ssh.py +183 -0
- aap_demo-2.0.0.dev0/tests/unit/test_infra_crc.py +164 -0
- aap_demo-2.0.0.dev0/tests/unit/test_ingress_ca.py +212 -0
- aap_demo-2.0.0.dev0/tests/unit/test_migration.py +308 -0
- aap_demo-2.0.0.dev0/tests/unit/test_ops_redhat_status.py +120 -0
- aap_demo-2.0.0.dev0/tests/unit/test_ops_ssh_kubeconfig.py +208 -0
- aap_demo-2.0.0.dev0/tests/unit/test_paths.py +134 -0
- aap_demo-2.0.0.dev0/tests/unit/test_pull_secret.py +62 -0
- aap_demo-2.0.0.dev0/tests/unit/test_render_golden.py +184 -0
- aap_demo-2.0.0.dev0/tests/unit/test_runner.py +140 -0
- aap_demo-2.0.0.dev0/tests/unit/test_runtime.py +120 -0
- aap_demo-2.0.0.dev0/tests/unit/test_schema_parity.py +180 -0
- aap_demo-2.0.0.dev0/tests/unit/test_secrets.py +242 -0
- aap_demo-2.0.0.dev0/tests/unit/test_waiting.py +110 -0
- aap_demo-2.0.0.dev0/tests/unit/test_yaml_loader.py +69 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Ansible-lint configuration for aap-demo
|
|
3
|
+
# https://ansible.readthedocs.io/projects/lint/
|
|
4
|
+
|
|
5
|
+
profile: production
|
|
6
|
+
|
|
7
|
+
exclude_paths:
|
|
8
|
+
- .git/
|
|
9
|
+
- .github/
|
|
10
|
+
- .serena/
|
|
11
|
+
- test/
|
|
12
|
+
- config/
|
|
13
|
+
- includes/
|
|
14
|
+
|
|
15
|
+
# Skip specific rules
|
|
16
|
+
skip_list:
|
|
17
|
+
- yaml[line-length] # Line too long (handled by yamllint)
|
|
18
|
+
- name[casing] # Task names don't follow capitalization
|
|
19
|
+
- role-name # Role name doesn't match requirements
|
|
20
|
+
- yaml[document-start] # Allow '---' at the start of YAML files
|
|
21
|
+
|
|
22
|
+
# Warn only
|
|
23
|
+
warn_list:
|
|
24
|
+
- experimental
|
|
25
|
+
- no-changed-when
|
|
26
|
+
- command-instead-of-module
|
|
27
|
+
|
|
28
|
+
# Enable offline mode (no external requirements)
|
|
29
|
+
offline: true
|
|
30
|
+
|
|
31
|
+
# Use default rules with modifications
|
|
32
|
+
use_default_rules: true
|
|
33
|
+
|
|
34
|
+
# Mock modules and roles (if needed)
|
|
35
|
+
mock_modules: []
|
|
36
|
+
mock_roles: []
|
|
37
|
+
|
|
38
|
+
# Verbosity
|
|
39
|
+
verbosity: 1
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# AAP Demo — AI Assistant Context
|
|
2
|
+
|
|
3
|
+
## What is aap-demo?
|
|
4
|
+
|
|
5
|
+
aap-demo is a tool for deploying Ansible Automation Platform (AAP) 2.7 to OpenShift Local (MicroShift) for development and testing.
|
|
6
|
+
|
|
7
|
+
## Key Commands
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
aap-demo create # Create local MicroShift cluster
|
|
11
|
+
aap-demo deploy # Deploy AAP 2.7
|
|
12
|
+
aap-demo status # Show cluster status, routes, credentials
|
|
13
|
+
aap-demo diagnose # Quick health check (cluster, storage, SCCs, pods)
|
|
14
|
+
aap-demo diagnose --ai # Health check + AI-powered root cause analysis (requires claude CLI)
|
|
15
|
+
aap-demo must-gather # Collect full diagnostics for troubleshooting
|
|
16
|
+
aap-demo idle true # Scale down AAP to save resources (operator deploys only)
|
|
17
|
+
aap-demo idle false # Scale back up
|
|
18
|
+
aap-demo ssh # SSH into cluster node
|
|
19
|
+
aap-demo stop / start # Stop/start cluster
|
|
20
|
+
aap-demo destroy # Delete cluster
|
|
21
|
+
aap-demo help # Full command reference
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Architecture
|
|
25
|
+
|
|
26
|
+
- **OpenShift Local**: OpenShift Local VM running MicroShift, managed by `crc` CLI
|
|
27
|
+
- **Storage**: LVMS (topolvm-provisioner) for RWO, in-cluster NFS server for RWX (nfs-local-rwx)
|
|
28
|
+
- **OLM**: Installed via operator-sdk for operator lifecycle management
|
|
29
|
+
- **Namespace**: `aap-operator` (default), configurable via `NAMESPACE=`
|
|
30
|
+
|
|
31
|
+
## Common Issues and Fixes
|
|
32
|
+
|
|
33
|
+
### Pod creation failures (SCC)
|
|
34
|
+
**Symptom**: Pods fail with "unable to validate against any security context constraint"
|
|
35
|
+
**Cause**: Service accounts missing anyuid/privileged SCCs
|
|
36
|
+
**Fix**:
|
|
37
|
+
```bash
|
|
38
|
+
oc adm policy add-scc-to-group anyuid system:serviceaccounts:aap-operator
|
|
39
|
+
oc adm policy add-scc-to-group privileged system:serviceaccounts:aap-operator
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### PVC pending (hub file storage)
|
|
43
|
+
**Symptom**: `aap-hub-file-storage` PVC stuck in Pending
|
|
44
|
+
**Cause**: Missing nfs-local-rwx StorageClass or NFS server not running
|
|
45
|
+
**Fix**: Check `kubectl get sc` for nfs-local-rwx. If missing, re-run `aap-demo create`. If present, check NFS server: `kubectl get pods -n nfs-storage`
|
|
46
|
+
|
|
47
|
+
### CatalogSource not ready (latest deploys)
|
|
48
|
+
**Symptom**: CatalogSource stuck in TRANSIENT_FAILURE
|
|
49
|
+
**Cause**: Catalog pod can't start due to SCC or pull secret issues
|
|
50
|
+
**Fix**: Check `kubectl get pods -n aap-operator` for catalog pod. Verify pull secret exists: `kubectl get secret redhat-operators-pull-secret -n aap-operator`
|
|
51
|
+
|
|
52
|
+
### Gateway CrashLoopBackOff
|
|
53
|
+
**Symptom**: Gateway pod crashes with EACCES on socket
|
|
54
|
+
**Cause**: Startup ordering — gateway starts before dependencies are ready
|
|
55
|
+
**Fix**: Usually resolves after operator reconciliation. If persistent, delete the pod: `kubectl delete pod -l app.kubernetes.io/name=gateway -n aap-operator`
|
|
56
|
+
|
|
57
|
+
### DNS resolution failures
|
|
58
|
+
**Symptom**: Pods can't resolve nip.io routes or cluster services
|
|
59
|
+
**Cause**: CoreDNS config not persisted after CRC restart
|
|
60
|
+
**Fix**: `aap-demo start` (re-applies CoreDNS config) or `kubectl rollout restart daemonset/dns-default -n openshift-dns`
|
|
61
|
+
|
|
62
|
+
### Disk space
|
|
63
|
+
**Symptom**: Pods evicted or images fail to pull
|
|
64
|
+
**Fix**: `aap-demo ssh` then `sudo crictl rmi --prune` to clean unused images
|
|
65
|
+
|
|
66
|
+
## File Structure
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
aap-demo.sh # Main CLI script
|
|
70
|
+
includes/
|
|
71
|
+
crc-create.sh # OpenShift Local cluster creation (nip.io, NFS, metrics-server)
|
|
72
|
+
config/
|
|
73
|
+
crs/ # AAP Custom Resource templates
|
|
74
|
+
aap-minimal.yaml # Default CR (RWX via nfs-local-rwx)
|
|
75
|
+
manifests/
|
|
76
|
+
nfs-server.yaml # In-cluster NFS server
|
|
77
|
+
nfs-provisioner.yaml # NFS subdir provisioner (__NFS_SERVER_IP__ template)
|
|
78
|
+
olm/ # OLM subscription and catalog
|
|
79
|
+
addons/ # Optional addons (console, registry, mcp-server, etc.)
|
|
80
|
+
ansible/ # Ansible playbook alternative
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Key Technical Details
|
|
84
|
+
|
|
85
|
+
- **SCCs**: Granted at namespace group level (`system:serviceaccounts:$NAMESPACE`) not per-SA
|
|
86
|
+
- **nfs-local-rwx**: In-cluster NFS server backed by topolvm PVC. Provisioner manifest uses `__NFS_SERVER_IP__` placeholder resolved at deploy time because kubelet can't resolve cluster DNS for NFS mounts on MicroShift
|
|
87
|
+
- **idle_aap**: Standard AAP CR field — patches `spec.idle_aap: true/false` to scale all components via the gateway operator
|
|
88
|
+
- **KUBECONFIG**: CRC uses `~/.crc/machines/crc/kubeconfig`
|
|
89
|
+
- **Config file**: `~/.aap-demo/config` stores INFRA type, CRC preset, addons
|
|
90
|
+
|
|
91
|
+
## When Helping Users
|
|
92
|
+
|
|
93
|
+
1. Run `aap-demo diagnose` first to identify obvious issues
|
|
94
|
+
2. If diagnose shows failures, suggest the specific fix listed
|
|
95
|
+
3. For complex issues, suggest `aap-demo diagnose --ai` for AI-powered root cause analysis
|
|
96
|
+
4. If still unclear, run `aap-demo must-gather` to collect full diagnostics
|
|
97
|
+
5. Check `aap-demo status` for routes and credentials
|
|
98
|
+
6. For deployment issues, check operator logs: `kubectl logs -l app.kubernetes.io/managed-by=aap-gateway-operator -n aap-operator --tail=50`
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aap-demo
|
|
3
|
+
description: >
|
|
4
|
+
Manages AAP (Ansible Automation Platform) development environments on local
|
|
5
|
+
MicroShift clusters. Handles cluster lifecycle (create, deploy, destroy),
|
|
6
|
+
diagnostics, troubleshooting, and local validation. Activate when users want
|
|
7
|
+
to deploy AAP, check cluster health, fix deployment issues, run local tests,
|
|
8
|
+
or manage their aap-demo environment.
|
|
9
|
+
allowed-tools:
|
|
10
|
+
- Bash(aap-demo *)
|
|
11
|
+
- Bash(kubectl *)
|
|
12
|
+
- Bash(oc *)
|
|
13
|
+
argument-hint: "[command, question, or intent]"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# aap-demo Skill
|
|
17
|
+
|
|
18
|
+
You manage AAP development environments using the `aap-demo` CLI. Delegate to
|
|
19
|
+
CLI commands — do not reimplement their logic.
|
|
20
|
+
|
|
21
|
+
## SECURITY NOTICE — DEVELOPMENT ENVIRONMENT ONLY
|
|
22
|
+
|
|
23
|
+
**aap-demo is a LOCAL DEVELOPMENT tool and must NEVER be used in production.**
|
|
24
|
+
|
|
25
|
+
This environment includes characteristics specific to local development:
|
|
26
|
+
|
|
27
|
+
- **Self-signed certificates are trusted** in the MCP server addon using `NODE_EXTRA_CA_CERTS`
|
|
28
|
+
- **Router ClusterIP addresses** may become stale after cluster rebuild
|
|
29
|
+
- **All routes use localhost** (`127.0.0.1.nip.io`)
|
|
30
|
+
|
|
31
|
+
**DO NOT use aap-demo configurations or patterns in production environments.**
|
|
32
|
+
|
|
33
|
+
## Commands Reference
|
|
34
|
+
|
|
35
|
+
| Intent | Command |
|
|
36
|
+
|--------|---------|
|
|
37
|
+
| Create cluster | `aap-demo create` |
|
|
38
|
+
| Deploy AAP 2.7 | `aap-demo deploy` |
|
|
39
|
+
| Check status & creds | `aap-demo status` |
|
|
40
|
+
| Health check | `aap-demo diagnose` |
|
|
41
|
+
| AI-powered diagnostics | `aap-demo diagnose --ai` |
|
|
42
|
+
| Collect full diagnostics | `aap-demo must-gather` |
|
|
43
|
+
| Scale down (save resources) | `aap-demo idle true` |
|
|
44
|
+
| Scale back up | `aap-demo idle false` |
|
|
45
|
+
| Remove AAP (keep cluster) | `aap-demo clean` |
|
|
46
|
+
| Destroy entire cluster | `aap-demo destroy` |
|
|
47
|
+
| Stop/start cluster | `aap-demo stop` / `aap-demo start` |
|
|
48
|
+
| SSH into cluster node | `aap-demo ssh` |
|
|
49
|
+
| Run local tests | `./test/test-core-commands.sh` and the focused scripts under `test/` |
|
|
50
|
+
| Enable addon | `aap-demo enable <name>` |
|
|
51
|
+
| Disable addon | `aap-demo disable <name>` |
|
|
52
|
+
| Destroy and rebuild from scratch | `aap-demo redeploy-all` |
|
|
53
|
+
| Show help | `aap-demo help` |
|
|
54
|
+
|
|
55
|
+
Available addons: olm, console, registry, mcp-server, devspaces, prometheus, portal, **ao** (Automation Orchestrator)
|
|
56
|
+
|
|
57
|
+
## Portal Addon
|
|
58
|
+
|
|
59
|
+
Helm-based Self-Service Portal on OpenShift (`aap-demo enable portal`):
|
|
60
|
+
|
|
61
|
+
- Auto-detects cluster CPU (`amd64` vs `arm64`) and selects x86 or ARM image profile
|
|
62
|
+
- Namespace: `redhat-rhaap-portal`
|
|
63
|
+
- Architecture: see `docs/adr/002-portal-helm-deployment.md`
|
|
64
|
+
|
|
65
|
+
**Access**: `aap-demo status portal` for route URL. Sign in with AAP OAuth (admin credentials).
|
|
66
|
+
|
|
67
|
+
**Prerequisites**: AAP deployed, `registry.redhat.io` pull secret for OCI plugins.
|
|
68
|
+
Helm 3.10+ is installed automatically if missing.
|
|
69
|
+
|
|
70
|
+
## Automation Orchestrator (`ao`) Addon
|
|
71
|
+
|
|
72
|
+
GA install via checked-in GitOps manifests (`aap-demo enable ao`):
|
|
73
|
+
|
|
74
|
+
- **Requires `mcp-server`** — enabled automatically; AO wiring registers both AAP and MCP integrations
|
|
75
|
+
- **No `aapctl` required** at install time — see [`addons/ao/README.md`](addons/ao/README.md)
|
|
76
|
+
- Namespace: `automation-orchestrator`
|
|
77
|
+
- AO operator OLM + catalog live in **app namespace** (not `aap-operator` — avoids MultipleOperatorGroupsFound)
|
|
78
|
+
- Default channel: `stable` (`AO_OPERATOR_CHANNEL=early-access` to override)
|
|
79
|
+
- Dev Postgres: CloudNativePG upstream manifest (not Red Hat supported)
|
|
80
|
+
- Force reinstall after password drift: `FORCE=1 aap-demo enable ao`
|
|
81
|
+
|
|
82
|
+
**Access**: `aap-demo status` or `kubectl get routes -n automation-orchestrator`. Admin password in `automation-orchestrator-initial-admin-password`.
|
|
83
|
+
|
|
84
|
+
## Workflow
|
|
85
|
+
|
|
86
|
+
Before any command, run `aap-demo status` to understand current state. The standard
|
|
87
|
+
lifecycle is: `create` -> `deploy` -> use -> `idle`/`clean` -> `destroy`.
|
|
88
|
+
|
|
89
|
+
- Deploy auto-creates the cluster if needed — no need to run create first
|
|
90
|
+
- After deploy completes, run `aap-demo status` to show routes and credentials
|
|
91
|
+
- **Destructive operations** (clean, destroy, redeploy-all): always confirm with the user first
|
|
92
|
+
- Use `QUIET=true` prefix to skip interactive prompts when running non-interactively
|
|
93
|
+
|
|
94
|
+
## Environment Awareness
|
|
95
|
+
|
|
96
|
+
Before suggesting commands, check the user's environment:
|
|
97
|
+
|
|
98
|
+
1. Read `~/.aap-demo/config` to determine INFRA type (crc, minc, lab)
|
|
99
|
+
2. Check `KUBECONFIG`:
|
|
100
|
+
- CRC: `~/.crc/machines/crc/kubeconfig`
|
|
101
|
+
- MINC: `~/.aap-demo/kubeconfig.microshift`
|
|
102
|
+
- Lab: user's own kubeconfig
|
|
103
|
+
3. Run `aap-demo status` to see running deployments, namespaces, and pod counts
|
|
104
|
+
|
|
105
|
+
When the user has multiple AAP deployments (e.g., operator in `aap-operator` + aap-demo in
|
|
106
|
+
`aap27`), always clarify which deployment they mean before acting.
|
|
107
|
+
|
|
108
|
+
## Pull Secret Management
|
|
109
|
+
|
|
110
|
+
Pull secrets are required for image pulls and live in `~/.aap-demo/`:
|
|
111
|
+
- `pull-secret.txt` or `pull-secret.json` (from console.redhat.com)
|
|
112
|
+
|
|
113
|
+
If image pulls fail with 403/unauthorized, check: # pragma: allowlist secret
|
|
114
|
+
1. Correct pull secret exists in `~/.aap-demo/` # pragma: allowlist secret
|
|
115
|
+
2. Pull secret is injected into the namespace: `kubectl get secret -n $NAMESPACE | grep pull` # pragma: allowlist secret
|
|
116
|
+
3. ServiceAccount has imagePullSecrets: `kubectl get sa default -n $NAMESPACE -o yaml`
|
|
117
|
+
|
|
118
|
+
## Diagnostics Loop
|
|
119
|
+
|
|
120
|
+
When troubleshooting:
|
|
121
|
+
|
|
122
|
+
1. Run `aap-demo diagnose` — parse output for `✗` (fail) and `⚠` (warn) markers
|
|
123
|
+
2. Apply the matching fix from the table below
|
|
124
|
+
3. Re-run `aap-demo diagnose` to verify
|
|
125
|
+
4. If issues persist after 2 attempts, run `aap-demo must-gather` for deeper analysis
|
|
126
|
+
5. Check operator logs: `kubectl logs -l app.kubernetes.io/managed-by=aap-gateway-operator -n $NAMESPACE --tail=100`
|
|
127
|
+
|
|
128
|
+
## Known Fixes
|
|
129
|
+
|
|
130
|
+
| Diagnose Output | Fix |
|
|
131
|
+
|-----------------|-----|
|
|
132
|
+
| SCC validation failure | `oc adm policy add-scc-to-group anyuid system:serviceaccounts:$NAMESPACE && oc adm policy add-scc-to-group privileged system:serviceaccounts:$NAMESPACE` |
|
|
133
|
+
| PVC pending (hub-file-storage) | Check `kubectl get sc nfs-local-rwx`. Missing: re-run `aap-demo create`. Present but pending: check NFS server `kubectl get pods -n nfs-storage` |
|
|
134
|
+
| CatalogSource TRANSIENT_FAILURE | DNS race condition. Check catalog pod: `kubectl get pods -n $NAMESPACE -l olm.catalogSource`. If pod is running but catalog stuck, restart catalog-operator: `kubectl rollout restart deployment/catalog-operator -n openshift-operator-lifecycle-manager`. Verify pull secret exists. |
|
|
135
|
+
| Gateway CrashLoopBackOff (EACCES) | Usually self-resolves after reconciliation. If persistent: `kubectl delete pod -l app.kubernetes.io/name=gateway -n $NAMESPACE` |
|
|
136
|
+
| DNS resolution failures | `aap-demo start` (re-applies CoreDNS config) or `kubectl rollout restart daemonset/dns-default -n openshift-dns`. Root cause: CoreDNS template plugin returns router ClusterIP directly for *.nip.io — if router IP changes after restart, CoreDNS config is stale. |
|
|
137
|
+
| AO: `base_url must not resolve to a private...` / `AAP_NOT_CONFIGURED` | CoreDNS rewrite missing so AO cannot resolve the AAP route. `aap-demo wire` (or `aap-demo enable ao` / `aap-demo start`) restores the rewrite and re-wires integrations. |
|
|
138
|
+
| Disk space / pod eviction | `aap-demo ssh` then `sudo crictl rmi --prune` |
|
|
139
|
+
| Pods stuck Pending (resources) | `kubectl describe node | grep -A 5 Allocated` — consider `aap-demo idle true` on other deployments |
|
|
140
|
+
| Stale pod mounts after crash | Restart kube-proxy and CoreDNS: `kubectl rollout restart daemonset/kube-proxy -n kube-proxy && kubectl rollout restart daemonset/dns-default -n openshift-dns`. Symptom: "transport endpoint is not connected" or "executable file not found" |
|
|
141
|
+
| ImagePullBackOff | Pull secret missing or incorrect. Needs `pull-secret.txt` for registry.redhat.io. Check `~/.aap-demo/` for correct file. |
|
|
142
|
+
| OLM not installed | `aap-demo enable olm` — MicroShift does not include OLM by default, it's installed during `aap-demo create` but may be missing on older setups |
|
|
143
|
+
|
|
144
|
+
## Test Orchestration
|
|
145
|
+
|
|
146
|
+
- Run the non-destructive shell and Python tests under `test/` locally or via CI.
|
|
147
|
+
- Use `aap-demo diagnose` before investigating failures that require a live cluster.
|
|
148
|
+
- For deployment and addon changes, record live CRC lifecycle checks in the PR
|
|
149
|
+
Test Plan; the repository no longer bundles the obsolete internal ATF runner.
|
|
150
|
+
|
|
151
|
+
## Post-Deploy Verification
|
|
152
|
+
|
|
153
|
+
After any deployment, verify health with this sequence:
|
|
154
|
+
|
|
155
|
+
1. `aap-demo status` — check all pods are running, routes are accessible
|
|
156
|
+
2. `aap-demo diagnose` — automated health checks
|
|
157
|
+
3. If diagnose shows issues, apply fixes from the Known Fixes table
|
|
158
|
+
4. For latest deployments, check AAP CR status: `kubectl get aap -n $NAMESPACE -o jsonpath='{.items[0].status.conditions}'`
|
|
159
|
+
|
|
160
|
+
The AAP CR goes through phases: Pending → Running → Successful. A deployment typically
|
|
161
|
+
takes 5-10 minutes. If stuck in Running for >15 minutes, check operator logs and diagnose.
|
|
162
|
+
|
|
163
|
+
## AAP Interaction Tooling
|
|
164
|
+
|
|
165
|
+
**NEVER use awxkit for AAP operations.** awxkit causes:
|
|
166
|
+
- Inconsistent tooling across environments
|
|
167
|
+
- Python dependency conflicts
|
|
168
|
+
- Complex authentication setup
|
|
169
|
+
- Windows compatibility issues
|
|
170
|
+
|
|
171
|
+
### Priority Order for AAP Interactions
|
|
172
|
+
|
|
173
|
+
Use the following tools in this order of preference:
|
|
174
|
+
|
|
175
|
+
#### 1. MCP Server (Preferred)
|
|
176
|
+
|
|
177
|
+
Check if `aap-mcp` MCP server is configured:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# Check MCP server availability
|
|
181
|
+
aap-demo status | grep -i mcp
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
If configured, use MCP tools for AAP operations:
|
|
185
|
+
- `aap-controller-*` tools for Controller operations
|
|
186
|
+
- `aap-eda-*` tools for Event-Driven Ansible
|
|
187
|
+
- `aap-hub-*` tools for Automation Hub
|
|
188
|
+
|
|
189
|
+
MCP provides typed, validated API interactions without authentication complexity.
|
|
190
|
+
|
|
191
|
+
#### 2. kubectl/oc for Operator Resources
|
|
192
|
+
|
|
193
|
+
For operator-deployed AAP, use kubectl/oc to manage AAP resources directly:
|
|
194
|
+
|
|
195
|
+
**Check AAP deployment status:**
|
|
196
|
+
```bash
|
|
197
|
+
kubectl get aap -n aap-operator -o yaml
|
|
198
|
+
kubectl get aap -n aap-operator -o jsonpath='{.items[0].status.conditions}'
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**Get AAP credentials:**
|
|
202
|
+
```bash
|
|
203
|
+
# Admin password
|
|
204
|
+
kubectl get secret aap-admin-password -n aap-operator -o jsonpath='{.data.password}' | base64 -d
|
|
205
|
+
|
|
206
|
+
# Database credentials
|
|
207
|
+
kubectl get secret aap-postgres-configuration -n aap-operator -o yaml
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**Get AAP routes:**
|
|
211
|
+
```bash
|
|
212
|
+
kubectl get routes -n aap-operator
|
|
213
|
+
kubectl get route gateway -n aap-operator -o jsonpath='{.spec.host}'
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**Manage AAP components via CR:**
|
|
217
|
+
```bash
|
|
218
|
+
# Scale down AAP (idle mode)
|
|
219
|
+
kubectl patch aap aap -n aap-operator --type=merge -p '{"spec":{"idle_aap":true}}'
|
|
220
|
+
|
|
221
|
+
# Scale back up
|
|
222
|
+
kubectl patch aap aap -n aap-operator --type=merge -p '{"spec":{"idle_aap":false}}'
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
#### 3. Direct REST API via curl
|
|
226
|
+
|
|
227
|
+
For AAP gateway endpoints when kubectl is insufficient:
|
|
228
|
+
|
|
229
|
+
**Get authentication token:**
|
|
230
|
+
```bash
|
|
231
|
+
# Extract admin password
|
|
232
|
+
ADMIN_PASSWORD=$(kubectl get secret aap-admin-password -n aap-operator -o jsonpath='{.data.password}' | base64 -d)
|
|
233
|
+
|
|
234
|
+
# Get gateway route
|
|
235
|
+
GATEWAY_HOST=$(kubectl get route gateway -n aap-operator -o jsonpath='{.spec.host}')
|
|
236
|
+
|
|
237
|
+
# Authenticate and get token
|
|
238
|
+
TOKEN=$(curl -sk -X POST "https://${GATEWAY_HOST}/api/gateway/v1/tokens/" \
|
|
239
|
+
-H "Content-Type: application/json" \
|
|
240
|
+
-d "{\"username\":\"admin\",\"password\":\"${ADMIN_PASSWORD}\"}" | jq -r '.token')
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
**Common API operations:**
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
# List organizations
|
|
247
|
+
curl -sk -H "Authorization: Bearer ${TOKEN}" \
|
|
248
|
+
"https://${GATEWAY_HOST}/api/controller/v2/organizations/"
|
|
249
|
+
|
|
250
|
+
# List job templates
|
|
251
|
+
curl -sk -H "Authorization: Bearer ${TOKEN}" \
|
|
252
|
+
"https://${GATEWAY_HOST}/api/controller/v2/job_templates/"
|
|
253
|
+
|
|
254
|
+
# Launch job template
|
|
255
|
+
curl -sk -X POST -H "Authorization: Bearer ${TOKEN}" \
|
|
256
|
+
-H "Content-Type: application/json" \
|
|
257
|
+
"https://${GATEWAY_HOST}/api/controller/v2/job_templates/${TEMPLATE_ID}/launch/" \
|
|
258
|
+
-d '{"extra_vars": "{}"}'
|
|
259
|
+
|
|
260
|
+
# Check job status
|
|
261
|
+
curl -sk -H "Authorization: Bearer ${TOKEN}" \
|
|
262
|
+
"https://${GATEWAY_HOST}/api/controller/v2/jobs/${JOB_ID}/"
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**EDA API examples:**
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
# List activations
|
|
269
|
+
curl -sk -H "Authorization: Bearer ${TOKEN}" \
|
|
270
|
+
"https://${GATEWAY_HOST}/api/eda/v1/activations/"
|
|
271
|
+
|
|
272
|
+
# List rulebook activations
|
|
273
|
+
curl -sk -H "Authorization: Bearer ${TOKEN}" \
|
|
274
|
+
"https://${GATEWAY_HOST}/api/eda/v1/rulebook-activations/"
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
**Hub API examples:**
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
# List collections
|
|
281
|
+
curl -sk -H "Authorization: Bearer ${TOKEN}" \
|
|
282
|
+
"https://${GATEWAY_HOST}/api/galaxy/_ui/v1/collection-versions/"
|
|
283
|
+
|
|
284
|
+
# List execution environments
|
|
285
|
+
curl -sk -H "Authorization: Bearer ${TOKEN}" \
|
|
286
|
+
"https://${GATEWAY_HOST}/api/galaxy/pulp/api/v3/distributions/container/container/"
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
#### 4. Ansible Modules (Last Resort)
|
|
290
|
+
|
|
291
|
+
Use Ansible modules only when kubectl/curl are insufficient for complex workflows:
|
|
292
|
+
|
|
293
|
+
```yaml
|
|
294
|
+
# ansible.controller modules
|
|
295
|
+
- name: Create organization
|
|
296
|
+
ansible.controller.organization:
|
|
297
|
+
controller_host: "{{ gateway_host }}"
|
|
298
|
+
controller_username: admin
|
|
299
|
+
controller_password: "{{ admin_password }}"
|
|
300
|
+
name: "Demo Org"
|
|
301
|
+
state: present
|
|
302
|
+
validate_certs: false
|
|
303
|
+
|
|
304
|
+
# ansible.eda modules
|
|
305
|
+
- name: Create EDA project
|
|
306
|
+
ansible.eda.project:
|
|
307
|
+
controller_host: "{{ gateway_host }}"
|
|
308
|
+
controller_username: admin
|
|
309
|
+
controller_password: "{{ admin_password }}"
|
|
310
|
+
name: "Demo Project"
|
|
311
|
+
url: "https://github.com/example/repo.git"
|
|
312
|
+
state: present
|
|
313
|
+
validate_certs: false
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
**When to use Ansible modules:**
|
|
317
|
+
- Complex multi-step AAP configuration workflows
|
|
318
|
+
- Idempotent configuration management
|
|
319
|
+
- Integration with existing Ansible playbooks
|
|
320
|
+
- When MCP/kubectl/curl would require excessive scripting
|
|
321
|
+
|
|
322
|
+
### Authentication Best Practices
|
|
323
|
+
|
|
324
|
+
**For MCP:** Authentication is handled by the MCP server configuration — no manual auth required.
|
|
325
|
+
|
|
326
|
+
**For curl:** Always extract credentials from Kubernetes secrets, never hardcode. Use environment variables for tokens.
|
|
327
|
+
|
|
328
|
+
**For Ansible modules:** Use `controller_host`, `controller_username`, `controller_password` parameters. Set `validate_certs: false` for local development environments.
|
|
329
|
+
|
|
330
|
+
## Key Details
|
|
331
|
+
|
|
332
|
+
- Default namespace: `aap-operator` (override with `NAMESPACE=<ns>`)
|
|
333
|
+
- CRC kubeconfig: `~/.crc/machines/crc/kubeconfig`
|
|
334
|
+
- Config file: `~/.aap-demo/config` (stores infra type, addons, preferences)
|
|
335
|
+
- Backends: CRC (macOS, recommended) uses a VM; MINC (Linux) uses a Podman container
|
|
336
|
+
- SCCs are granted at namespace group level, not per ServiceAccount
|
|
337
|
+
- NFS provisioner uses `__NFS_SERVER_IP__` placeholder resolved at deploy time
|
|
338
|
+
- MicroShift lacks `ingresses.config.openshift.io` API — route hosts use nip.io
|
|
339
|
+
- OLM is not built into MicroShift — installed via `operator-sdk olm install` during create
|
|
340
|
+
- Latest CatalogSource for **AAP** must be in `aap-operator` namespace (no `openshift-marketplace` on MicroShift)
|
|
341
|
+
- **AO addon** copies its own `redhat-operators` CatalogSource into `automation-orchestrator` (see ADR-017)
|
|
342
|
+
- Bundle unpack jobs need `privileged` SCC (not just `anyuid`) due to seccomp annotations
|
|
343
|
+
- `inotify` sysctl limits (`max_user_instances=2099999999`) are critical for operator performance
|