From a2f564d1d5d708108d77d98dec7ce6cfaae63256 Mon Sep 17 00:00:00 2001 From: kurokobo Date: Sat, 13 Apr 2024 00:17:39 +0900 Subject: [PATCH] feat: bump awx operator version to 2.15.0 (#341) * feat: bump awx operator version to 2.15.0 * docs: explain arm64 support * docs: fix logs for galaxy operator * chore: change location for specific parameter --- README.md | 29 +++++++++++------------------ backup/ansible/README.md | 2 +- base/awx.yaml | 9 +++------ galaxy/README.md | 8 ++++---- galaxy/galaxy/galaxy.yaml | 9 +++++---- galaxy/operator/kustomization.yaml | 4 ++-- operator/kustomization.yaml | 4 ++-- restore/README.md | 6 +++--- tips/upgrade-operator.md | 5 ----- tips/version-mapping.md | 1 + 10 files changed, 32 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index 1e5a1de..fd73bc4 100644 --- a/README.md +++ b/README.md @@ -29,22 +29,23 @@ An example implementation of AWX on single node K3s using AWX Operator, with eas - Tested on: - CentOS Stream 9 (Minimal) - - K3s v1.28.7+k3s1 + - K3s v1.29.3+k3s1 - Products that will be deployed: - - AWX Operator 2.14.0 - - AWX 24.1.0 + - AWX Operator 2.15.0 + - AWX 24.2.0 - PostgreSQL 15 ## πŸ“ References - [K3s - Lightweight Kubernetes](https://docs.k3s.io/) -- [INSTALL.md on ansible/awx](https://github.com/ansible/awx/blob/24.1.0/INSTALL.md) @24.1.0 -- [README.md on ansible/awx-operator](https://github.com/ansible/awx-operator/blob/2.14.0/README.md) @2.14.0 +- [INSTALL.md on ansible/awx](https://github.com/ansible/awx/blob/24.2.0/INSTALL.md) @24.2.0 +- [README.md on ansible/awx-operator](https://github.com/ansible/awx-operator/blob/2.15.0/README.md) @2.15.0 ## πŸ“ Requirements - **Computing resources** - - **2 CPUs with x86-64-v2 support**. + - **2 CPUs minimum**. + - Both **AMD64** (x86_64) with x86-64-v2 support, and **ARM64** (aarch64) are supported. - **4 GiB RAM minimum**. - It's recommended to add more CPUs and RAM (like 4 CPUs and 8 GiB RAM or more) to avoid performance issue and job scheduling issue. - The files in this repository are configured to ignore resource requirements which specified by AWX Operator by default. @@ -81,17 +82,11 @@ Install a specific version of K3s with `--write-kubeconfig-mode 644` to make the ```bash -curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.28.7+k3s1 sh -s - --write-kubeconfig-mode 644 +curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.29.3+k3s1 sh -s - --write-kubeconfig-mode 644 ``` ### βœ… Install AWX Operator -> [!WARNING] -> AWX Operator 2.13.x introduces some major changes and some issues related to these changes are reported. These issues include an issue that have the potential to lose data depending on your configuration. -> Since the issues still exist in 2.14.0, if you don't have any strong reason to use new version, personally I recommend you to use [2.12.1](https://github.com/kurokobo/awx-on-k3s/tree/2.12.1) instead until major issues are resolved. -> -> If you have a plan to upgrade existing AWX Operator and AWX from 2.12.x or earlier to 2.13.x or later anyway, some additional tasks are required. Refer to [πŸ“Tips: Upgrade AWX Operator and AWX](tips/upgrade-operator.md) to further information. Also do not forget creating backup before upgrading. - Clone this repository and change directory. If you want to use files suitable for a specific version of AWX Operator, [refer to tags in this repository](https://github.com/kurokobo/awx-on-k3s/tags) and specify the desired tag in `git checkout`. Especially for `0.13.0` or earlier versions of AWX Operator, refer to [πŸ“Tips: Deploy older version of AWX Operator](tips/deploy-older-operator.md). @@ -100,7 +95,7 @@ If you want to use files suitable for a specific version of AWX Operator, [refer cd ~ git clone https://github.com/kurokobo/awx-on-k3s.git cd awx-on-k3s -git checkout 2.14.0 +git checkout 2.15.0 ``` Then invoke `kubectl apply -k operator` to deploy AWX Operator. @@ -178,9 +173,7 @@ Prepare directories for Persistent Volumes defined in `base/pv.yaml`. These dire ```bash sudo mkdir -p /data/postgres-15/data sudo mkdir -p /data/projects -sudo chown 26:0 /data/postgres-15/data sudo chown 1000:0 /data/projects -sudo chmod 700 /data/postgres-15/data ``` ### βœ… Deploy AWX @@ -221,7 +214,7 @@ NAME READY STATUS RESTAR pod/awx-operator-controller-manager-59b86c6fb-4zz9r 2/2 Running 0 7m22s pod/awx-postgres-15-0 1/1 Running 0 6m33s pod/awx-web-549f7fdbc5-htpl9 3/3 Running 0 6m5s -pod/awx-migration-24.1.0-kglht 0/1 Completed 0 4m36s +pod/awx-migration-24.2.0-kglht 0/1 Completed 0 4m36s pod/awx-task-7d4fcdd449-mqkp2 4/4 Running 0 6m4s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE @@ -243,7 +236,7 @@ NAME READY AGE statefulset.apps/awx-postgres-15 1/1 6m33s NAME COMPLETIONS DURATION AGE -job.batch/awx-migration-24.1.0 1/1 2m4s 4m36s +job.batch/awx-migration-24.2.0 1/1 2m4s 4m36s NAME CLASS HOSTS ADDRESS PORTS AGE ingress.networking.k8s.io/awx-ingress traefik awx.example.com 192.168.0.221 80, 443 6m6s diff --git a/backup/ansible/README.md b/backup/ansible/README.md index 490088a..fd88f9c 100644 --- a/backup/ansible/README.md +++ b/backup/ansible/README.md @@ -32,7 +32,7 @@ An example simple playbook for Ansible is also provided in this repository. This | - | - | - | | `awxbackup_namespace` | The name of the NameSpace where the `AWXBackup` resource will be created. | `awx` | | `awxbackup_name` | The name of the `AWXBackup` resource. Dynamically generated using execution time by default. | `awxbackup-{{ lookup('pipe', 'date +%Y-%m-%d-%H-%M-%S') }}` | -| `awxbackup_spec` | The `spec` of the `AWXBackup` resource. Refer [official documentation](https://github.com/ansible/awx-operator/tree/2.14.0/roles/backup) for acceptable fields. | `deployment_name: awx`
`backup_pvc: awx-backup-claim`
`clean_backup_on_delete: true` | +| `awxbackup_spec` | The `spec` of the `AWXBackup` resource. Refer [official documentation](https://github.com/ansible/awx-operator/tree/2.15.0/roles/backup) for acceptable fields. | `deployment_name: awx`
`backup_pvc: awx-backup-claim`
`clean_backup_on_delete: true` | | `awxbackup_timeout` | Time to wait for backup to complete, in seconds. If exceeded, the playbook will fail. | `600` | | `awxbackup_keep_days` | Number of days to keep `AWXBackup` resources. `AWXBackup` resources older than this value will be deleted by this playbook. Set `0` to keep forever. | `30` | diff --git a/base/awx.yaml b/base/awx.yaml index 7207334..78e0c96 100644 --- a/base/awx.yaml +++ b/base/awx.yaml @@ -5,10 +5,8 @@ metadata: name: awx spec: # These parameters are designed for use with: - # - AWX Operator: 2.0.0 - # https://github.com/ansible/awx-operator/blob/2.0.0/README.md - # - AWX: 22.0.0 - # https://github.com/ansible/awx/blob/22.0.0/INSTALL.md + # - AWX Operator: 2.15.0 + # https://github.com/ansible/awx-operator/blob/2.15.0/README.md admin_user: admin admin_password_secret: awx-admin-password @@ -20,6 +18,7 @@ spec: postgres_configuration_secret: awx-postgres-configuration + postgres_data_volume_init: true postgres_storage_class: awx-postgres-volume postgres_storage_requirements: requests: @@ -39,7 +38,5 @@ spec: redis_resource_requirements: {} rsyslog_resource_requirements: {} - postgres_data_volume_init: true - # Uncomment to reveal "censored" logs #no_log: false diff --git a/galaxy/README.md b/galaxy/README.md index 685dc62..ddcd086 100644 --- a/galaxy/README.md +++ b/galaxy/README.md @@ -34,7 +34,7 @@ In this guide, [Galaxy Operator](https://github.com/ansible/galaxy-operator) is > [!WARNING] > Galaxy NG deployed with this procedure will not be used as container registry due to [a known issue](https://github.com/ansible/galaxy-operator/issues/74). If you want to use fully working Galaxy NG, follow [the old version of this guide that uses Pulp Operator instead](https://github.com/kurokobo/awx-on-k3s/tree/2.12.1/galaxy#deploy-on-kubernetes-pulp-operator). -- Galaxy Operator 2024.02.29 +- Galaxy Operator 2024.4.3 - Galaxy NG - Service: 5d56bddb - UI: 59cf7798 @@ -125,10 +125,10 @@ Prepare directories for Persistent Volumes defined in `galaxy/galaxy/pv.yaml`. ```bash sudo mkdir -p /data/galaxy/postgres-13 -sudo mkdir -p /data/galaxy/redis +sudo chmod 755 /data/galaxy/postgres-13 sudo mkdir -p /data/galaxy/file sudo chown 1000:0 /data/galaxy/file -sudo chmod 755 /data/galaxy/postgres-13 +sudo mkdir -p /data/galaxy/redis ``` ### Deploy Galaxy NG @@ -154,7 +154,7 @@ $ kubectl -n galaxy logs -f deployments/galaxy-operator-controller-manager ... ----- Ansible Task Status Event StdOut (galaxy.ansible.com/v1beta1, Kind=Galaxy, galaxy/galaxy) ----- PLAY RECAP ********************************************************************* -localhost : ok=128 changed=25 unreachable=0 failed=0 skipped=85 rescued=0 ignored=0 +localhost : ok=131 changed=25 unreachable=0 failed=0 skipped=82 rescued=0 ignored=0 ``` Required objects has been deployed next to Pulp Operator in `galaxy` namespace. diff --git a/galaxy/galaxy/galaxy.yaml b/galaxy/galaxy/galaxy.yaml index ca5fe48..7676418 100644 --- a/galaxy/galaxy/galaxy.yaml +++ b/galaxy/galaxy/galaxy.yaml @@ -4,13 +4,13 @@ metadata: name: galaxy spec: # These parameters are designed for use with: - # - Galaxy Operator: 2024.02.29 - # https://github.com/ansible/galaxy-operator/blob/2024.02.29/README.md + # - Galaxy Operator: 2024.4.3 + # https://github.com/ansible/galaxy-operator/blob/2024.4.3/README.md image: quay.io/ansible/galaxy-ng - image_version: 5d56bddb + image_version: f3c93fc1 image_web: quay.io/ansible/galaxy-ui - image_web_version: 59cf7798 + image_web_version: b2fa0d0d admin_password_secret: galaxy-admin-password @@ -23,6 +23,7 @@ spec: file_storage_access_mode: ReadWriteOnce file_storage_size: 8Gi + postgres_configuration_secret: galaxy-postgres-configuration postgres_storage_class: galaxy-postgres-volume postgres_storage_requirements: requests: diff --git a/galaxy/operator/kustomization.yaml b/galaxy/operator/kustomization.yaml index 9c1785c..077c88b 100644 --- a/galaxy/operator/kustomization.yaml +++ b/galaxy/operator/kustomization.yaml @@ -12,8 +12,8 @@ secretGenerator: - operator=eda resources: - - github.com/ansible/galaxy-operator/config/default?ref=2024.02.29 + - github.com/ansible/galaxy-operator/config/default?ref=2024.4.3 images: - name: quay.io/ansible/galaxy-operator - newTag: 2024.02.29 + newTag: 2024.4.3 diff --git a/operator/kustomization.yaml b/operator/kustomization.yaml index 97fc12f..b3c03f4 100644 --- a/operator/kustomization.yaml +++ b/operator/kustomization.yaml @@ -12,8 +12,8 @@ secretGenerator: - operator=awx resources: - - github.com/ansible/awx-operator/config/default?ref=2.14.0 + - github.com/ansible/awx-operator/config/default?ref=2.15.0 images: - name: quay.io/ansible/awx-operator - newTag: 2.14.0 + newTag: 2.15.0 diff --git a/restore/README.md b/restore/README.md index dce74af..81ae6a7 100644 --- a/restore/README.md +++ b/restore/README.md @@ -45,10 +45,10 @@ Then prepare directories for your PVs. `/data/projects` is required if you are r ```bash sudo mkdir -p /data/postgres-15/data -sudo mkdir -p /data/projects sudo chown 26:0 /data/postgres-15/data -sudo chown 1000:0 /data/projects sudo chmod 700 /data/postgres-15/data +sudo mkdir -p /data/projects +sudo chown 1000:0 /data/projects ``` Then deploy PV and PVC. It is recommended that making the size of PVs and PVCs same as the PVs which your AWX used when the backup was taken. @@ -111,7 +111,7 @@ $ kubectl -n awx logs -f deployments/awx-operator-controller-manager ... ----- Ansible Task Status Event StdOut (awx.ansible.com/v1beta1, Kind=AWX, awx/awx) ----- PLAY RECAP ********************************************************************* -localhost : ok=92 changed=0 unreachable=0 failed=0 skipped=79 rescued=0 ignored=1 +localhost : ok=92 changed=0 unreachable=0 failed=0 skipped=80 rescued=0 ignored=1 ``` This will create AWXRestore object in the namespace, and now your AWX is restored. diff --git a/tips/upgrade-operator.md b/tips/upgrade-operator.md index e44e6b7..49cd228 100644 --- a/tips/upgrade-operator.md +++ b/tips/upgrade-operator.md @@ -11,11 +11,6 @@ Note that once you upgrade AWX Operator, your AWX will also be upgraded automati [There is `image_version` parameter for AWX resource to change which image will be used](https://ansible.readthedocs.io/projects/awx-operator/en/latest/user-guide/advanced-configuration/deploying-a-specific-version-of-awx.html), but it appears that using a version of AWX other than the one bundled with the AWX Operator [is currently not supported](https://ansible.readthedocs.io/projects/awx-operator/en/latest/user-guide/advanced-configuration/deploying-a-specific-version-of-awx.html). Conversely, if you want to upgrade AWX, you need to plan to upgrade AWX Operator first. -> [!WARNING] -> AWX Operator 2.13.x introduces some major changes and some issues related to these changes are reported. If you don't have any strong reason to use 2.13.x, personally I recommend to use [2.12.1](https://github.com/kurokobo/awx-on-k3s/tree/2.12.1) instead until major issues are resolved. -> -> If you have a plan to upgrade existing AWX Operator and AWX from 2.12.x or earlier to 2.13.x anyway, some additional tasks are required. Refer to [the notes below](#-upgrade-from-0140-or-later-eg-from-0140-to-0150). - ## Table of Contents diff --git a/tips/version-mapping.md b/tips/version-mapping.md index 3a530b8..8350b33 100644 --- a/tips/version-mapping.md +++ b/tips/version-mapping.md @@ -10,6 +10,7 @@ The table below maps the AWX Operator versions and bundled AWX versions. | AWX Operator | AWX | | ------------ | ------- | +| 2.15.0 | 24.2.0 | | 2.14.0 | 24.1.0 | | 2.13.1 | 24.0.0 | | 2.13.0 | 24.0.0 |