You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Map random local port to port 80 of your workload |`make kind-cluster-setup`| This is less error-prone, but makes it difficult to access your app through the browser. |
78
+
| Map random local port to port 80 of your workload |`make kind-cluster-setup`| This is less error-prone, but makes it difficult to access your app through the browser. Configures hostname operator for NGINX Ingress mode.|
77
79
| Map localhost port 80 to workload |`KIND_CONFIG=kind-config-80.yaml make kind-cluster-create`| If anything else is listening on port 80 (any other web server), this method will fail. If it does succeed, you will be able to browse your app from the browser. |
78
80
81
+
### Gateway API Setup (Optional)
82
+
83
+
As an alternative to NGINX Ingress, you can use Kubernetes Gateway API. NGINX Ingress will be EOL by March 2026, so Gateway API is the recommended approach for new deployments.
| Gateway API with NGINX Gateway Fabric |`make kube-cluster-setup-gateway`| Creates kind cluster with Gateway API support, installs NGINX Gateway Fabric, and sets up all resources. Configures hostname operator for Gateway API mode. Maps ports 8080 (HTTP) and 8443 (HTTPS). |
88
+
89
+
This comprehensive setup target:
90
+
- Creates a kind cluster with port mappings for HTTP (8080) and HTTPS (8443)
91
+
- Installs Gateway API CRDs (v1)
92
+
- Installs NGINX Gateway Fabric controller
93
+
- Configures NodePort service for ports 31437 (HTTP) and 31438 (HTTPS)
94
+
- Creates the Gateway resource (`akash-gateway`)
95
+
- Configures the hostname operator for Gateway API mode
96
+
- Sets up all necessary Akash operators and services
97
+
98
+
You can verify the Gateway is ready:
99
+
```sh
100
+
kubectl get gateway akash-gateway -n akash-gateway
101
+
```
102
+
103
+
Expected output:
104
+
```
105
+
NAME CLASS CLUSTER-IP ADDRESS PROGRAMMED AGE
106
+
akash-gateway nginx 10.96.x.x 10.96.x.x True 1m
107
+
```
108
+
79
109
## Build Akash binaries and initialize network
80
110
81
111
Initialize keys and accounts:
@@ -131,17 +161,35 @@ make query-provider
131
161
To run Provider as a simple binary connecting to the cluster, in a third terminal, run the command:
132
162
133
163
### __t3 Step: 5__
164
+
165
+
**With NGINX Ingress (default):**
134
166
```sh
135
167
make provider-run
136
168
```
137
169
170
+
**With Gateway API:**
171
+
```sh
172
+
make provider-run-gateway
173
+
```
174
+
175
+
The Gateway API mode uses the following flags:
176
+
-`--ingress-mode=gateway-api` - Enable Gateway API instead of NGINX Ingress
177
+
-`--gateway-name=akash-gateway` - Name of the Gateway resource to use
178
+
-`--gateway-namespace=akash-gateway` - Namespace where the Gateway exists
179
+
138
180
Query the provider service gateway for its status:
139
181
140
182
__t1 status__
141
183
```sh
142
184
make provider-status
143
185
```
144
186
187
+
When using Gateway API mode, deployments will create `HTTPRoute` resources instead of `Ingress` resources. You can verify this with:
188
+
189
+
```sh
190
+
kubectl get httproutes -A
191
+
```
192
+
145
193
## Create a deployment
146
194
147
195
Create a deployment from the `main` account with:
@@ -250,6 +298,36 @@ Between the first and second step, the prior deployment's containers will contin
250
298
251
299
Akash Groups are translated into Kubernetes Deployments, this means that only a few fields from the Akash SDL are mutable. For example `image`, `command`, `args`, `env` and exposed ports can be modified, but compute resources and placement criteria cannot.
252
300
301
+
## Gateway API vs NGINX Ingress
302
+
303
+
### Comparison
304
+
305
+
| Feature | NGINX Ingress (default) | Gateway API |
0 commit comments