8000 Create documentation for pulling docker image from internal registry … · nginx/kubernetes-ingress@788cbd5 · GitHub
[go: up one dir, main page]

Skip to content

Commit 788cbd5

Browse files
authored
Create documentation for pulling docker image from internal registry (#1765)
1 parent c818313 commit 788cbd5

7 files changed

+121
-16
lines changed

docs/content/app-protect/installation.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,31 @@ This document provides an overview of the steps required to use NGINX App Protec
1212

1313
You can also [install the Ingress Controller with App Protect by using Helm](/nginx-ingress-controller/installation/installation-with-helm/). Use the `controller.appprotect.*` parameters of the chart.
1414

15+
## Pull the Docker Image
16+
17+
Take the steps below to pull the Docker image that you'll use to deploy NGINX Ingress Controller with App Protect in Kubernetes.
18+
19+
- Follow the steps to [Pull the NGINX Ingress Controller image](/nginx-ingress-controller/installation/pulling-ingress-controller-image).
20+
21+
For NGINX Plus Ingress Controller with App Protect, pull from `docker-registry.nginx.com/nginx-ic-nap/nginx-plus-ingress`:
22+
```
23+
$ docker pull docker-registry.nginx.com/nginx-ic-nap/nginx-plus-ingress:1.12.0
24+
```
25+
26+
`1.12.0` will pull down the Debian based image. The other available image tag is `1.12.0-ubi` for the UBI based image.
27+
28+
To list the available image tags for the repository, you can use the Docker registry API, e.g.:
29+
```
30+
$ curl https://docker-registry.nginx.com/v2/nginx-ic-nap/nginx-plus-ingress/tags/list --key <path-to-client.key> --cert <path-to-client.cert> | jq
31+
{
32+
"name": "nginx-ic-nap/nginx-plus-ingress",
33+
"tags": [
34+
"1.12.0-ubi",
35+
"1.12.0"
36+
]
37+
}
38+
```
39+
1540
## Build the Docker Image
1641

1742
Take the steps below to create the Docker image that you'll use to deploy NGINX Ingress Controller with App Protect in Kubernetes.

docs/content/installation/building-ingress-controller-image.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
title: Building the Ingress Controller Image
33
description:
4-
weight: 1600
4+
weight: 2100
55
doctypes: [""]
66
toc: true
77
---
88

9-
This document explains how to build an Ingress Controller image. Note that for NGINX, we provide the image though [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/). For NGINX Plus, you need to build the image.
9+
This document explains how to build an Ingress Controller image using the source code. You can also use pre-built images: please see [here](/nginx-ingress-controller/installation/pulling-ingress-controller-image) for details on how to pull the NGINX Ingress Controller based on NGINX Plus from the F5 Docker registry; for NGINX Ingress Controller based on NGINX OSS, we provide the images through [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/).
1010

1111
## Prerequisites
1212

docs/content/installation/installation-with-helm.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ This document describes how to install the NGINX Ingress Controller in your Kube
1515
- Helm 3.0+.
1616
- Git.
1717
- If you’d like to use NGINX Plus:
18-
- Build an Ingress controller image with NGINX Plus and push it to your private registry by following the instructions from [here](/nginx-ingress-controller/installation/building-ingress-controller-image).
18+
- Pull an Ingress controller image with NGINX Plus and push it to your private registry by following the instructions from [here](/nginx-ingress-controller/installation/pulling-ingress-controller-image).
19+
- Alternatively, you can build an Ingress controller image with NGINX Plus and push it to your private registry by following the instructions from [here](/nginx-ingress-controller/installation/building-ingress-controller-image).
1920
- Update the `controller.image.repository` field of the `values-plus.yaml` accordingly.
2021

2122
## Getting the Chart Sources

docs/content/installation/installation-with-manifests.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ This document describes how to install the NGINX Ingress Controller in your Kube
1515

1616
1. Make sure you have access to the Ingress controller image:
1717
* For NGINX Ingress controller, use the image `nginx/nginx-ingress` from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress).
18-
* For NGINX Plus Ingress controller, build your own image and push it to your private Docker registry by following the instructions from [here](/nginx-ingress-controller/installation/building-ingress-controller-image).
18+
* For NGINX Plus Ingress controller, see [here](/nginx-ingress-controller/installation/pulling-ingress-controller-image) for details on how to pull the image from the F5 Docker registry.
19+
* It is also possible to build your own image and push it to your private Docker registry by following the instructions from [here](/nginx-ingress-controller/installation/building-ingress-controller-image).
1920
9E12 1. Clone the Ingress controller repo and change into the deployments folder:
2021
```
2122
$ git clone https://github.com/nginxinc/kubernetes-ingress/

docs/content/installation/installation-with-operator.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,12 @@ toc: true
1010

1111
This document describes how to install the NGINX Ingress Controller in your Kubernetes cluster using the NGINX Ingress Operator.
1212

13-
**Note: an NGINX Ingress Operator version compatible with the 1.12 NGINX Ingress Controller release is not available yet. We will update this document and remove this note once we publish a compatible Operator version.**
14-
1513
## Prerequisites
1614

1715
1. Make sure you have access to the Ingress Controller image:
1816
* For NGINX Ingress Controller, use the image `nginx/nginx-ingress` from [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress).
19-
* For NGINX Plus Ingress Controller, build your own image and push it to your private Docker registry by following the instructions from [here](/nginx-ingress-controller/installation/building-ingress-controller-image).
17+
* For NGINX Plus Ingress controller, see [here](/nginx-ingress-controller/installation/pulling-ingress-controller-image) for details on how to pull the image from the F5 Docker registry.
18+
* It is also possible to build your own image and push it to your private Docker registry by following the instructions from [here](/nginx-ingress-controller/installation/building-ingress-controller-image).
2019
1. Install the NGINX Ingress Operator following the [instructions](https://github.com/nginxinc/nginx-ingress-operator/blob/master/docs/installation.md).
2120

2221
## 1. Create the NginxIngressController manifest
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
title: Pulling the Ingress Controller Image
3+
description:
4+
weight: 1600
5+
doctypes: [""]
6+
toc: true
7+
---
8+
9+
This document explains how to pull an NGINX Plus Ingress Controller image from the F5 Docker registry. Please see [here](/nginx-ingress-controller/installation/building-ingress-controller-image) for information on how to build an Ingress Controller image using the source code and your NGINX Plus license certificate and key. Note that for NGINX Ingress Controller based on NGINX OSS, we provide the image through [DockerHub](https://hub.docker.com/r/nginx/nginx-ingress/).
10+
11+
## Prerequisites
12+
13+
Before you can pull the image, make sure that the following software is installed on your machine:
14+
* [Docker](https://www.docker.com/products/docker) v18.09+
15+
* For NGINX Plus, you must hav 9E12 e the NGINX Plus Ingress Controller license -- the certificate (`nginx-repo.crt`) and the key (`nginx-repo.key`).
16+
17+
## Pulling the Image using Docker and Pushing It to the Private Registry
18+
19+
1. First, configure the Docker environment to use certificate-based client-server authentication with the F5 Container registry - `docker-registry.nginx.com`.
20+
To do so in a Linux based environment, create a `docker-registry.nginx.com` directory under `/etc/docker/certs.d` and create a certificate `client.cert` (using `nginx-repo.crt` - please note that the certificate MUST have the `.cert` suffix, not `.crt`) and a key `client.key` (using `nginx-repo.key`). See [this document](https://docs.docker.com/engine/security/certificates/) for more details.
21+
22+
```
23+
# mkdir /etc/docker/certs.d/docker-registry.nginx.com
24+
# cp nginx-repo.crt /etc/docker/certs.d/docker-registry.nginx.com/client.cert
25+
# cp nginx-repo.key /etc/docker/certs.d/docker-registry.nginx.com/client.key
26+
```
27+
28+
> **Note**: The preceding example is operating-system specific and is for illustrative purposes only. You should consult your operating system documentation for creating an os-provided bundled certificate chain. For example, to configure this for Docker Desktop for Mac or Docker Desktop for Windows, see [this document](https://docs.docker.com/docker-for-mac/#add-client-certificates) or [this document](https://docs.docker.com/docker-for-windows/#how-do-i-add-client-certificates) for more details.
29+
30+
2. Use docker to pull the required image from `docker-registry.nginx.com`.
31+
For NGINX Plus Ingress Controller, pull from `docker-registry.nginx.com/nginx-ic/nginx-plus-ingress`:
32+
```
33+
$ docker pull docker-registry.nginx.com/nginx-ic/nginx-plus-ingress:1.12.0
34+
```
35+
36+
`1.12.0` will pull down the Debian based image. Other available image tags are `1.12.0-alpine` for the Alpine based image, `1.12.0-ot` for the Debian based image with OpenTracing, and `1.12.0-ubi` for the UBI based image.
37+
38+
For NGINX Plus Ingress Controller with App Protect, pull from `docker-registry.nginx.com/nginx-ic-nap/nginx-plus-ingress`:
39+
```
40+
$ docker pull docker-registry.nginx.com/nginx-ic-nap/nginx-plus-ingress:1.12.0
41+
```
42+
43+
`1.12.0` will pull down the Debian based image. The other available image tag is `1.12.0-ubi` for the UBI based image.
44+
45+
To list the available image tags for the repositories, you can use the Docker registry API, e.g.:
46+
```
47+
$ curl https://docker-registry.nginx.com/v2/nginx-ic/nginx-plus-ingress/tags/list --key <path-to-client.key> --cert <path-to-client.cert> | jq
48+
{
49+
"name": "nginx-ic/nginx-plus-ingress",
50+
"tags": [
51+
"1.12.0-alpine",
52+
"1.12.0-ot",
53+
"1.12.0-ubi",
54+
"1.12.0"
55+
]
56+
}
57+
58+
$ curl https://docker-registry.nginx.com/v2/nginx-ic-nap/nginx-plus-ingress/tags/list --key <path-to-client.key> --cert <path-to-client.cert> | jq
59+
{
60+
"name": "nginx-ic-nap/nginx-plus-ingress",
61+
"tags": [
62+
"1.12.0-ubi",
63+
"1.12.0"
64+
]
65+
}
66+
```
67+
68+
3. Tag and push the image to your private registry.
69+
Make sure to run the `docker login` command first to log in to the registry.
70+
```
71+
$ docker tag docker-registry.nginx.com/nginx-ic/nginx-plus-ingress:1.12.0 <my-docker-registry>/nginx-ic/nginx-plus-ingress:1.12.0
72+
$ docker push <my-docker-registry>/nginx-ic/nginx-plus-ingress:1.12.0
73+
```
74+
75+
or for NGINX App Protect enabled image
76+
```
77+
$ docker tag docker-registry.nginx.com/nginx-ic-nap/nginx-plus-ingress:1.12.0 <my-docker-registry>/nginx-ic-nap/nginx-plus-ingress:1.12.0
78+
$ docker push <my-docker-registry>/nginx-ic-nap/nginx-plus-ingress:1.12.0
79+
```

docs/content/technical-specifications.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,17 @@ The supported architecture is x86-64.
3838
All images include NGINX Plus R24.
3939
The supported architecture is x86-64.
4040

41-
NGINX Plus images are not available through DockerHub.
41+
NGINX Plus images are available through the F5 Container registry `docker-registry.nginx.com` - see [Pulling the NGINX Ingress Controller image](/nginx-ingress-controller/installation/pulling-ingress-controller-image).
4242

4343
{{% table %}}
44-
|Name | Base image | Third-party modules |
45-
| ---| ---| --- |
46-
|Alpine-based image | ``alpine:3.13`` | |
47-
|Debian-based image | ``debian:buster-slim`` | |
48-
|Debian-based image with Opentracing | ``debian:buster-slim`` | NGINX Plus OpenTracing module, C++ OpenTracing binding for Jaeger 0.4.2 |
49-
|Ubi-based image | ``registry.access.redhat.com/ubi8/ubi:8.3`` | |
50-
|Debian-based image with App Protect | ``debian:buster-slim`` | NGINX Plus App Protect module |
51-
|Ubi-based image with App Protect | ``registry.access.redhat.com/ubi7/ubi`` | NGINX Plus App Protect module |
44+
|Name | Base image | Third-party modules | F5 Container Registry Image |
45+
| ---| ---| --- | --- |
46+
|Alpine-based image | ``alpine:3.13`` | | `nginx-ic/nginx-plus-ingress:1.12.0-alpine` |
47+
|Debian-based image | ``debian:buster-slim`` | | `nginx-ic/nginx-plus-ingress:1.12.0` |
48+
|Debian-based image with Opentracing | ``debian:buster-slim`` | NGINX Plus OpenTracing module, C++ OpenTracing binding for Jaeger 0.4.2 | `nginx-ic/nginx-plus-ingress:1.12.0-ot` |
49+
|Ubi-based image | ``redhat/ubi8-minimal`` | | `nginx-ic/nginx-plus-ingress:1.12.0-ubi` |
50+
|Debian-based image with App Protect | ``debian:buster-slim`` | NGINX Plus App Protect module | `nginx-ic-nap/nginx-plus-ingress:1.12.0` |
51+
|Ubi-based image with App Protect | ``registry.access.redhat.com/ubi7/ubi`` | NGINX Plus App Protect module | `nginx-ic-nap/nginx-plus-ingress:1.12.0-ubi` |
5252
{{% /table %}}
5353

5454
### Custom Images

0 commit comments

Comments
 (0)
0