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
This commit is contained in:
kurokobo 2024-04-13 00:17:39 +09:00 committed by GitHub
parent e47d91369a
commit a2f564d1d5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 32 additions and 45 deletions

View file

@ -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
<!-- shell: k3s: install -->
```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

View file

@ -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`<br>`backup_pvc: awx-backup-claim`<br>`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`<br>`backup_pvc: awx-backup-claim`<br>`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` |

View file

@ -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

View file

@ -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`.
<!-- shell: instance: create directories -->
```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.

View file

@ -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:

View file

@ -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

View file

@ -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

View file

@ -45,10 +45,10 @@ Then prepare directories for your PVs. `/data/projects` is required if you are r
<!-- shell: restore: create directories -->
```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.

View file

@ -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).
<!-- omit in toc -->
## Table of Contents

View file

@ -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 |