mirror of
https://github.com/Expand-sys/awx-on-k3s
synced 2025-12-16 05:52:15 +11:00
commit
a01237d1b7
8 changed files with 38 additions and 24 deletions
12
README.md
12
README.md
|
|
@ -27,17 +27,17 @@ An example implementation of AWX on single node K3s using AWX Operator, with eas
|
|||
|
||||
- Tested on:
|
||||
- CentOS Stream 8 (Minimal)
|
||||
- K3s v1.23.6+k3s1
|
||||
- K3s v1.23.8+k3s2
|
||||
- Products that will be deployed:
|
||||
- AWX Operator 0.23.0
|
||||
- AWX 21.2.0
|
||||
- AWX Operator 0.24.0
|
||||
- AWX 21.3.0
|
||||
- PostgreSQL 12
|
||||
|
||||
## References
|
||||
|
||||
- [K3s - Lightweight Kubernetes](https://rancher.com/docs/k3s/latest/en/)
|
||||
- [INSTALL.md on ansible/awx](https://github.com/ansible/awx/blob/21.2.0/INSTALL.md) @21.2.0
|
||||
- [README.md on ansible/awx-operator](https://github.com/ansible/awx-operator/blob/0.23.0/README.md) @0.23.0
|
||||
- [INSTALL.md on ansible/awx](https://github.com/ansible/awx/blob/21.3.0/INSTALL.md) @21.3.0
|
||||
- [README.md on ansible/awx-operator](https://github.com/ansible/awx-operator/blob/0.24.0/README.md) @0.24.0
|
||||
|
||||
## Requirements
|
||||
|
||||
|
|
@ -83,7 +83,7 @@ Install specified version of AWX Operator. Note that this procedure is applicabl
|
|||
cd ~
|
||||
git clone https://github.com/ansible/awx-operator.git
|
||||
cd awx-operator
|
||||
git checkout 0.23.0
|
||||
git checkout 0.24.0
|
||||
```
|
||||
|
||||
Export the name of the namespace where you want to deploy AWX Operator as the environment variable `NAMESPACE` and run `make deploy`. The default namespace is `awx`.
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ This guide does not provide any information how to configure Azure, other DNS se
|
|||
Deploy cert-manager first.
|
||||
|
||||
```bash
|
||||
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.8.0/cert-manager.yaml
|
||||
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.8.2/cert-manager.yaml
|
||||
```
|
||||
|
||||
Ensure the pods in `cert-manager` namespace are running.
|
||||
|
|
|
|||
|
|
@ -26,13 +26,19 @@ An example simple playbook for Ansible is also provided in this repository. This
|
|||
|
||||
[This example playbook](project/backup.yml) is designed to allow you to customize your backup with variables.
|
||||
|
||||
<!-- markdownlint-disable MD033 -->
|
||||
|
||||
| Variables | Description | Default |
|
||||
| - | - | - |
|
||||
| `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/0.23.0/roles/backup) for acceptable fields. | `{'deployment_name':'awx','backup_pvc':'awx-backup-claim'}` |
|
||||
| `awxbackup_spec` | The `spec` of the `AWXBackup` resource. Refer [official documentation](https://github.com/ansible/awx-operator/tree/0.24.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. **Note that the actual backup data will remain in the PVC after the `AWXBackup` resource is deleted.** | `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` |
|
||||
|
||||
<!-- markdownlint-enable MD033 -->
|
||||
|
||||
Note that this playbook enables `clean_backup_on_delete` by default that only works with AWX Operator `0.24.0` and later. This option makes that your actual backup data in your PVC is deleted at the same time the AWXBackup resource is deleted. You can disable this feature by explicitly specifying `clean_backup_on_delete: false`. Refer [the official documentation](https://github.com/ansible/awx-operator/tree/devel/roles/backup) for detail.
|
||||
|
||||
## Preparation
|
||||
|
||||
|
|
@ -76,7 +82,7 @@ export K8S_AUTH_API_KEY="<Your API Token>"
|
|||
```bash
|
||||
# Modify variables using "-e" as needed
|
||||
ansible-playbook project/backup.yml \
|
||||
-e awxbackup_spec="{'deployment_name':'awx','backup_pvc':'awx-backup-claim'}" \
|
||||
-e awxbackup_spec="{'deployment_name':'awx','backup_pvc':'awx-backup-claim','clean_backup_on_delete':'true'}" \
|
||||
-e keep_days=90
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
- name: Backing up AWX using AWX Operator
|
||||
gather_facts: no
|
||||
gather_facts: false
|
||||
hosts: localhost
|
||||
|
||||
tasks:
|
||||
|
|
@ -16,6 +16,7 @@
|
|||
spec:
|
||||
deployment_name: awx
|
||||
backup_pvc: awx-backup-claim
|
||||
clean_backup_on_delete: true
|
||||
timeout: 600
|
||||
keep_days: 30
|
||||
|
||||
|
|
@ -56,11 +57,11 @@
|
|||
kubernetes.core.k8s:
|
||||
state: present
|
||||
definition: "{{ _awxbackup_manifest }}"
|
||||
wait: yes
|
||||
wait: true
|
||||
wait_condition:
|
||||
reason: "Successful"
|
||||
reason: Successful
|
||||
status: "True"
|
||||
type: "Running"
|
||||
type: Running
|
||||
wait_timeout: "{{ _awxbackup_config.timeout | int }}"
|
||||
register: _awxbackup_created
|
||||
|
||||
|
|
@ -71,7 +72,7 @@
|
|||
_awxbackup_created_info:
|
||||
name: "{{ _awxbackup_created.result.metadata.name }}"
|
||||
creation_timestamp: "{{ _awxbackup_created.result.metadata.creationTimestamp }}"
|
||||
deploument_name: "{{ _awxbackup_created.result.spec.deployment_name }}"
|
||||
deployment_name: "{{ _awxbackup_created.result.spec.deployment_name }}"
|
||||
backup_pvc: "{{ _awxbackup_created.result.status.backupClaim }}"
|
||||
backup_directory: "{{ _awxbackup_created.result.status.backupDirectory }}"
|
||||
|
||||
|
|
@ -80,12 +81,12 @@
|
|||
kubernetes.core.k8s:
|
||||
state: absent
|
||||
definition: "{{ _awxbackup_manifest }}"
|
||||
wait: yes
|
||||
wait: true
|
||||
|
||||
- name: Force to fail if the backup was failed
|
||||
ansible.builtin.fail:
|
||||
|
||||
- name: Creanup outdated backups
|
||||
- name: Cleanup outdated backups
|
||||
block:
|
||||
- name: Store current datetime
|
||||
ansible.builtin.set_fact:
|
||||
|
|
@ -105,10 +106,12 @@
|
|||
namespace: "{{ _awxbackup_config.namespace }}"
|
||||
name: "{{ item.name }}"
|
||||
state: absent
|
||||
wait_timeout: "{{ _awxbackup_config.timeout | int }}"
|
||||
wait: true
|
||||
loop: "{{ _awxbackup_all_backups.resources }}"
|
||||
loop_control:
|
||||
label: "{{ item.name }}"
|
||||
when: >
|
||||
when: >-
|
||||
(_awxbackup_now | int)
|
||||
- ((item.metadata.creationTimestamp | to_datetime('%Y-%m-%dT%H:%M:%S%z')).strftime('%s') | int)
|
||||
> ((_awxbackup_config.keep_days | int) * 86400)
|
||||
|
|
|
|||
|
|
@ -5,10 +5,10 @@ metadata:
|
|||
name: awx
|
||||
spec:
|
||||
# These parameters are designed for use with:
|
||||
# - AWX Operator: 0.23.0
|
||||
# https://github.com/ansible/awx-operator/blob/0.23.0/README.md
|
||||
# - AWX: 21.2.0
|
||||
# https://github.com/ansible/awx/blob/21.2.0/INSTALL.md
|
||||
# - AWX Operator: 0.24.0
|
||||
# https://github.com/ansible/awx-operator/blob/0.24.0/README.md
|
||||
# - AWX: 21.3.0
|
||||
# https://github.com/ansible/awx/blob/21.3.0/INSTALL.md
|
||||
|
||||
admin_user: admin
|
||||
admin_password_secret: awx-admin-password
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ secretGenerator:
|
|||
literals:
|
||||
- password=Ansible123!
|
||||
|
||||
# Temporary workaround to suppress errors from AWX Operator 0.23.0.
|
||||
# Temporary workaround to suppress errors from AWX Operator 0.21.0.
|
||||
# Refer: https://github.com/kurokobo/awx-on-k3s/issues/74
|
||||
- name: redhat-operators-pull-secret
|
||||
files:
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@ Typical solutions are one of the following:
|
|||
ee_resource_requirements: {} 👈👈👈
|
||||
```
|
||||
|
||||
- You can specify more specific value for each containers. Refer [official documentation](https://github.com/ansible/awx-operator/blob/0.23.0/README.md#containers-resource-requirements) for details.
|
||||
- You can specify more specific value for each containers. Refer [official documentation](https://github.com/ansible/awx-operator/blob/0.24.0/README.md#containers-resource-requirements) for details.
|
||||
- In this way you can run AWX with fewer resources, but you may encounter performance issues.
|
||||
|
||||
### The Pod is `Pending` with "1 pod has unbound immediate PersistentVolumeClaims." event
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ The table below maps the AWX Operator versions and bundled AWX versions.
|
|||
|
||||
| AWX Operator | AWX |
|
||||
| - | - |
|
||||
| 0.24.0 | 21.3.0 |
|
||||
| 0.23.0 | 21.2.0 |
|
||||
| 0.22.0 | 21.1.0 |
|
||||
| 0.21.0 | 21.0.0 |
|
||||
|
|
@ -36,6 +37,10 @@ In the current version of AWX Operator, [there is `image_version` parameter for
|
|||
|
||||
## Appendix: Gather bundled AWX version from AWX Operator
|
||||
|
||||
For AWX Operator 0.23.0 or later (AWX 21.2.0 or later), you can find the bundled version in the release notes on GitHub. See [release notes for AWX Operator](https://github.com/ansible/awx-operator/releases) or [release notes for AWX](https://github.com/ansible/awx/releases).
|
||||
|
||||
If you want to get the bundled version for older versions or by means other than accessing the release notes, try following commands.
|
||||
|
||||
- For AWX Operator **0.15.0 or later**
|
||||
|
||||
```bash
|
||||
|
|
|
|||
Loading…
Reference in a new issue