> For the complete documentation index, see [llms.txt](https://docs.aurras.hugobyte.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aurras.hugobyte.com/dependencies/openwhisk/deployment/setup-kubernetes/environment/ubuntu.md).

# Ubuntu

### Deployment Guide

1. Clone [aurras-deployment-kubernetes](https://github.com/HugoByte/aurras-deployment-kubernetes) with submodules

```
git clone https://github.com/HugoByte/aurras-deployment-kubernetes --recurse-submodules
```

&#x20;  2\. Navigate to openwhisk setup directory

```
cd aurras-deployment-kubernetes/openwhisk
```

&#x20;  3\. Label the two worker nodes so that one is reserved for the invoker and the other will be used to run the rest of the OpenWhisk system.

```
kubectl label node kind-worker openwhisk-role=core
kubectl label node kind-worker2 openwhisk-role=invoker
```

&#x20;  4\. Get InternalIP of the cluster

```
kubectl describe node kind-worker | grep InternalIP: | awk '{print $2}'
```

&#x20;  5\. Creating mycluster.yaml with **apiHostName** as InternalIP of the nodes&#x20;

{% hint style="info" %}
Assuming the IP returned from the above step 4 as "192.168.65.3"
{% endhint %}

```
whisk:
  ingress:
    type: NodePort
    apiHostName: 192.168.65.3
    apiHostPort: 31001

nginx:
  httpsNodePort: 31001
```

&#x20;  6\. Create a namespace

```
kubectl create namespace aurras
```

&#x20;   7\. Deploy Openwhisk using helm

```
helm install openwhisk ./helm/openwhisk -n aurras -f mycluster.yaml
```

&#x20; 8\. Get the summary of installation using

```
helm status openwhisk -n aurras
```
