AWX on Single Node K3s
Requirements
- Computing resources
- 2 CPUs and 4 GiB RAM minimum.
Set up a K3s Kubernetes Cluster on Ubuntu/Debian
Install the K3s using the following command.
curl -sfL https://get.k3s.io | sh -Verify if it is running or not
systemctl status k3ssee all Kubernetes objects deployed in the cluster in the kube-system namespace. kubectl is installed automatically during the K3s installation
sudo kubectl get all -n kube-systemInstall AWX Operator
cd ~
git clone https://github.com/kurokobo/awx-on-k3s.git
cd awx-on-k3s
git checkout 2.19.1Then invoke kubectl apply -k operator to deploy AWX Operator.
kubectl apply -k operatorThe AWX Operator will be deployed to the namespace awx.
kubectl -n awx get allNAME READY STATUS RESTARTS AGE
pod/awx-operator-controller-manager-687b856498-kckzt 2/2 Running 0 16s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/awx-operator-controller-manager-metrics-service ClusterIP 10.43.150.245 <none> 8443/TCP 16s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/awx-operator-controller-manager 1/1 1 1 16s
NAME DESIRED CURRENT READY AGE
replicaset.apps/awx-operator-controller-manager-68d787cfbd 1 1 1 16sPrepare required files to deploy AWX
Generate a Self-Signed certificate.
AWX_HOST="awx.local.com"
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out ./base/tls.crt -keyout ./base/tls.key -subj "/CN=${AWX_HOST}/O=${AWX_HOST}" -addext "subjectAltName = DNS:${AWX_HOST}"Modify hostname in base/awx.yaml.
...
spec:
...
ingress_type: ingress
ingress_hosts:
- hostname: awx.local.com πππ
tls_secret: awx-secret-tls
...Modify the two password entries in base/kustomization.yaml.
...
- name: awx-postgres-configuration
type: Opaque
literals:
- host=awx-postgres-15
- port=5432
- database=awx
- username=awx
- password=halamadrid
- type=managed
- name: awx-admin-password
type: Opaque
literals:
- password=dimakokab # password awx platform
...Prepare directories for Persistent Volumes defined in base/pv.yaml.
sudo mkdir -p /data/postgres-15
sudo mkdir -p /data/projects
sudo chown 1000:0 /data/projectsDeploy AWX
Deploy AWX, this takes few minutes to complete.
kubectl apply -k baseTo monitor the progress of the deployment, check the logs of deployments/awx-operator-controller-manager:
kubectl -n awx logs -f deployments/awx-operator-controller-manager
# display namespace awx
kubectl -n awx get awx,all,ingress,secretsNow your AWX is available at https://awx.local.com/ or the hostname you specified π
