Merge pull request #304 from kurokobo/awx-2.12.0

feat: bump operator version to 2.12.1
This commit is contained in:
kurokobo 2024-02-16 17:44:28 +09:00 committed by GitHub
commit 60cf11b476
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 60 additions and 55 deletions

View file

@ -29,17 +29,17 @@ An example implementation of AWX on single node K3s using AWX Operator, with eas
- Tested on: - Tested on:
- CentOS Stream 8 (Minimal) - CentOS Stream 8 (Minimal)
- K3s v1.28.5+k3s1 - K3s v1.28.6+k3s2
- Products that will be deployed: - Products that will be deployed:
- AWX Operator 2.11.0 - AWX Operator 2.12.1
- AWX 23.7.0 - AWX 23.8.1
- PostgreSQL 13 - PostgreSQL 13
## References ## References
- [K3s - Lightweight Kubernetes](https://docs.k3s.io/) - [K3s - Lightweight Kubernetes](https://docs.k3s.io/)
- [INSTALL.md on ansible/awx](https://github.com/ansible/awx/blob/23.7.0/INSTALL.md) @23.7.0 - [INSTALL.md on ansible/awx](https://github.com/ansible/awx/blob/23.8.1/INSTALL.md) @23.8.1
- [README.md on ansible/awx-operator](https://github.com/ansible/awx-operator/blob/2.11.0/README.md) @2.11.0 - [README.md on ansible/awx-operator](https://github.com/ansible/awx-operator/blob/2.12.1/README.md) @2.12.1
## Requirements ## Requirements
@ -79,7 +79,7 @@ sudo dnf install -y git curl
Install specific version of K3s with `--write-kubeconfig-mode 644` to make config file (`/etc/rancher/k3s/k3s.yaml`) readable by non-root user. Install specific version of K3s with `--write-kubeconfig-mode 644` to make config file (`/etc/rancher/k3s/k3s.yaml`) readable by non-root user.
```bash ```bash
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.28.5+k3s1 sh -s - --write-kubeconfig-mode 644 curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.28.6+k3s2 sh -s - --write-kubeconfig-mode 644
``` ```
### Install AWX Operator ### Install AWX Operator
@ -92,7 +92,7 @@ If you want to use files suitable for the specific version of AWX Operator, [ref
cd ~ cd ~
git clone https://github.com/kurokobo/awx-on-k3s.git git clone https://github.com/kurokobo/awx-on-k3s.git
cd awx-on-k3s cd awx-on-k3s
git checkout 2.11.0 git checkout 2.12.1
``` ```
Then invoke `kubectl apply -k operator` to deploy AWX Operator. Then invoke `kubectl apply -k operator` to deploy AWX Operator.

View file

@ -42,7 +42,7 @@ This guide does not provide any information how to configure Azure, other DNS se
Deploy cert-manager first. Deploy cert-manager first.
```bash ```bash
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.13.3/cert-manager.yaml kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.14.2/cert-manager.yaml
``` ```
Ensure the pods in `cert-manager` namespace are running. Ensure the pods in `cert-manager` namespace are running.

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_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_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.11.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.12.1/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_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` | | `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

@ -12,8 +12,8 @@ secretGenerator:
- operator=awx - operator=awx
resources: resources:
- github.com/ansible/awx-operator/config/default?ref=2.11.0 - github.com/ansible/awx-operator/config/default?ref=2.12.1
images: images:
- name: quay.io/ansible/awx-operator - name: quay.io/ansible/awx-operator
newTag: 2.11.0 newTag: 2.12.1

View file

@ -10,7 +10,7 @@ This repository includes ready-to-use files as an example to run Ansible Runner.
- CentOS Stream 8 (Minimal) - CentOS Stream 8 (Minimal)
- Python 3.9 - Python 3.9
- Docker 20.10.17 - Docker 20.10.17
- Ansible Runner 2.3.4 - Ansible Runner 2.3.5
## Install ## Install

View file

@ -204,6 +204,14 @@ helm repo update
helm -n awx upgrade -i awx awx-operator/awx-operator -f base/values.yaml helm -n awx upgrade -i awx awx-operator/awx-operator -f base/values.yaml
``` ```
If the upgraded AWX Operator has been released with CRD changes, you may need to run following command to apply the changes.
```bash
# Specify the version of the upgraded AWX Operator
VERSION="1.0.1"
kubectl apply --server-side --force-conflicts -k github.com/ansible/awx-operator/config/crd?ref=${VERSION}
```
#### Gather history of upgrades #### Gather history of upgrades
The history of the upgrades for the release can be listed with `history` command. The history of the upgrades for the release can be listed with `history` command.

View file

@ -16,7 +16,6 @@ For example, some resources deployed with the following command;
```bash ```bash
$ kubectl apply -k base $ kubectl apply -k base
namespace/awx created
secret/awx-admin-password created secret/awx-admin-password created
secret/awx-postgres-configuration created secret/awx-postgres-configuration created
secret/awx-secret-tls created secret/awx-secret-tls created
@ -26,11 +25,11 @@ persistentvolumeclaim/awx-projects-claim created
awx.awx.ansible.com/awx created awx.awx.ansible.com/awx created
``` ```
can be deleted with the following command with same manifest files. can be deleted with the following command with same manifest files. Note that PVC for PostgreSQL should be removed manually since this PVC was created by not `kubectl apply -k` but AWX Operator.
```bash ```bash
$ kubectl -n awx delete pvc postgres-13-awx-postgres-13-0 --wait=false
$ kubectl delete -k base $ kubectl delete -k base
namespace "awx" deleted
secret "awx-admin-password" deleted secret "awx-admin-password" deleted
secret "awx-postgres-configuration" deleted secret "awx-postgres-configuration" deleted
secret "awx-secret-tls" deleted secret "awx-secret-tls" deleted

View file

@ -16,8 +16,6 @@ Note that once you upgrade AWX Operator, your AWX will also be upgraded automati
- [✅ Take a backup of the old AWX instance](#-take-a-backup-of-the-old-awx-instance) - [✅ Take a backup of the old AWX instance](#-take-a-backup-of-the-old-awx-instance)
- [📝 Upgrade from `0.14.0` or later (e.g. from `0.14.0` to `0.15.0`)](#-upgrade-from-0140-or-later-eg-from-0140-to-0150) - [📝 Upgrade from `0.14.0` or later (e.g. from `0.14.0` to `0.15.0`)](#-upgrade-from-0140-or-later-eg-from-0140-to-0150)
- [⚠️ Note for upgrading from `2.0.0` to `2.0.1` or later](#-note-for-upgrading-from-200-to-201-or-later)
- [⚠️ Note for upgrading from `0.25.0` or earlier to `0.26.0` or later](#-note-for-upgrading-from-0250-or-earlier-to-0260-or-later)
- [📝 Procedure](#-procedure) - [📝 Procedure](#-procedure)
- [📝 Upgrade from `0.13.0` (e.g. from `0.13.0` to `0.14.0`)](#-upgrade-from-0130-eg-from-0130-to-0140) - [📝 Upgrade from `0.13.0` (e.g. from `0.13.0` to `0.14.0`)](#-upgrade-from-0130-eg-from-0130-to-0140)
- [📝 Procedure](#-procedure-1) - [📝 Procedure](#-procedure-1)
@ -35,45 +33,43 @@ Refer [📝README: Backing up using AWX Operator](../README.md#backing-up-using-
If you are using AWX Operator `0.14.0` or later and want to upgrade to newer version, basically upgrade is done by deploying the new version of AWX Operator to the same namespace where the old AWX Operator is running. If you are using AWX Operator `0.14.0` or later and want to upgrade to newer version, basically upgrade is done by deploying the new version of AWX Operator to the same namespace where the old AWX Operator is running.
### ⚠️ Note for upgrading from `2.0.0` to `2.0.1` or later > [!WARNING]
> If you are planning to upgrade AWX Operator **from `2.0.0` to `2.0.1` or later**, note that [the `extra_volumes` and `extra_volumes` in `base/awx.yaml` for `2.0.0` as a workaround for specific issue](https://github.com/kurokobo/awx-on-k3s/blob/2.0.0/base/awx.yaml#L42-L51) causes failure of upgrading.
>
> To avoid this, follow these steps before upgrading AWX Operator. Steps 1 and 2 can also be achieved by `kubectl -n awx edit awx awx`.
>
> 1. Remove the definition of the volume and volume mount that named `awx-projects-web` in `extra_volumes` and `web_extra_volume_mounts` in your `base/awx.yaml`.
> - If there are no other volumes or volume mounts, you can remove whole `extra_volumes` and `web_extra_volume_mounts`.
> 2. Apply modified `base/awx.yaml` by `kubectl apply -k base`
> 3. Wait for deployment for AWX to be completed
>
> Once your AWX has been deployed without volume `awx-projects-web`, your AWX can be safely upgraded. Proceed to [the next step](#-procedure).
Note that only when upgrading **from `2.0.0` that deployed using this repository to `2.0.1` or later**, [the `extra_volumes` and `extra_volumes` in `base/awx.yaml` for `2.0.0` as a workaround for specific issue](https://github.com/kurokobo/awx-on-k3s/blob/2.0.0/base/awx.yaml#L42-L51) causes failure of upgrading. > [!WARNING]
> If you are planning to upgrade AWX Operator **from `0.25.0` or earlier to `0.26.0` or later**, note that since the bundled PostgreSQL version will be changed to 13, so the following additional tasks are required.
To avoid this, follow these steps before upgrading AWX Operator. Steps 1 and 2 can also be achieved by `kubectl -n awx edit awx awx`. >
> ```bash
1. Remove the definition of the volume and volume mount that named `awx-projects-web` in `extra_volumes` and `web_extra_volume_mounts` in your `base/awx.yaml`. > # Required only when upgrading from 0.25.0 or earlier to 0.26.0 or later
- If there are no other volumes or volume mounts, you can remove whole `extra_volumes` and `web_extra_volume_mounts`. > sudo mkdir -p /data/postgres-13
2. Apply modified `base/awx.yaml` by `kubectl apply -k base` > sudo chmod 755 /data/postgres-13
3. Wait for deployment for AWX to be completed > cat <<EOF > pv-postgres-13.yaml
> ---
Once your AWX has been deployed without volume `awx-projects-web`, your AWX can be safely upgraded. Proceed to [the next step](#-procedure). > apiVersion: v1
> kind: PersistentVolume
### ⚠️ Note for upgrading from `0.25.0` or earlier to `0.26.0` or later > metadata:
> name: awx-postgres-13-volume
Note that only when upgrading **from `0.25.0` or earlier to `0.26.0` or later**, since the bundled PostgreSQL version will be changed to 13, so the following additional tasks are required. > spec:
> accessModes:
```bash > - ReadWriteOnce
# Required only when upgrading from 0.25.0 or earlier to 0.26.0 or later > persistentVolumeReclaimPolicy: Retain
sudo mkdir -p /data/postgres-13 > capacity:
sudo chmod 755 /data/postgres-13 > storage: 8Gi
cat <<EOF > pv-postgres-13.yaml > storageClassName: awx-postgres-volume
--- > hostPath:
apiVersion: v1 > path: /data/postgres-13
kind: PersistentVolume > EOF
metadata: > kubectl apply -f pv-postgres-13.yaml
name: awx-postgres-13-volume > ```
spec:
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
capacity:
storage: 8Gi
storageClassName: awx-postgres-volume
hostPath:
path: /data/postgres-13
EOF
kubectl apply -f pv-postgres-13.yaml
```
### 📝 Procedure ### 📝 Procedure

View file

@ -10,6 +10,8 @@ The table below maps the AWX Operator versions and bundled AWX versions.
| AWX Operator | AWX | | AWX Operator | AWX |
| - | - | | - | - |
| 2.12.1 | 23.8.1 |
| 2.12.0 | 23.8.0 |
| 2.11.0 | 23.7.0 | | 2.11.0 | 23.7.0 |
| 2.10.0 | 23.6.0 | | 2.10.0 | 23.6.0 |
| 2.9.0 | 23.5.1 | | 2.9.0 | 23.5.1 |