AWX MiniKube Install
Installing AWX using MiniKube was pretty simple.
Install minikube:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm
sudo rpm -Uvh minikube-latest.x86_64.rpm
Install podman:
Start a cluster:
minikube start --cpus=4 --memory=6g --addons=ingress
Checl node status:
minikube kubectl -- get nodes
minikube kubectl -- get pods -A
Create an alias for easier useage:
alias kubectl="minikube kubectl --"
Clone the awx operator repository:
git clone git@github.com:ansible/awx-operator.git
Get the current tag:
Check out the latest tag:
Create a kubctl wrapper script in your PATH
sudo tee /usr/local/bin/kubectl > /dev/null << 'EOF' #!/bin/sh exec minikube kubectl -- "$@" EOF sudo chmod +x /usr/local/bin/kubectl
Run the make target:
make deploy KUBECTL="minikube kubectl --"
Create kustomization.yaml, fill in tag from earlier:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
# Find the latest tag here: https://github.com/ansible/awx-operator/releases
- github.com/ansible/awx-operator/config/default?ref=2.9.0
# Set the image tags to match the git version from above
images:
- name: quay.io/ansible/awx-operator
newTag: 2.9.0
# Specify a custom namespace in which to install AWX
namespace: awx
Install the manifest:
Verify the pod is running:
Set the namespace to awx so we don’t have to keep using -n awx:
kubectl config set-context --current --namespace=awx
Create the file awx-demo.yml with the following content:
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx-demo
spec:
service_type: nodeport
Change awx-demo to the name you want for your project.
Add this file to the resources section of your kustomization.yaml:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
# Find the latest tag here: https://github.com/ansible/awx-operator/releases
- github.com/ansible/awx-operator/config/default?ref=2.9.0
- awx-demo.yml
# Set the image tags to match the git version from above
images:
- name: quay.io/ansible/awx-operator
newTag: 2.9.0
# Specify a custom namespace in which to install AWX
namespace: awx
Apply changes to create the AWX instance in your cluster:
After a few minutes, verify the new resources are created, grab the node port for later:
kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator"
kubectl get svc -l "app.kubernetes.io/managed-by=awx-operator"
Check logs for current status:
kubectl logs -f deployments/awx-operator-controller-manager -c awx-manager
Check the pods status:
NAME READY STATUS RESTARTS AGE
awx-demo-postgres-13-0 1/1 Running 0 7m7s
awx-demo-task-79d8f64ffd-pv5xb 4/4 Running 0 6m42s
awx-demo-web-c6d789748-nt4n7 3/3 Running 0 5m20s
awx-operator-controller-manager-76fbc57b56-8fwvm 1/2 ImagePullBackOff 0 17m
Get the URL:
minikube service awx-demo-service -n awx
┌───────────┬──────────────────┬─────────────┬───────────────────────────┐
│ NAMESPACE │ NAME │ TARGET PORT │ URL │
├───────────┼──────────────────┼─────────────┼───────────────────────────┤
│ awx │ awx-demo-service │ http/80 │ http://192.168.49.2:32597 │
└───────────┴──────────────────┴─────────────┴───────────────────────────┘
🎉 Opening service awx/awx-demo-service in default browser...
Get the admin password using (<resourcename>-admin-password):
kubectl get secret awx-demo-admin-password -o jsonpath="{.data.password}" | base64 --decode ; echo