AWX Operator won't create in a healthy state using the default request and limits

** I have tried to deploy the AWX Operator to GKE to no avail using the Helm chart and following the documentation site instructions. So decided to try a customization (check step 2 of steps to reproduce) after again tweaking all the container request and limit values (otherwise all pods would just get OOMKilled) I get everything running green except that the UI is not being served. I get the default nginx test page.**.

  • Give a clear explanation (and steps to reproduce the issue where possible)
  1. Forked awx operator repo.
  2. Modified the ingress definition as explained here ingress_path needs a * for GKE ingress #948
  3. Created my own awx-operator docker image and uploaded to Artifact Registry.
  4. Run make gen-resources | tee /tmp/operator.yaml
  5. edit /tmp/operator.yaml to change the image: reference to point to the one I just pushed
  6. deploy /tmp/operator.yaml to Autopilot GKE using kubectl
  7. Create an AWX resource
  • Include the version(s) of the relevant software tools, libraries, collections etc
    GKE version: 1.28.3-gke.1286000
    AWX Operator version: 2.15.0
    AWX version: 24.2.0
  • Include relevant logs from the issue

Expected results

AWX installed in GKE and UI exposed through Internal Load Balancer.

Actual results

I get everything running green except that the UI is not being served. I get the default nginx test page.

Here’s my AWX spec yaml:

apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: gitops-awx
spec:
postgres_configuration_secret: acme-postgres-configuration
service_type: NodePort
service_annotations: |
cloud.google.com/neg: '{"ingress": true}'
ingress_type: ingress
ingress_annotations: |
kubernetes.io/ingress.class: gce-internal
kubernetes.io/ingress.regional-static-ip-name: awx-ingress-ip
ingress_hosts:
- hostname: awx.acme.org
ingress_path: /*
ingress_path_type: ImplementationSpecific
task_resource_requirements:
requests:
cpu: 1000m
memory: 2000Mi
ephemeral-storage: 100M
limits:
cpu: 2000m
memory: 4Gi
ephemeral-storage: 500M
web_resource_requirements:
requests:
cpu: 1000m
memory: 1.5Gi
limits:
cpu: 1500m
memory: 4Gi
redis_resource_requirements:
requests:
cpu: 250m
memory: 256Mi
limits:
cpu: 1000m
memory: 4Gi
rsyslog_resource_requirements:
requests:
cpu: 200m
memory: 256Mi
limits:
cpu: 1000m
memory: 2Gi
init_container_resource_requirements:
init_container_resource_requirements:
requests:
cpu: 200m
memory: 256Mi
limits:
cpu: 1000m
memory: 2Gi

After so many cycles of trial and error with the request and limits, I decided to do a clean install, deleted operator, awx, CRDs and namespace. It made no difference. I get this page every time:

I tried accessing the following paths:
/#/login
/api/
/
I still get the test page. I also made a port-forward to the k8s Service using kubectl and curled it, I still get the test page.

Operator Logs

No errors, config manager runs through all install playbooks. No pod restarts. My external CloudSQL postgres DB is correctly populated with the AWX DB schema and tables.