> For the complete documentation index, see [llms.txt](https://learn.farizizwan.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.farizizwan.com/devops-and-devsecops/kubernetes/poc-lab/awx-ansible-tower-deployment-on-kubernetes/lab-3-ingress-networking-and-connectivity-via-nginx.md).

# Lab 3 -  Ingress Networking & Connectivity via Nginx

### **Lab Objective**

In this lab we will establish Ingress networking via Nginx Ingress Controller so we are able to access the AWX from the FQDN address.&#x20;

### Deployment Steps

**Step 1: Create Nginx Ingress**

Create <mark style="color:yellow;">`awx-nginx-ingress.yml`</mark>file with the following content

````yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: awx-ingress
  namespace: awx
spec:
  ingressClassName: nginx
  rules:
  - host: tower.home-cloud01.lab
    http:
      paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: awx-instance-serivce
              port:
                number: 30000
```
````

**Step 2: Ensure Minikube has Nginx Ingress Classes**

`$ minikube addons enable ingress`

<figure><img src="/files/HZ0xELCBLa10gMsYcskY" alt=""><figcaption><p>Once enable, we shall see nginx available in Ingress Classes</p></figcaption></figure>

**Step 3: Deploy Ingress Nginx.**

**Run below command,**

$ kubectl apply -f awx-nginx-ingress.yml

Above command will create below Ingress object

<figure><img src="/files/u81vRkGgn9WPD6oBQSNH" alt=""><figcaption><p>awx-nginx-ingress object created</p></figcaption></figure>

To see more details about our HTTP/HTTPS network routing, we shall be able to describe the object by running the following command.

`$ kubectl describe ingress-nginx`

<figure><img src="/files/SrUpKspipodyRayKvaPz" alt=""><figcaption><p>More details can be seen when we describe the object</p></figcaption></figure>

As you can see on the above image, my specified subdomain tower.home-cloud01.lab was routed to the backend service - awx-nginx-service (the AWX service) on port 80.&#x20;

#### Step 4: Modify hosts file

We will need to modify hosts file in our host server.&#x20;

`$ kubectl get ingress awx-nginx-ingress -n awx | grep -v NAME | awk -F' ' '{print $4 " " $3 }' | sudo tee -a /etc/hosts`

Verify the host has been added into the `/etc/hosts` file

<figure><img src="/files/3LsLdp41GdsNaaKYfGkd" alt=""><figcaption><p>my /etc/hosts file</p></figcaption></figure>

**Step 5: Verify the connectivity.**

So now we have the Ingress setup for our network routes. Let's test the connection.

`$ curl -L -q http://tower.home-cloud01.lab/api/v2/ping 2>/dev/null`

If you get the same response as per the following image, then you are in a good conditions.

<figure><img src="/files/tS1pCSqkFv6NnjkBb5YZ" alt=""><figcaption><p>Ping response via the Ping API's</p></figcaption></figure>

**Congratulations!** Now you have the AWX up and runninng in your Kubernetes cluster.

Next we will explore on the Day 2 operations where we will access the AWX from the Web console.

*\~End of Lab 3 -* Ingress Networking & Connectivity via Ngin&#x78;*\~*

[*Continue to Lab 4: AWX Web Console & accessibility on LAN*](/devops-and-devsecops/kubernetes/poc-lab/awx-ansible-tower-deployment-on-kubernetes/lab-4-awx-web-console-and-accessibility-on-lan.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://learn.farizizwan.com/devops-and-devsecops/kubernetes/poc-lab/awx-ansible-tower-deployment-on-kubernetes/lab-3-ingress-networking-and-connectivity-via-nginx.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
