Customize the aapctl installation
Use the interactive wizard, a configuration file, or --set flags to customize operator namespaces and deployment options.
Overview
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.
Interactive wizard
Use the --interactive flag to configure values through guided prompts. The wizard walks through every configurable setting for the install target:
- Operator settings: namespace, catalog source, Operator Lifecycle Manager (OLM) channel, and starting ClusterServiceVersion (CSV) for each operator.
- Instance creation toggles: whether to create each custom resource (AnsibleAutomationPlatform, AutomationOrchestrator, CloudNativePG Cluster).
- Instance settings (when enabled): PostgreSQL connection, ingress, S3 file storage, database storage, and hub file storage.
- Optional operators (requires
AAPCTL_EXPERIMENTAL=true): OpenTelemetry operator enablement, namespace, catalog source, and channel. - OpenTelemetry CR settings (requires
AAPCTL_EXPERIMENTAL=true): endpoint, service name, authentication header, API key secret, CA certificate secret, and client certificate secret. To set these values without the experimental flag, use--setor--configwith theautomation-orchestrator-cr.otel.*keys.
Each prompt displays the current default in brackets. Press Enter to accept the default, or type a new value. The wizard asks you to confirm before applying changes to the cluster.
$ aapctl install ao --interactiveWhen combined with --config or --set, those values are pre-filled as defaults. You can also combine --interactive with --dry-run -o yaml to preview the resulting manifests before you apply them.
Discover available configuration keys
Use aapctl config show to print the full effective configuration for an install target. The output is valid YAML that you can save directly as a --config file:
$ aapctl config show ao
$ aapctl config show aap-with-ao
$ aapctl config show aapPreview the effective configuration after applying overrides:
$ aapctl config show aap-with-ao --set cloudnative-pg-operator.enabled=true
$ aapctl config show aap-with-ao --config custom.yaml --set aap-operator.namespace=my-aapSave the defaults as a starting-point configuration file:
$ aapctl config show aap-with-ao > my-config.yaml
$ aapctl install aap-with-ao --config my-config.yamlConfiguration file
To apply a configuration file, pass it with the --config flag. For the full configuration template and all available keys, see aapctl configuration file reference.
$ aapctl install ao --config my-config.yamlInline overrides
Use --set to override individual values without a configuration file. --set takes precedence over --config:
$ aapctl install ao --set cloudnative-pg-operator.enabled=true
$ aapctl install aap-with-ao --set aap-operator.namespace=my-aap
$ aapctl install aap-with-ao --set aap-operator.catalogSource=my-mirror-catalog
$ aapctl install aap-with-ao --set automation-orchestrator-operator.channel=stable
$ aapctl install ao --set automation-orchestrator-cr.otel.enabled=true
$ aapctl install aap-with-ao --set aap-cr.hub.fileStorageStorageClass=goldSet database storage values inline (requires cloudnative-pg-operator.enabled=true):
$ aapctl install ao --set cloudnative-pg-operator.enabled=true --set cluster-cr.storageSize=20Gi
$ aapctl install ao --set cloudnative-pg-operator.enabled=true --set cluster-cr.storageClass=gp3-csi
$ aapctl install ao --set cloudnative-pg-operator.enabled=true --set cluster-cr.maxConnections=300Set ingress values inline:
$ aapctl install ao \
--set automation-orchestrator-cr.ingress.host=my-ao.example.com \
--set automation-orchestrator-cr.ingress.tlsSecretRef=my-tls-secretSet S3 file storage values inline:
$ aapctl install ao \
--set automation-orchestrator-cr.fileStorage.endpointURL=https://s3.example.com \
--set automation-orchestrator-cr.fileStorage.bucketName=my-bucket \
--set automation-orchestrator-cr.fileStorage.credentialSecretRef=s3-credentialsConfigure your PostgreSQL connection
By default, aapctl does not provision PostgreSQL. You must provide your own PostgreSQL 15 instance and create the two database Secrets (backend and temporal) before you install. See External dependencies for database requirements.
Configure the automation-orchestrator-cr.postgres settings to point at your PostgreSQL server:
$ aapctl install ao \
--set automation-orchestrator-cr.postgres.host=my-pg.example.com \
--set automation-orchestrator-cr.postgres.sslMode=require \
--set automation-orchestrator-cr.postgres.caCertSecretRef=""Install operators without creating instances
Use the enabled config keys to install operators without creating custom resources. This is useful for staged installations where you want to prepare operators first, then create instances separately.
Disable the AutomationOrchestrator custom resource with --set:
$ aapctl install ao \
--set automation-orchestrator-cr.enabled=falseThis command installs the automation orchestrator operator but skips creation of the AutomationOrchestrator custom resource.
For Ansible Automation Platform Plus deployments, you can also skip the AnsibleAutomationPlatform custom resource (CR):
$ aapctl install aap-with-ao \
--set aap-cr.enabled=false \
--set automation-orchestrator-cr.enabled=falseAfter the operators are installed, create the custom resources by running the full install command without the enabled=false overrides.
The available CR enabled keys are:
| Key | Default | Scope | Effect whenfalse |
|---|---|---|---|
aap-cr.enabled |
true | install aap,install aap-with-ao |
Skips the AnsibleAutomationPlatform CR |
automation-orchestrator-cr.enabled |
true | install ao,install aap-with-ao |
Skips the AutomationOrchestrator CR |
cluster-cr.enabled |
true | install ao,install aap-with-ao |
Skips the CloudNativePG Cluster CR, database Secrets, and Database CRs. Only applies whencloudnative-pg-operator.enabled istrue. |
aapctl configuration file reference
Use this reference to look up all configuration keys available in an aapctl configuration file. Pass the file to aapctl install with the --config flag.
Overview
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.
Configuration file template
All fields are optional. Omitted fields use the defaults shown.
aap-operator:
namespace: aap
catalogSource: redhat-operators
# channel: stable-2.7
# startingCSV: <operator-version>
# Ansible Automation Platform custom resource (aap-with-ao deployments only)
# aap-cr:
# enabled: true
# hub:
# fileStorageStorageClass: ""
# fileStorageSize: ""
automation-orchestrator-operator:
namespace: automation-orchestrator
catalogSource: redhat-operators
# channel: stable # Options: early-access, stable
# startingCSV: <operator-version>
automation-orchestrator-cr:
enabled: true
postgres:
host: "" # Required. Set to your PostgreSQL server hostname.
port: 5432
sslMode: verify-ca
caCertSecretRef: orchestrator-postgres-ca
# clientCertSecretRef: ""
ingress:
type: Route
# host: ""
# tlsSecretRef: ""
# annotations: {}
# otel:
# enabled: false
# endpoint: ""
# serviceName: ""
# authHeaderName: ""
# apiKeySecretRef: ""
# caCertSecretRef: ""
# clientCertSecretRef: ""
# fileStorage:
# endpointURL: ""
# bucketName: ""
# region: ""
# verifySSL: true
# usePathStyle: true
# credentialSecretRef: ""
# caCertSecretRef: ""
cloudnative-pg-operator:
namespace: cloudnative-pg
enabled: false # Not supported by Red Hat. See cloudnative-pg.io/support/ for support options.
catalogSource: certified-operators
# startingCSV: <operator-version>
cluster-cr:
enabled: true
imageName: ghcr.io/cloudnative-pg/postgresql:15
storageSize: 5Gi
maxConnections: 200
# storageClass: ""
opentelemetry-operator:
namespace: openshift-opentelemetry-operator
enabled: false
catalogSource: redhat-operators
# startingCSV: <operator-version>Configuration key descriptions
channelsets the Operator Lifecycle Manager (OLM) channel for the operator Subscription. Override this to install from a different release stream, for example, when you need to match a specific Ansible Automation Platform version. When omitted, the default channel is used (stable-2.7for the Ansible Automation Platform operator,stablefor the automation orchestrator operator). The automation orchestrator operator supports two channels:early-accessandstable. See Understand release channels for guidance on which channel to use.catalogSourcesets the OLM CatalogSource name for each operator Subscription. Override this to point to a mirrored catalog in disconnected environments.startingCSVpins the Subscription to a specific ClusterServiceVersion. When omitted, OLM resolves the latest available version in the channel.aap-cr.enabledcontrols whether the AnsibleAutomationPlatform custom resource is created. Set tofalseto install the Ansible Automation Platform operator without creating an instance. Default:true. Available oninstall aapandinstall aap-with-ao.aap-cr.hubapplies only to integrated deployments that include Ansible Automation Platform (install aaporinstall aap-with-ao). SetfileStorageStorageClassto choose a StorageClass for automation hub content storage. SetfileStorageSizeto set the storage volume size. When empty, the Ansible Automation Platform operator uses its own defaults.automation-orchestrator-cr.enabledcontrols whether the AutomationOrchestrator custom resource is created. Set tofalseto install the automation orchestrator operator without creating an instance. Default:true. Available oninstall aoandinstall aap-with-ao.automation-orchestrator-cr.postgresconfigures the PostgreSQL connection settings written into the AutomationOrchestrator custom resource. Override these values when you bring your own PostgreSQL instance.automation-orchestrator-cr.ingresscontrols the ingress settings in the AutomationOrchestrator custom resource. Thetypefield is always written;host,tlsSecretRef, andannotationsare omitted from the custom resource when empty.automation-orchestrator-cr.fileStorageconfigures S3-compatible object storage for file uploads. SetendpointURLto your S3 endpoint to enable file storage. WhenendpointURLis empty (the default), the entirespec.fileStoragesection is omitted and file uploads return HTTP 503. The remaining fields (bucketName,region,verifySSL,usePathStyle,credentialSecretRef,caCertSecretRef) are optional. When omitted, the operator applies its own defaults (bucketName:orchestrator-files,region:us-east-1,verifySSL:true,usePathStyle:true). If your S3 endpoint requires authentication, create the credential Secret before you install. See File storage (S3) for the full field reference.cluster-cr.enabledcontrols whether the CloudNativePG Cluster custom resource (CR), database Secrets, and Database CRs are created. Set tofalseto install the CloudNativePG operator without provisioning databases. You must create the two database Secrets (backend and temporal) manually before the installation can proceed. Default:true. This setting only applies whencloudnative-pg-operator.enabledistrue.cluster-crconfigures the CloudNativePG database cluster.imageNamesets the PostgreSQL container image.storageSizesets the persistent volume size for database storage (default:5Gi).storageClassselects a StorageClass for the database volumes. WhenstorageClassis empty, the cluster default StorageClass applies.maxConnectionssets the PostgreSQLmax_connectionsparameter (default:200). See Automation orchestrator system requirements for sizing guidance.automation-orchestrator-cr.otelconfigures OpenTelemetry export in the AutomationOrchestrator custom resource. Setotel.enabledtotrueandotel.endpointto an OpenTelemetry Protocol (OTLP) HTTP endpoint to forward audit events. The remaining fields (serviceName,authHeaderName,apiKeySecretRef,caCertSecretRef,clientCertSecretRef) are optional and control authentication and TLS. These keys work on all installations without any additional requirements. See Enable OpenTelemetry collection with aapctl.opentelemetry-operator.enabledinstalls the Red Hat build of the OpenTelemetry operator and deploys an OpenTelemetryCollector custom resource. This option is a Technology Preview feature. See Enable OpenTelemetry collection with aapctl.