Skip to content

Commit 8ce6f0a

Browse files
author
Jason Schmidt
authored
feat: add ability to deploy NGINX IC or NGINX Plus IC from reg (#90)
1 parent 3eb3cd0 commit 8ce6f0a

File tree

5 files changed

+123
-105
lines changed

5 files changed

+123
-105
lines changed

bin/start_kube.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,14 +146,18 @@ sleep 5
146146
#
147147
# TODO: Integrate this into the mainline along with logic to work with/without #80
148148
#
149-
# Hack to deploy our secret....
149+
# This logic takes the JWT and transforms it into a secret so we can pull the NGINX Plus IC. If the user is not
150+
# deploying plus (and does not have a JWT) we create a placeholder credential that is used to create a secert. That
151+
# secret is not a valid secret, but it is created to make the logic easier to read/code.
152+
#
150153
if [[ -s "${script_dir}/../extras/jwt.token" ]]; then
151154
JWT=$(cat ${script_dir}/../extras/jwt.token)
152155
echo "Loading JWT into nginx-ingress/regcred"
153156
${script_dir}/../pulumi/python/venv/bin/kubectl create secret docker-registry regcred --docker-server=private-registry.nginx.com --docker-username=${JWT} --docker-password=none -n nginx-ingress --dry-run=client -o yaml > ${script_dir}/../pulumi/python/kubernetes/nginx/ingress-controller-repo-only/manifests/regcred.yaml
154157
else
155158
# TODO: need to adjust so we can deploy from an unauthenticated registry (IC OSS) #81
156-
echo "No JWT found; this will likely fail"
159+
echo "No JWT found; writing placeholder manifest"
160+
${script_dir}/../pulumi/python/venv/bin/kubectl create secret docker-registry regcred --docker-server=private-registry.nginx.com --docker-username=placeholder --docker-password=placeholder -n nginx-ingress --dry-run=client -o yaml > ${script_dir}/../pulumi/python/kubernetes/nginx/ingress-controller-repo-only/manifests/regcred.yaml
157161
fi
158162

159163
# Check for stack info....

docs/getting_started.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ you are not building from source, you do not need to install `make`. By default,
8585

8686
Docker is required because the Ingress Controller is a Docker image and needs Docker to generate the image.
8787

88-
**NOTE**: The kubeconfig deployment option currently requires that a JWT token be used to pull the NGINX plus image from
89-
the nginx.com repository. This will be updated in a future release.
88+
**NOTE**: The kubeconfig deployment option currently only allows you to deploy from a registry. This allows you to
89+
deploy the NGINX IC or the NGINX Plus IC (with a JWT from your F5 account)
9090

9191
#### Kubernetes
9292

docs/status-and-issues.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,23 @@ includes the following:
2020

2121
All of these configurations use Pulumi code within Python as the Infrastructure as Code (IaC) manager.
2222

23-
| K8 Provider | Tested | Infrastructure Support | IC Options | FQDN/IP | Notes |
24-
|-----------------|--------|-----------------------------|-------------------------|-----------------|--------------------------------------------------|
25-
| AWS EKS | Yes | Full Infrastructure Standup | Build, Pull (uses ECR) | Provided | |
26-
| Azure AKS | Yes | Kubeconfig Only (3) | NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | |
27-
| Google GKE | Yes | Kubeconfig Only (3) | NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | |
28-
| MicroK8s | Yes | Kubeconfig Only (3) | NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | Storage, DNS, and Metallb need to be Enabled (4) |
29-
| Harvester/RKE2 | Yes | Kubeconfig Only (3) | NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | Needs Storage, K8 LoadBalancer |
30-
| K3S | Yes | Kubeconfig Only (3) | NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | Needs Storage, K8 LoadBalancer |
31-
| Rancher Desktop | No | Kubeconfig Only (3) | NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | Needs Storage, K8 LoadBalancer |
32-
| Minikube | No | Kubeconfig Only (3) | NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | Needs Storage, K8 LoadBalancer |
23+
| K8 Provider | Tested | Infrastructure Support | IC Options | FQDN/IP | Notes |
24+
|-----------------|--------|-----------------------------|---------------------------------|-----------------|--------------------------------------------------|
25+
| AWS EKS | Yes | Full Infrastructure Standup | Build, Pull (uses ECR) | Provided | |
26+
| Azure AKS | Yes | Kubeconfig Only (3) | NGINX / NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | |
27+
| Google GKE | Yes | Kubeconfig Only (3) | NGINX / NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | |
28+
| MicroK8s | Yes | Kubeconfig Only (3) | NGINX / NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | Storage, DNS, and Metallb need to be Enabled (4) |
29+
| Harvester/RKE2 | Yes | Kubeconfig Only (3) | NGINX / NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | Needs Storage, K8 LoadBalancer |
30+
| K3S | Yes | Kubeconfig Only (3) | NGINX / NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | Needs Storage, K8 LoadBalancer |
31+
| Rancher Desktop | No | Kubeconfig Only (3) | NGINX / NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | Needs Storage, K8 LoadBalancer |
32+
| Minikube | No | Kubeconfig Only (3) | NGINX / NGINX Plus (w/ JWT) (1) | Manual FQDN (2) | Needs Storage, K8 LoadBalancer |
3333

3434
### Notes:
3535
1. The NGINX IC build/deploy process is currently under active development and support for IC will be standardized across
3636
all providers. Follow [#81](https://github.com/nginxinc/kic-reference-architectures/issues/81) and
37-
[#86](https://github.com/nginxinc/kic-reference-architectures/issues/86) for details.
37+
[#86](https://github.com/nginxinc/kic-reference-architectures/issues/86) for details. Currently, for all non-AWS environments
38+
you have the option to specify either NGINX or NGINX Plus as your IC. The later does require an active subscription and a
39+
JWT to be included at build time. Please see the documentation for more details.
3840
2. The process via which the IP and FQDN are created and used is currently under active development, and will be streamlined
3941
and standardized for all providers. Follow [#82](https://github.com/nginxinc/kic-reference-architectures/issues/82) for
4042
details.

0 commit comments

Comments
 (0)