aapctl command reference
The aapctl command-line interface (CLI) manages automation orchestrator installations on OpenShift.
aapctl is a Technology Preview feature. Technology Preview features provide early access to upcoming product innovations, enabling you to test functionality and provide feedback during the development process. Technology Preview features are not fully supported under Red Hat production SLA and may not be functionally complete. Red Hat does not recommend using Technology Preview features in production. For more information on the support scope for Technology Preview features, see Technology Preview Features Support Scope.
Command structure
aapctl command target [flags]Each command operates on one of three targets:
| Target | Alias | Description |
|---|---|---|
ao |
automation-orchestrator |
Automation orchestrator only |
aap-with-ao |
aap-plus |
Ansible Automation Platform plus automation orchestrator |
aap |
-- | Ansible Automation Platform only |
version
Print the aapctl version.
$ aapctl versionThis command accepts no flags.
preflight
Run preflight checks to verify cluster readiness before you install.
$ aapctl preflight ao
$ aapctl preflight aap-with-ao
$ aapctl preflight aapMatch the preflight target to your install target.
The preflight command runs the following checks:
- Kubeconfig file exists and is valid.
- Cluster API server is reachable.
- OpenShift Container Platform version meets the minimum requirement. See Automation orchestrator system requirements.
- At least one worker node is available. On hosted control-plane (HCP) clusters, the check passes with zero control-plane nodes.
Exits with code 0 if all checks pass, or code 1 on the first failure.
| Flag | Default | Description |
|---|---|---|
--kubeconfig |
~/.kube/config |
Path to kubeconfig file. Also respects theKUBECONFIG environment variable. |
install
Install operators and deploy resources on the cluster.
$ aapctl install ao
$ aapctl install aap-with-ao
$ aapctl install aapYou can safely re-run any install command. If a resource already exists, the command skips it and continues.
| Flag | Short | Default | Description |
|---|---|---|---|
--config |
-- | Path to YAML configuration file. | |
--set |
-- | Override a single config value (repeatable). Takes precedence over--config. |
|
--interactive |
false |
Prompt for all configurable settings before applying. | |
--kubeconfig |
~/.kube/config |
Path to kubeconfig file. Also respects theKUBECONFIG environment variable. |
|
--dry-run |
false |
Render manifests to standard output instead of applying to the cluster. | |
--output |
-o |
-- | Output format. Onlyyaml is supported. Requires--dry-run. |
--timeout |
30m |
Maximum time to wait for each operator to become ready. | |
--force |
false |
Overwrite existing resources instead of skipping them. | |
--no-wait |
false |
Apply resources without waiting for readiness. Operator Lifecycle Manager (OLM) InstallPlans are still approved. |
Examples
Install automation orchestrator with a custom PostgreSQL host:
$ aapctl install ao \
--set automation-orchestrator-cr.postgres.host=my-pg.example.com \
--set automation-orchestrator-cr.postgres.sslMode=requireInstall with the interactive wizard:
$ aapctl install ao --interactivePreview manifests without applying:
$ aapctl install ao --dry-run -o yaml > manifests.yamlInstall using a configuration file:
$ aapctl install aap-with-ao --config my-config.yamlconfig show
Print the full effective configuration for an install target. The output is valid YAML that you can save as a configuration file.
$ aapctl config show ao
$ aapctl config show aap-with-ao
$ aapctl config show aap| Flag | Default | Description |
|---|---|---|
--config |
-- | Path to YAML configuration file. Values from this file are merged into the defaults. |
--set |
-- | Override a single config value (repeatable). Takes precedence over--config. |
Examples
View the default configuration:
$ aapctl config show aoPreview configuration with overrides applied:
$ aapctl config show aap-with-ao --set cloudnative-pg-operator.enabled=trueSave defaults as a starting-point configuration file:
$ aapctl config show ao > my-config.yamlstatus
Report the readiness of installed resources.
$ aapctl status ao
$ aapctl status aap-with-ao
$ aapctl status aapThe status command checks each resource and reports whether it is ready. Exits with code 0 if all resources are ready, or code 1 if any resource is not ready.
For status ao, the command checks:
- Namespace and OperatorGroup exist.
- Subscription has a current ClusterServiceVersion (CSV).
- The AutomationOrchestrator custom resource definition (CRD) is registered.
- The AutomationOrchestrator custom resource has a
Ready=Truecondition. - CloudNativePG Cluster has at least one ready instance (when enabled).
- CloudNativePG Database custom resources are applied (when enabled).
For status aap-with-ao, the command checks all of the above plus the Ansible Automation Platform operator and custom resource.
| Flag | Default | Description |
|---|---|---|
--config |
-- | Path to YAML configuration file. |
--set |
-- | Override a single config value (repeatable). |
--kubeconfig |
~/.kube/config |
Path to kubeconfig file. Also respects theKUBECONFIG environment variable. |
Examples
Check the status of an automation orchestrator deployment:
$ aapctl status aoCheck status with a custom configuration:
$ aapctl status ao --config my-config.yamluninstall
Remove the resources that aapctl install created. Deletes resources in reverse installation order and prompts for confirmation before proceeding.
$ aapctl uninstall ao
$ aapctl uninstall aap-with-ao
$ aapctl uninstall aapThe command is safe to run multiple times. Resources that are already removed are silently skipped.
By default, the command preserves namespaces and deletes the following resources in reverse installation order:
- Custom resource (AutomationOrchestrator, AnsibleAutomationPlatform, or both, depending on the target)
- Operator Subscription, ClusterServiceVersion (CSV), and OperatorGroup for each installed operator
- CloudNativePG Database and Cluster custom resources, database secrets, and CloudNativePG operator resources (when CloudNativePG was enabled during installation)
- OpenTelemetry operator resources (when OpenTelemetry was enabled during installation)
Run aapctl uninstall <target> --dry-run -o yaml to see the exact list of resources before you proceed.
| Flag | Short | Default | Description |
|---|---|---|---|
--config |
-- | Path to YAML configuration file. | |
--set |
-- | Override a single config value (repeatable). | |
--kubeconfig |
~/.kube/config |
Path to kubeconfig file. Also respects theKUBECONFIG environment variable. |
|
--dry-run |
false |
Print the resources that would be deleted without modifying the cluster. | |
--output |
-o |
-- | Output format. Onlyyaml is supported. Requires--dry-run. |
--force |
false |
Delete namespaces, clear finalizers, and force-terminate stuck namespaces. See Force removal. | |
--yes |
-y |
false |
Skip the confirmation prompt. |
Force removal
By default, aapctl uninstall preserves namespaces and issues standard delete requests. Resources with operator-managed finalizers may remain in Terminating state if the managing operator was already removed.
Use --force when you need a clean-slate teardown or when resources are stuck in Terminating state.
With --force, aapctl performs the following additional actions:
- Deletes namespaces, which cascade-deletes all resources inside them, including resources that aapctl did not create.
- Clears
metadata.finalizerson each resource before deletion, including operator ClusterServiceVersions that are stuck in theDeletingstate. - Force-terminates namespaces that remain in
Terminatingstate by clearingspec.finalizers.
The --force flag deletes entire namespaces. Any resources in those namespaces that were not created by aapctl, such as PersistentVolumeClaims or manually created resources, are also deleted. In environments where namespace provisioning requires a formal request process, you cannot reinstall until a new namespace is provisioned.
Run aapctl uninstall <target> --dry-run -o yaml before using --force to review which namespaces and resources will be removed.
Examples
Uninstall automation orchestrator:
$ aapctl uninstall aoPreview what would be deleted:
$ aapctl uninstall ao --dry-run -o yamlUninstall without confirmation:
$ aapctl uninstall ao --yesForce removal of stuck resources:
$ aapctl uninstall ao --forceIf you enabled CloudNativePG during installation, pass the flag so that aapctl also removes those resources:
$ aapctl uninstall ao --set cloudnative-pg-operator.enabled=true