diff --git a/deployments/helm-chart/Chart.yaml b/deployments/helm-chart/Chart.yaml index 958d3b4d3a..9407f56ec9 100644 --- a/deployments/helm-chart/Chart.yaml +++ b/deployments/helm-chart/Chart.yaml @@ -4,7 +4,7 @@ appVersion: edge description: NGINX Ingress Controller icon: https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/master/deployments/helm-chart/chart-icon.png sources: - - https://github.com/nginxinc/kubernetes-ingress/tree/master/deployment/helm-chart + - https://github.com/nginxinc/kubernetes-ingress/tree/master/deployments/helm-chart keywords: - ingress - nginx diff --git a/examples/openshift/README.md b/examples/openshift/README.md deleted file mode 100644 index 68172e5fce..0000000000 --- a/examples/openshift/README.md +++ /dev/null @@ -1,74 +0,0 @@ -# Running NGINX Ingress Controller on OpenShift - -## Prerequisites - -* A cluster with OpenShift Release 3.5 and above. -* You must be the cluster administrator to deploy the Ingress controller. -* For NGINX Plus: - * Build and make available in your cluster the [Ingress controller](../../build) image. - * Update the container image field in the `nginx-plus-ingress-rc.yaml` file accordingly. - - -## Steps - -1. Avoid conflicts with the OpenShift Router. - - NGINX Plus Ingress controller must be able to bind to ports 80 and 443 of the cluster node, where it is running, like the OpenShift Router. Thus, you need to make sure that the Ingress controller and the Router are running on separate nodes. Additionally, NGINX Plus binds to port 8080 to expose its API and the monitoring dashboard. - - To quickly disable the Router you can run: - ``` - $ oc scale dc router --replicas=0 - ``` - -1. Choose a project (namespace). In our example, we choose the default namespace: - ``` - $ oc project default - ``` - -1. Create a service account for the Ingress controller with the name *nginx-ingress*: - ``` - $ oc create sa nginx-ingress - ``` -1. Create a cluster role for the Ingress controller: - ``` - $ oc create -f nginx-ingress-role.yaml - ``` -1. Add the created cluster role the Ingress controller service account: - ``` - $ oc adm policy add-cluster-role-to-user nginx-ingress system:serviceaccount:default:nginx-ingress - ``` -1. Add the privileged SSC to the Ingress controller service account: - ``` - $ oc adm policy add-scc-to-user privileged --serviceaccount=nginx-ingress - ``` -1. Create a secret with an SSL certificate and key for the default server of NGINX/NGINX Plus. It is recommended that you use your own certificate and key: - ``` - $ oc create -f default-server-secret.yaml - ``` -1. Deploy NGINX or NGINX Plus Ingress controller with the service account from the previous step: - ``` - $ oc create -f nginx-ingress-rc.yaml - ``` - or - ``` - $ oc create -f nginx-plus-ingress-rc.yaml - ``` - -## Additional Steps for Running the Cafe Application Demo - -1. By default, users are not able to work with Ingress resources. To allow that: - Create a role: - ``` - $ oc create -f ingress-admin-role.yaml - ``` - - Add this role to the users. As an example, we add this role for the user *developer* from the project *myproject*. - ``` - $ oc policy add-role-to-user ingress-admin developer -n myproject - ``` -1. The web application from the example is running as the ROOT user, so we need to allow that for the service account *default* from the project *myproject*: - ``` - $ oc adm policy add-scc-to-user anyuid -z default -n myproject - ``` - -1. Now you can login as the user *developer* to the project *myproject* and [deploy the Cafe application](../complete-example#2-deploy-the-cafe-application). diff --git a/examples/openshift/default-server-secret.yaml b/examples/openshift/default-server-secret.yaml deleted file mode 100644 index 2f7c08f25b..0000000000 --- a/examples/openshift/default-server-secret.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: default-server-secret -type: Opaque -data: - tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURMakNDQWhZQ0NRREFPRjl0THNhWFdqQU5CZ2txaGtpRzl3MEJBUXNGQURCYU1Rc3dDUVlEVlFRR0V3SlYKVXpFTE1Ba0dBMVVFQ0F3Q1EwRXhJVEFmQmdOVkJBb01HRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MApaREViTUJrR0ExVUVBd3dTWTJGbVpTNWxlR0Z0Y0d4bExtTnZiU0FnTUI0WERURTRNRGt4TWpFMk1UVXpOVm9YCkRUSXpNRGt4TVRFMk1UVXpOVm93V0RFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ01Ba05CTVNFd0h3WUQKVlFRS0RCaEpiblJsY201bGRDQlhhV1JuYVhSeklGQjBlU0JNZEdReEdUQVhCZ05WQkFNTUVHTmhabVV1WlhoaApiWEJzWlM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDcDZLbjdzeTgxCnAwanVKL2N5ayt2Q0FtbHNmanRGTTJtdVpOSzBLdGVjcUcyZmpXUWI1NXhRMVlGQTJYT1N3SEFZdlNkd0kyaloKcnVXOHFYWENMMnJiNENaQ0Z4d3BWRUNyY3hkam0zdGVWaVJYVnNZSW1tSkhQUFN5UWdwaW9iczl4N0RsTGM2SQpCQTBaalVPeWwwUHFHOVNKZXhNVjczV0lJYTVyRFZTRjJyNGtTa2JBajREY2o3TFhlRmxWWEgySTVYd1hDcHRDCm42N0pDZzQyZitrOHdnemNSVnA4WFprWldaVmp3cTlSVUtEWG1GQjJZeU4xWEVXZFowZXdSdUtZVUpsc202OTIKc2tPcktRajB2a29QbjQxRUUvK1RhVkVwcUxUUm9VWTNyemc3RGtkemZkQml6Rk8yZHNQTkZ4MkNXMGpYa05MdgpLbzI1Q1pyT2hYQUhBZ01CQUFFd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFLSEZDY3lPalp2b0hzd1VCTWRMClJkSEliMzgzcFdGeW5acS9MdVVvdnNWQTU4QjBDZzdCRWZ5NXZXVlZycTVSSWt2NGxaODFOMjl4MjFkMUpINnIKalNuUXgrRFhDTy9USkVWNWxTQ1VwSUd6RVVZYVVQZ1J5anNNL05VZENKOHVIVmhaSitTNkZBK0NuT0Q5cm4yaQpaQmVQQ0k1ckh3RVh3bm5sOHl3aWozdnZRNXpISXV5QmdsV3IvUXl1aTlmalBwd1dVdlVtNG52NVNNRzl6Q1Y3ClBwdXd2dWF0cWpPMTIwOEJqZkUvY1pISWc4SHc5bXZXOXg5QytJUU1JTURFN2IvZzZPY0s3TEdUTHdsRnh2QTgKN1dqRWVxdW5heUlwaE1oS1JYVmYxTjM0OWVOOThFejM4Zk9USFRQYmRKakZBL1BjQytHeW1lK2lHdDVPUWRGaAp5UkU9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K - tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBcWVpcCs3TXZOYWRJN2lmM01wUHJ3Z0pwYkg0N1JUTnBybVRTdENyWG5LaHRuNDFrCkcrZWNVTldCUU5semtzQndHTDBuY0NObzJhN2x2S2wxd2k5cTIrQW1RaGNjS1ZSQXEzTVhZNXQ3WGxZa1YxYkcKQ0pwaVJ6ejBza0lLWXFHN1BjZXc1UzNPaUFRTkdZMURzcGRENmh2VWlYc1RGZTkxaUNHdWF3MVVoZHErSkVwRwp3SStBM0kreTEzaFpWVng5aU9WOEZ3cWJRcCt1eVFvT05uL3BQTUlNM0VWYWZGMlpHVm1WWThLdlVWQ2cxNWhRCmRtTWpkVnhGbldkSHNFYmltRkNaYkp1dmRySkRxeWtJOUw1S0Q1K05SQlAvazJsUkthaTAwYUZHTjY4NE93NUgKYzMzUVlzeFR0bmJEelJjZGdsdEkxNURTN3lxTnVRbWF6b1Z3QndJREFRQUJBb0lCQVFDUFNkU1luUXRTUHlxbApGZlZGcFRPc29PWVJoZjhzSStpYkZ4SU91UmF1V2VoaEp4ZG01Uk9ScEF6bUNMeUw1VmhqdEptZTIyM2dMcncyCk45OUVqVUtiL1ZPbVp1RHNCYzZvQ0Y2UU5SNThkejhjbk9SVGV3Y290c0pSMXBuMWhobG5SNUhxSkpCSmFzazEKWkVuVVFmY1hackw5NGxvOUpIM0UrVXFqbzFGRnM4eHhFOHdvUEJxalpzVjdwUlVaZ0MzTGh4bndMU0V4eUZvNApjeGI5U09HNU9tQUpvelN0Rm9RMkdKT2VzOHJKNXFmZHZ5dGdnOXhiTGFRTC94MGtwUTYyQm9GTUJEZHFPZVBXCktmUDV6WjYvMDcvdnBqNDh5QTFRMzJQem9idWJzQkxkM0tjbjMyamZtMUU3cHJ0V2wrSmVPRmlPem5CUUZKYk4KNHFQVlJ6NWhBb0dCQU50V3l4aE5DU0x1NFArWGdLeWNrbGpKNkY1NjY4Zk5qNUN6Z0ZScUowOXpuMFRsc05ybwpGVExaY3hEcW5SM0hQWU00MkpFUmgySi9xREZaeW5SUW8zY2czb2VpdlVkQlZHWTgrRkkxVzBxZHViL0w5K3l1CmVkT1pUUTVYbUdHcDZyNmpleHltY0ppbS9Pc0IzWm5ZT3BPcmxEN1NQbUJ2ek5MazRNRjZneGJYQW9HQkFNWk8KMHA2SGJCbWNQMHRqRlhmY0tFNzdJbUxtMHNBRzR1SG9VeDBlUGovMnFyblRuT0JCTkU0TXZnRHVUSnp5K2NhVQprOFJxbWRIQ2JIelRlNmZ6WXEvOWl0OHNaNzdLVk4xcWtiSWN1YytSVHhBOW5OaDFUanNSbmU3NFowajFGQ0xrCmhIY3FIMHJpN1BZU0tIVEU4RnZGQ3haWWRidUI4NENtWmlodnhicFJBb0dBSWJqcWFNWVBUWXVrbENkYTVTNzkKWVNGSjFKelplMUtqYS8vdER3MXpGY2dWQ0thMzFqQXdjaXowZi9sU1JxM0hTMUdHR21lemhQVlRpcUxmZVpxYwpSMGlLYmhnYk9jVlZrSkozSzB5QXlLd1BUdW14S0haNnpJbVpTMGMwYW0rUlk5WUdxNVQ3WXJ6cHpjZnZwaU9VCmZmZTNSeUZUN2NmQ21mb09oREN0enVrQ2dZQjMwb0xDMVJMRk9ycW40M3ZDUzUxemM1em9ZNDR1QnpzcHd3WU4KVHd2UC9FeFdNZjNWSnJEakJDSCtULzZzeXNlUGJKRUltbHpNK0l3eXRGcEFOZmlJWEV0LzQ4WGY2ME54OGdXTQp1SHl4Wlp4L05LdER3MFY4dlgxUE9ucTJBNWVpS2ErOGpSQVJZS0pMWU5kZkR1d29seHZHNmJaaGtQaS80RXRUCjNZMThzUUtCZ0h0S2JrKzdsTkpWZXN3WEU1Y1VHNkVEVXNEZS8yVWE3ZlhwN0ZjanFCRW9hcDFMU3crNlRYcDAKWmdybUtFOEFSek00NytFSkhVdmlpcS9udXBFMTVnMGtKVzNzeWhwVTl6WkxPN2x0QjBLSWtPOVpSY21Vam84UQpjcExsSE1BcWJMSjhXWUdKQ2toaVd4eWFsNmhZVHlXWTRjVmtDMHh0VGwvaFVFOUllTktvCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg== diff --git a/examples/openshift/ingress-admin-role.yaml b/examples/openshift/ingress-admin-role.yaml deleted file mode 100644 index 6aae838bf6..0000000000 --- a/examples/openshift/ingress-admin-role.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: v1 -kind: ClusterRole -metadata: - name: ingress-admin -rules: - - resources: - - ingresses - apiGroups: - - extensions - verbs: - - create - - get - - list - - watch - - delete - - update diff --git a/examples/openshift/nginx-ingress-rc.yaml b/examples/openshift/nginx-ingress-rc.yaml deleted file mode 100644 index f937710d27..0000000000 --- a/examples/openshift/nginx-ingress-rc.yaml +++ /dev/null @@ -1,40 +0,0 @@ -apiVersion: v1 -kind: ReplicationController -metadata: - name: nginx-ingress-rc - labels: - app: nginx-ingress -spec: - replicas: 1 - selector: - app: nginx-ingress - template: - metadata: - labels: - app: nginx-ingress - spec: - serviceAccountName: nginx-ingress - containers: - - image: nginx/nginx-ingress:edge - imagePullPolicy: Always - name: nginx-ingress - ports: - - containerPort: 80 - hostPort: 80 - - containerPort: 443 - hostPort: 443 - env: - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - # Uncomment the lines below to enable extensive logging and/or customization of - # NGINX configuration with configmaps - args: - #- -v=3 - #- -nginx-configmaps=$(POD_NAMESPACE)/nginx-config - - -default-server-tls-secret=$(POD_NAMESPACE)/default-server-secret diff --git a/examples/openshift/nginx-ingress-role.yaml b/examples/openshift/nginx-ingress-role.yaml deleted file mode 100644 index efa68a98b6..0000000000 --- a/examples/openshift/nginx-ingress-role.yaml +++ /dev/null @@ -1,34 +0,0 @@ -apiVersion: v1 -kind: ClusterRole -metadata: - name: nginx-ingress -rules: - - resources: - - services - - endpoints - verbs: - - list - - watch - - resources: - - configmaps - - secrets - verbs: - - get - - list - - watch - - resources: - - pods - verbs: - - list - - resources: - - events - verbs: - - create - - patch - - apiGroups: - - extensions - resources: - - ingresses - verbs: - - list - - watch \ No newline at end of file diff --git a/examples/openshift/nginx-plus-ingress-rc.yaml b/examples/openshift/nginx-plus-ingress-rc.yaml deleted file mode 100644 index 5e03003278..0000000000 --- a/examples/openshift/nginx-plus-ingress-rc.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: v1 -kind: ReplicationController -metadata: - name: nginx-plus-ingress-rc - labels: - app: nginx-plus-ingress -spec: - replicas: 1 - selector: - app: nginx-plus-ingress - template: - metadata: - labels: - app: nginx-plus-ingress - spec: - serviceAccountName: nginx-ingress - containers: - - image: nginx-plus-ingress:edge - imagePullPolicy: Always - name: nginx-plus-ingress - ports: - - containerPort: 80 - hostPort: 80 - - containerPort: 443 - hostPort: 443 - - containerPort: 8080 - hostPort: 8080 - env: - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - # Uncomment the lines below to enable extensive logging and/or customization of - # NGINX configuration with configmaps - args: - - -nginx-plus - #- -v=3 - #- -nginx-configmaps=$(POD_NAMESPACE)/nginx-config - - -default-server-tls-secret=$(POD_NAMESPACE)/default-server-secret