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
@@ -18,51 +18,151 @@ This document explains how to use the NGINX Plus Ingress Controller image from t
18
18
* For NGINX Ingress Controller, you must have the NGINX Ingress Controller subscription -- download the NGINX Plus Ingress Controller (per instance) JWT access token from [MyF5](https://my.f5.com).
19
19
* To list the available image tags using the Docker registry API, you will also need to download the NGINX Plus Ingress Controller (per instance) certificate (`nginx-repo.crt`) and the key (`nginx-repo.key`) from [MyF5](https://my.f5.com).
20
20
21
+
## Order of steps to pull NGINX Ingress controller from F5 registry
22
+
23
+
1. Decide on what NGINX Ingress controller image you want to use. [NGINX Ingress controller images](https://docs.nginx.com/nginx-ingress-controller/technical-specifications/#images-with-nginx-plus"Available NGINX Ingress controller images")
24
+
2. Log into MyF5 portal. [MyF5 portal login](https://myf5.com/"MyF5 portal login"). Navigate to your subscription details, and locate your .cert, .key and .JWT file to download.
25
+
3. Download the JWT token from the `MyF5` portal.
26
+
4. Create kubernetes secret using the JWT token that is provided in the MyF5 portal.
27
+
You can `cat` the contents of the JWT token and then store the output to use in the following steps. Make sure that there are no additional characters or extra whiespace that might have been accidently added. This will break authorization and prevent the NGINX Ingress controller image from being downloaded successfully.
28
+
5. Modify your deployment (manifest or helm) to use the kubernetes secret created in step 4.
29
+
6. Deploy NGINX Ingress controller into your kubernetes cluster and verify successful installation.
30
+
31
+
21
32
## Using the JWT token in a Docker Config Secret
22
33
23
-
1. Create a `docker-registry` secret on the cluster using the JWT token as the username and `none` for password (password is unused). The name of the docker server is `private-registry.nginx.com`. Optionally namespace the secret.
34
+
1. Create a kubernetes `docker-registry` secret type, on the cluster using the JWT token as the username and `none` for password (password is unused). The name of the docker server is `private-registry.nginx.com`.
In the above command, it is important that the `--docker-username=<JWT Token>` contains the contents of the token and is not pointing to the token itself. Ensure that when you copy the contents of the JWT token, there are no additional characters or extra whitepaces. This can invalidate the token and cause 401 errors when trying to authenticate to the registry.
28
40
29
41
2. Confirm the details of the created secret by running:
30
42
31
43
```bash
32
44
kubectl get secret regcred --output=yaml
33
45
```
34
46
35
-
3. You can now add this secret to a deployment spec or to a service account to apply to all deployments for a given SA spec. See the [Create a Pod that uses your Secret](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-pod-that-uses-your-secret) and [Add ImagePullSecrets to a service account](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account) documentation for more details.
47
+
3. We are now going to use our newly created kubernetes secret in our `helm` and `manifest` deployments.
48
+
49
+
50
+
### Manifest deployment
51
+
52
+
[Installling with Manfiets](https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-manifests/)
Notice `imagePullSecrets` and `containers.image` lines to represent our kubernetes secret as well as the registry and version of the NGINX Ingress controller we are going to deploy.
73
+
74
+
### Helm install method
75
+
76
+
If you are using `helm` to install, you can install using two methods. First is the `helm` sources method. [Helm sources install](https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-helm/#managing-the-chart-via-sources "helm source install")
77
+
78
+
1. Clone the nginxinc/kubernetes-ingress repository
79
+
2. Change directory into deployents/helm-chart of the recently cloned repo.
80
+
3. Modify the `values.yaml` file.
81
+
82
+
We want to set a few lines for NGINX Plus Ingress controller to be deployed.
83
+
84
+
1. Change to `nginxplus`
85
+
2. Specify NGINX Ingress controller image to use.
86
+
3. Specify a `imagePullSecretName` to pull from the private registry.
87
+
88
+
89
+
### Ensure nginxplus is set to `true`
90
+
```yaml
91
+
## Deploys the Ingress Controller for NGINX Plus.
92
+
nginxplus: true
93
+
```
94
+
95
+
### Specify the image to be used for deployment
96
+
97
+
```yaml
98
+
image:
99
+
## The image repository of the Ingress Controller.
### Verify that NGINX Ingress controller was installed successfull
131
+
132
+
TODO: Add install output of successful install
133
+
134
+
135
+
136
+
## Checking the validation that the .crts/key and .jwt are able to successfully authenticate to the repo to pull NGINX Ingress controller images:
36
137
37
-
4. Update the deployment spec with the chosen image path. Choose the image from the [available images]({{< relref "/technical-specifications.md#images-with-nginx-plus" >}}).
138
+
You can also use the certificate and key from the MyF5 portal and the Docker registry API to list the available image tags for the repositories, e.g.:
38
139
39
-
5. You can use the certificate and key from the MyF5 portal and the Docker registry API to list the available image tags for the repositories, e.g.:
0 commit comments