# Setting up Your Ingress

## Prerequisites

To expose your Minikube cluster and test your deployment of the services works as expected you will need to ensure that you have the Minikube ingress service enabled so you can access via the tunnel command. If issues occur using the default NodePort a patch can be applied to use either a LoadBalancer or ClusterIP using the following command

`kubectl patch svc ingress-nginx-controller -n ingress-nginx -p '{"spec": {"type": "<LoadBalancer/ClusterIP>"}}'`

## Setting up Your Ingress

If planning to run everything via localhost as is currently done in the example ingress provided there are some additional considerations required:

1. Edit your /etc/hosts file to ensure that your localhost (127.0.0.1) can resolve to the domains you plan to use e.g. be.localhost, oc.localhost, pdf.localhost
2. Install a root CA for you system to avoid any network certificate errors as the different services attempt to communicate with each other and create a tls certificate and key file for use with the cluster
3. The name space you will deploy your ingress service to (testing on multiple different Minikube images has proven that the default namespace is not suitable to have deploy the ingress and so may lead to issues) in the example file we have choose the govtool namespace which has been referenced in the yaml files for the other services
4. Make any desired modifications for the services and domains you which to test with
5. Use `kubectl apply` to start your ingress service


---

# Agent Instructions: 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:

```
GET https://docs.gov.tools/cardano-govtool/run-govtool-locally/setting-up-your-ingress.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
