diff --git a/docs/content/includes/installation/create-common-resources.md b/docs/content/includes/installation/create-common-resources.md index 6645a3d798..b22e876303 100644 --- a/docs/content/includes/installation/create-common-resources.md +++ b/docs/content/includes/installation/create-common-resources.md @@ -8,22 +8,20 @@ In this section, you'll create resources that most NGINX Ingress Controller inst By default, the server returns a _404 Not Found_ page for all requests when no ingress rules are set up. Although we provide a self-signed certificate and key for testing purposes, we recommend using your own certificate. - To begin, make sure you're in the `kubernetes-ingress/deployment` directory, and then run: - ```shell - kubectl apply -f ../examples/shared-examples/default-server-secret/default-server-secret.yaml + kubectl apply -f examples/shared-examples/default-server-secret/default-server-secret.yaml ``` 2. Create a ConfigMap to customize your NGINX settings: ```shell - kubectl apply -f common/nginx-config.yaml + kubectl apply -f deployments/common/nginx-config.yaml ``` 3. Create an `IngressClass` resource. NGINX Ingress Controller won't start without an `IngressClass` resource. ```shell - kubectl apply -f common/ingress-class.yaml + kubectl apply -f deployments/common/ingress-class.yaml ``` If you want to make this NGINX Ingress Controller instance your cluster's default, uncomment the `ingressclass.kubernetes.io/is-default-class` annotation. This action will auto-assign `IngressClass` to new ingresses that don't specify an `ingressClassName`. diff --git a/docs/content/includes/installation/manifests/daemonset.md b/docs/content/includes/installation/manifests/daemonset.md index 050ee649b5..4fafb434b3 100644 --- a/docs/content/includes/installation/manifests/daemonset.md +++ b/docs/content/includes/installation/manifests/daemonset.md @@ -9,13 +9,13 @@ When you deploy NGINX Ingress Controller as a DaemonSet, Kubernetes creates an I - For NGINX, run: ```shell - kubectl apply -f daemon-set/nginx-ingress.yaml + kubectl apply -f deployments/daemon-set/nginx-ingress.yaml ``` - For NGINX Plus, run: ```shell - kubectl apply -f daemon-set/nginx-plus-ingress.yaml + kubectl apply -f deployments/daemon-set/nginx-plus-ingress.yaml ``` Update the `nginx-plus-ingress.yaml` file to include your chosen image from the F5 Container registry or your custom container image. diff --git a/docs/content/includes/installation/manifests/deployment.md b/docs/content/includes/installation/manifests/deployment.md index 45a110081b..9a56ab7dc5 100644 --- a/docs/content/includes/installation/manifests/deployment.md +++ b/docs/content/includes/installation/manifests/deployment.md @@ -9,13 +9,13 @@ When you deploy NGINX Ingress Controller as a Deployment, Kubernetes automatical - For NGINX, run: ```shell - kubectl apply -f deployment/nginx-ingress.yaml + kubectl apply -f deployments/deployment/nginx-ingress.yaml ``` - For NGINX Plus, run: ```shell - kubectl apply -f deployment/nginx-plus-ingress.yaml + kubectl apply -f deployments/deployment/nginx-plus-ingress.yaml ``` Update the `nginx-plus-ingress.yaml` file to include your chosen image from the F5 Container registry or your custom container image. diff --git a/docs/content/includes/rbac/set-up-rbac.md b/docs/content/includes/rbac/set-up-rbac.md index e17c768756..2a0e156ba1 100644 --- a/docs/content/includes/rbac/set-up-rbac.md +++ b/docs/content/includes/rbac/set-up-rbac.md @@ -7,13 +7,13 @@ docs: 1. Create a namespace and a service account: ```shell - kubectl apply -f common/ns-and-sa.yaml + kubectl apply -f deployments/common/ns-and-sa.yaml ``` 2. Create a cluster role and binding for the service account: ```shell - kubectl apply -f rbac/rbac.yaml + kubectl apply -f deployments/rbac/rbac.yaml ```
@@ -23,11 +23,11 @@ If you're planning to use NGINX App Protect or NGINX App Protect DoS, additional 1. (NGINX App Protect only) Create the *App Protect* role and binding: ```shell - kubectl apply -f rbac/ap-rbac.yaml + kubectl apply -f deployments/rbac/ap-rbac.yaml ``` 2. (NGINX App Protect DoS only) Create the *App Protect DoS* role and binding: ```shell - kubectl apply -f rbac/apdos-rbac.yaml + kubectl apply -f deployments/rbac/apdos-rbac.yaml ``` diff --git a/docs/content/installation/installing-nic/installation-with-manifests.md b/docs/content/installation/installing-nic/installation-with-manifests.md index 37b4b38afb..ec72c4073e 100644 --- a/docs/content/installation/installing-nic/installation-with-manifests.md +++ b/docs/content/installation/installing-nic/installation-with-manifests.md @@ -29,11 +29,10 @@ Choose one of the following methods to get the NGINX Ingress Controller image: ### Clone the repository -Clone the NGINX Ingress Controller repository and go to the _deployments_ folder. Replace `` with the specific release you want to use. +Clone the NGINX Ingress Controller repository using the command shown below, and replace `` with the specific release you want to use. ```shell git clone https://github.com/nginxinc/kubernetes-ingress.git --branch -cd kubernetes-ingress/deployments ``` For example, if you want to use version 3.3.2, the command would be `git clone https://github.com/nginxinc/kubernetes-ingress.git --branch v3.3.2`. @@ -57,41 +56,73 @@ This guide assumes you are using the latest release. ## Create custom resources {#create-custom-resources} To make sure your NGINX Ingress Controller pods reach the `Ready` state, you'll need to create custom resource definitions (CRDs) for various components. Alternatively, you can disable this requirement by setting the `-enable-custom-resources` command-line argument to `false`. +There are two ways you can install the custom resource definitions: + 1. Using a URL to apply a single CRD yaml file. We recommend this approach. + 2. Applying your local copy of the CRD yaml files. This requires that you [clone the repository](#lone-the-repository). + +{{}} + +{{%tab name="Install CRDs from single YAML"%}} ### Core custom resource definitions -1. Create CRDs for [VirtualServer and VirtualServerRoute]({{< relref "configuration/virtualserver-and-virtualserverroute-resources.md" >}}), [TransportServer]({{< relref "configuration/transportserver-resource.md" >}}), and [Policy]({{< relref "configuration/policy-resource.md" >}}): +1. Create CRDs for [VirtualServer and VirtualServerRoute]({{< relref "configuration/virtualserver-and-virtualserverroute-resources.md" >}}), [TransportServer]({{< relref "configuration/transportserver-resource.md" >}}), [Policy]({{< relref "configuration/policy-resource.md" >}}) and [GlobalConfiguration]({{< relref "configuration/global-configuration/globalconfiguration-resource.md" >}}): ```shell - kubectl apply -f common/crds/k8s.nginx.org_virtualservers.yaml - kubectl apply -f common/crds/k8s.nginx.org_virtualserverroutes.yaml - kubectl apply -f common/crds/k8s.nginx.org_transportservers.yaml - kubectl apply -f common/crds/k8s.nginx.org_policies.yaml + kubectl apply -f https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v3.3.2/deploy/crds.yaml ``` ### Optional custom resource definitions -1. (Optional) For TCP and UDP load balancing, create a cCRD for [GlobalConfiguration]({{< relref "configuration/global-configuration/globalconfiguration-resource.md" >}}): +1. For the NGINX App Protect WAF module, create CRDs for `APPolicy`, `APLogConf` and `APUserSig`: ```shell - kubectl apply -f common/crds/k8s.nginx.org_globalconfigurations.yaml + kubectl apply -f https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v3.3.2/deploy/crds-nap-waf.yaml ``` -2. (Optional) For the NGINX App Protect WAF module, create CRDs for `APPolicy`, `APLogConf` and `APUserSig`: +2. For the NGINX App Protect DoS module, create CRDs for `APDosPolicy`, `APDosLogConf` and `DosProtectedResource`: ```shell - kubectl apply -f common/crds/appprotect.f5.com_aplogconfs.yaml - kubectl apply -f common/crds/appprotect.f5.com_appolicies.yaml - kubectl apply -f common/crds/appprotect.f5.com_apusersigs.yaml + kubectl apply -f https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v3.3.2/deploy/crds-nap-dos.yaml ``` -3. (Optional) For the NGINX App Protect DoS module, create CRDs for `APDosPolicy`, `APDosLogConf` and `DosProtectedResource`: +{{%/tab%}} + +{{%tab name="Install CRDs after cloning the repo"%}} + +If you are installing the CRDs this way, ensure that you have first [cloned the repository](#clone-the-repository) + +### Core custom resource definitions + +1. Create CRDs for [VirtualServer and VirtualServerRoute]({{< relref "configuration/virtualserver-and-virtualserverroute-resources.md" >}}), [TransportServer]({{< relref "configuration/transportserver-resource.md" >}}), [Policy]({{< relref "configuration/policy-resource.md" >}}) and [GlobalConfiguration]({{< relref "configuration/global-configuration/globalconfiguration-resource.md" >}}): + + ```shell + kubectl apply -f config/crd/bases/k8s.nginx.org_virtualservers.yaml + kubectl apply -f config/crd/bases/k8s.nginx.org_virtualserverroutes.yaml + kubectl apply -f config/crd/bases/k8s.nginx.org_transportservers.yaml + kubectl apply -f config/crd/bases/k8s.nginx.org_policies.yaml + kubectl apply -f config/crd/bases/k8s.nginx.org_globalconfigurations.yaml + ``` +### Optional custom resource definitions + +1. For the NGINX App Protect WAF module, create CRDs for `APPolicy`, `APLogConf` and `APUserSig`: + + ```shell + kubectl apply -f config/crd/bases/appprotect.f5.com_aplogconfs.yaml + kubectl apply -f config/crd/bases/appprotect.f5.com_appolicies.yaml + kubectl apply -f config/crd/bases/appprotect.f5.com_apusersigs.yaml + ``` + +2. For the NGINX App Protect DoS module, create CRDs for `APDosPolicy`, `APDosLogConf` and `DosProtectedResource`: ```shell - kubectl apply -f common/crds/appprotectdos.f5.com_apdoslogconfs.yaml - kubectl apply -f common/crds/appprotectdos.f5.com_apdospolicy.yaml - kubectl apply -f common/crds/appprotectdos.f5.com_dosprotectedresources.yaml + kubectl apply -f config/crd/bases/appprotectdos.f5.com_apdoslogconfs.yaml + kubectl apply -f config/crd/bases/appprotectdos.f5.com_apdospolicy.yaml + kubectl apply -f config/crd/bases/appprotectdos.f5.com_dosprotectedresources.yaml ``` +{{%/tab%}} + +{{}} --- @@ -133,7 +164,7 @@ For more information about the _NodePort_ service, refer to the [Kubernetes doc 1. To create a service of type *NodePort*, run: ```shell - kubectl create -f service/nodeport.yaml + kubectl create -f deployments/service/nodeport.yaml ``` Kubernetes automatically allocates two ports on every node in the cluster. You can access NGINX Ingress Controller by combining any node's IP address with these ports. @@ -147,13 +178,13 @@ For more information about the _LoadBalancer_ service, refer to the [Kubernetes - GCP or Azure: ```shell - kubectl apply -f service/loadbalancer.yaml + kubectl apply -f deployments/service/loadbalancer.yaml ``` - AWS: ```shell - kubectl apply -f service/loadbalancer-aws-elb.yaml + kubectl apply -f deployments/service/loadbalancer-aws-elb.yaml ``` If you're using AWS, Kubernetes will set up a Classic Load Balancer (ELB) in TCP mode. This load balancer will have the PROXY protocol enabled to pass along the client's IP address and port. @@ -171,7 +202,7 @@ For more information about the _LoadBalancer_ service, refer to the [Kubernetes - Update the ConfigMap: ```shell - kubectl apply -f common/nginx-config.yaml + kubectl apply -f deployments/common/nginx-config.yaml ``` {{}}AWS users have more customization options for their load balancers. These include choosing the load balancer type and configuring SSL termination. Refer to the [Kubernetes documentation](https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer) to learn more. {{}} @@ -221,8 +252,45 @@ Connect to ports 80 and 443 using the IP address of any node in the cluster wher kubectl delete clusterrolebinding nginx-ingress ``` -3. **Delete the Custom Resource Definitions**: Be aware that this step will also erase all associated custom resources. To proceed, run: +3. **Delete the Custom Resource Definitions**: + + {{}} + + {{%tab name="Deleting CRDs from single YAML"%}} + 1. Delete core custom resource definitions: ```shell - kubectl delete -f common/crds/ + kubectl delete -f https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v3.3.2/deploy/crds.yaml ``` + 2. Delete custom resource definitions for the NGINX App Protect WAF module: + + ```shell + kubectl apply -f https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v3.3.2/deploy/crds-nap-waf.yaml + ``` + + 3. Delete custom resource definitions for the NGINX App Protect DoS module: + ```shell + kubectl apply -f https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v3.3.2/deploy/crds-nap-dos.yaml + ``` + {{%/tab%}} + + {{%tab name="Deleting CRDs after cloning the repo"%}} + + 1. Delete core custom resource definitions: + ```shell + kubectl delete -f config/crd/bases/crds.yaml + ``` + 2. Delete custom resource definitions for the NGINX App Protect WAF module: + + ```shell + kubectl apply -f config/crd/bases/crds-nap-waf.yaml + ``` + + 3. Delete custom resource definitions for the NGINX App Protect DoS module: + ```shell + kubectl apply -f config/crd/bases/crds-nap-dos.yaml + ``` + + {{%/tab%}} + + {{}}