Add Automation Orchestrator Install and setup

This commit is contained in:
2026-10-02 13:24:44 -04:00
parent 085654d017
commit c164cb2598
23 changed files with 1568 additions and 90 deletions

View File

@@ -0,0 +1,158 @@
---
argument_specs:
main:
short_description: Install Automation Orchestrator via its OLM operator (AutomationOrchestrator CR)
description:
- Installs the Automation Orchestrator operator via OLM (redhat-operators by default, or a
custom CatalogSource for pre-release builds) and creates a single
AutomationOrchestrator CR. Adopts an existing install (OperatorGroup, installed CSV)
when operator_namespace points at one.
- >-
Automation Orchestrator is bring-your-own-PostgreSQL: this role only references
existing K8s Secrets (keys: database, username, password) — it does not create the
database/user or their credential Secret. Defaults match the cloudnativepg_operator
role's output; run that role first, or point postgres_* variables and the secret-name
variables at a customer-managed PostgreSQL instance.
- Modeled on https://github.com/ansible/aapctl and https://github.com/automation-nexus/automation-orchestrator-operator.
options:
automation_orchestrator_operator_operator_namespace:
description: Namespace for the Automation Orchestrator operator and (by default) its CR.
type: str
default: automation-orchestrator
automation_orchestrator_operator_channel:
description: OLM subscription channel.
type: str
default: stable
automation_orchestrator_operator_name:
description: Operator package name in the catalog.
type: str
default: automation-orchestrator-operator
automation_orchestrator_operator_catalog_source_name:
description: CatalogSource to subscribe from (created by this role only when catalog_image is set).
type: str
default: redhat-operators
automation_orchestrator_operator_catalog_image:
description: >-
Index image for a custom CatalogSource (e.g. a pre-release build). Empty string
uses the existing catalog_source_name without creating a CatalogSource.
type: str
default: ""
automation_orchestrator_operator_install_plan_approval:
description: >-
Subscription installPlanApproval (Manual or Automatic). With Manual, the role approves
only the initial InstallPlan; once a CSV is installed, upgrades are left pending.
type: str
choices: [Manual, Automatic]
default: Manual
automation_orchestrator_operator_wait_timeout:
description: Seconds to wait for the operator and instance to become ready.
type: int
default: 600
automation_orchestrator_operator_idms_name:
description: Name of the cluster-wide ImageDigestMirrorSet for pre-release images.
type: str
default: idms-aap-27-next
automation_orchestrator_operator_image_digest_mirrors:
description: >-
spec.imageDigestMirrors entries ({source, mirrors}) for the IDMS. Applying a change
triggers a MachineConfigPool rollout. Only needed for pre-release builds; [] skips it.
type: list
elements: dict
default: []
automation_orchestrator_operator_mcp_wait_timeout:
description: Seconds to wait for the MachineConfigPool rollout after the IDMS changes.
type: int
default: 1800
automation_orchestrator_operator_app_namespace:
description: >-
Namespace for the AutomationOrchestrator instance. Exactly one CR is allowed per namespace.
Defaults to the same namespace as the operator.
type: str
default: "{operator_namespace}"
automation_orchestrator_operator_instance_name:
description: Name of the AutomationOrchestrator CR.
type: str
default: automation-orchestrator
automation_orchestrator_operator_postgres_host:
description: PostgreSQL host shared by the backend and Temporal databases.
type: str
default: orchestrator-postgres-rw
automation_orchestrator_operator_postgres_port:
description: PostgreSQL port.
type: int
default: 5432
automation_orchestrator_operator_postgres_ssl_mode:
description: PostgreSQL SSL mode (disable, allow, prefer, require, verify-ca, verify-full).
type: str
default: verify-ca
automation_orchestrator_operator_postgres_ca_cert_secret:
description: >-
Name of a pre-existing Secret (key ca.crt) with the PostgreSQL server CA certificate.
Required when sslMode is verify-ca or verify-full.
type: str
default: orchestrator-postgres-ca
automation_orchestrator_operator_backend_db_secret_name:
description: Name of the pre-existing Secret with the backend database credentials.
type: str
default: orchestrator-postgres-secret
automation_orchestrator_operator_temporal_db_secret_name:
description: Name of the pre-existing Secret with the Temporal database credentials.
type: str
default: temporal-postgres-secret
automation_orchestrator_operator_ingress_type:
description: External access type (Route on OpenShift, Ingress on AKS, or None).
type: str
default: Route
automation_orchestrator_operator_ingress_host:
description: Custom hostname for external access. Leave unset to use the operator's auto-generated hostname.
type: str
default: ""
automation_orchestrator_operator_ingress_annotations:
description: Annotations applied to the generated Route/Ingress resource.
type: dict
default: {}
automation_orchestrator_operator_ingress_tls_secret_name:
description: Name of a pre-existing kubernetes.io/tls Secret. Only used when ingress_type is Ingress.
type: str
default: ""
automation_orchestrator_operator_image_pull_secrets:
description: List of {name} references to Secrets used to pull component workload images.
type: list
elements: dict
default: []
automation_orchestrator_operator_backend:
description: Passthrough overrides (replicas, resources, affinity, tolerations, nodeSelector) for spec.backend.
type: dict
default: {}
automation_orchestrator_operator_ui:
description: Passthrough overrides for spec.ui.
type: dict
default: {}
automation_orchestrator_operator_worker:
description: Passthrough overrides for spec.worker.
type: dict
default: {}
automation_orchestrator_operator_background_worker:
description: >-
Passthrough overrides for spec.backgroundWorker. Note: replicas has no effect —
the operator always manages this component via an HPA.
type: dict
default: {}
automation_orchestrator_operator_redis:
description: Passthrough overrides for spec.redis.
type: dict
default: {}
automation_orchestrator_operator_temporal_server:
description: Passthrough overrides for spec.temporal.server.
type: dict
default: {}
automation_orchestrator_operator_extra_spec:
description: >-
Arbitrary dict recursively merged into the generated CR spec last — escape hatch for
fields not otherwise exposed (fileStorage, otel, tls, secrets, workflowHttpRequestAllowedHosts, ...).
type: dict
default: {}
automation_orchestrator_operator_no_log:
description: Set to false to disable no_log and expose secret values in task output. Never set false in shared environments.
type: bool
default: true

View File

@@ -0,0 +1,18 @@
---
galaxy_info:
author: ptoal
description: Install Automation Orchestrator via its OpenShift/AKS OLM operator
license: MIT
min_ansible_version: "2.16"
platforms:
- name: GenericLinux
versions:
- all
galaxy_tags:
- openshift
- aap
- operator
- olm
- ansible
dependencies: []