|
| 1 | +apiVersion: operators.coreos.com/v1alpha1 |
| 2 | +kind: ClusterServiceVersion |
| 3 | +metadata: |
| 4 | + annotations: |
| 5 | + alm-examples: >- |
| 6 | + [{ "apiVersion": "k8s.nginx.org/v1alpha1", "kind": "NginxIngressController", "metadata": { "name": "my-nginx-ingress-controller", "namespace": "my-nginx-ingress" }, "spec": { "enableCRDs": true, "image": { "pullPolicy": "Always", "repository": "docker.io/nginx/nginx-ingress", "tag": "1.6.3-ubi" }, "nginxPlus": false, "replicas": 1, "serviceType": "NodePort", "type": "deployment" } }] |
| 7 | + capabilities: Basic Install |
| 8 | + categories: Networking |
| 9 | + description: The NGINX Ingress Operator is a Kubernetes/OpenShift component which deploys and manages one or more NGINX/NGINX Plus Ingress Controllers |
| 10 | + support: NGINX |
| 11 | + createdAt: 2020-03-03T12:59:59Z |
| 12 | + containerImage: registry.connect.redhat.com/nginx/nginx-ingress-operator:0.0.4 |
| 13 | + certified: "true" |
| 14 | + repository: "https://github.com/nginxinc/nginx-ingress-operator" |
| 15 | + name: nginx-ingress-operator.v0.0.4 |
| 16 | + namespace: placeholder |
| 17 | +spec: |
| 18 | + links: |
| 19 | + - name: "Documentation for NGINX Plus" |
| 20 | + url: "https://github.com/nginxinc/nginx-ingress-operator/tree/master/examples/deployment-plus-min" |
| 21 | + - name: "Documentation for NGINX Open Source" |
| 22 | + url: "https://github.com/nginxinc/nginx-ingress-operator/tree/master/examples/deployment-oss-min" |
| 23 | + - name: "Documentation for NginxIngressController CR" |
| 24 | + url: "https://github.com/nginxinc/nginx-ingress-operator/blob/master/docs/nginx-ingress-controller.md" |
| 25 | + maintainers: |
| 26 | + - name: NGINX Inc |
| 27 | + |
| 28 | + icon: |
| 29 | + - mediatype: "image/svg+xml" |
| 30 | + base64data: PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2My4zNiA3My40NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwMDk2Mzk7fS5jbHMtMntmaWxsOiNmZmY7fS5jbHMtM3tmaWxsOiM5OTk7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5OR0lOWC1oZXgtc291cmNlLVJHQi0wMjwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNLjUwMjcyLDU0LjcyMWEzLjYzNywzLjYzNywwLDAsMCwxLjM2NjQxLDEuMzU1OTNMMjkuODIxOTIsNzIuMjE1NDlsLjAwMDg3LS4wMDA4N2EzLjY2NzkzLDMuNjY3OTMsMCwwLDAsMy43MTUyOSwwTDYxLjQ5MTc1LDU2LjA3NjA2YTMuNjY1NjgsMy42NjU2OCwwLDAsMCwxLjg1Njc3LTMuMjE2MTlWMjAuNTgyNzVsLS4wMDA4Ny0uMDAwODdBMy42NjY4NSwzLjY2Njg1LDAsMCwwLDYxLjQ5LDE3LjM2NDgxTDMzLjUzNjM0LDEuMjI2MjVWMS4yMjUzOGEzLjY2MzEzLDMuNjYzMTMsMCwwLDAtMy43MTI2OCwwdi4wMDA4N0wxLjg3MDg3LDE3LjM2NDgxQTMuNjY1MywzLjY2NTMsMCwwLDAsLjAxMjM1LDIwLjU4MTg4bC0uMDAwODcuMDAwODdWNTIuODU5ODdBMy42NDQyNiwzLjY0NDI2LDAsMCwwLC41MDE4NSw1NC43MjEiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0yMi43MzAxNSw0OS4wMDhhMy41OTQ4OCwzLjU5NDg4LDAsMCwxLTcuMTg5NzYsMGwuMDAwODguMDAwODguMDAzNDktMjQuNjc3MjdjMC0xLjkxMTc0LDEuNjg5MjQtMy40OTI3OSw0LjA4MTc1LTMuNDkyNzlhNi4zOTI4Miw2LjM5MjgyLDAsMCwxLDQuOTAwMjEsMi4xOTFMMjUuNjEzLDI0LjMyOTg5LDQwLjYzMTI0LDQyLjMwMjUzVjI0LjQzMkg0MC42Mjk1YTMuNTk0ODgsMy41OTQ4OCwwLDAsMSw3LjE4OTc1LDBoLS4wMDA4N2wtLjAwMzQ5LDI0LjY3NTUyYzAsMS45MTE3NS0xLjY5MDExLDMuNDkyNzktNC4wODE3NSwzLjQ5Mjc5YTYuMzg4NTcsNi4zODg1NywwLDAsMS00LjkwMDIxLTIuMTkxTDIyLjcyODQsMzEuMTM2NTlWNDkuMDA4OVoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik01OS45NzQ3OCw2Ni4wMzQxaC40NTkzNFY2NS4wMTFoLjM2MzM1YTEuMDM2NzQsMS4wMzY3NCwwLDAsMSwuNTEwMzcuMDg1MjIuNjM5MTcuNjM5MTcsMCwwLDEsLjI0MjU1LjU5NTEzdi4yMDk3NmwuMDEwMjkuMDc4MmEuMTU3ODEuMTU3ODEsMCwwLDEsLjAwNy4wMzI3OGMuMDAyMzQuMDEyNjQuMDAzMjguMDE2MzguMDEwMy4wMjJoLjQyNTYzbC0uMDE1NDYtLjAyOWEuMjk4NjMuMjk4NjMsMCwwLDEtLjAyMDYtLjEzM2MtLjAwNjA5LS4wNzM1MS0uMDA2MDktLjEzNjI1LS4wMDYwOS0uMTk0MzF2LS4xOTM4NWEuNzQxOTQuNzQxOTQsMCwwLDAtLjE0MjM0LS40MDU0OS42NjEyOS42NjEyOSwwLDAsMC0uNDUzMjUtLjI1NDcyLDEuMTE4ODQsMS4xMTg4NCwwLDAsMCwuMzc3ODctLjEyMjY4LjU2NjczLjU2NjczLDAsMCwwLC4yNTM3OC0uNTE1MDUuNjQwMDguNjQwMDgsMCwwLDAtLjQwMTc0LS42NjA2OCwxLjk5OTA2LDEuOTk5MDYsMCwwLDAtLjcxMjE5LS4wOTMxOGgtLjkwODg0Wm0xLjMwNjM3LTEuNDAyODJhMS4xODgyLDEuMTg4MiwwLDAsMS0uNDM2ODYuMDU4MDZoLS40MTAxN1Y2My43NDIxaC4zOTE0NGExLjE1NTUsMS4xNTU1LDAsMCwxLC41NTIuMTAxNjEuMzk0MTMuMzk0MTMsMCwwLDEsLjE3Mjc4LjM3OTc0LjQwMDg3LjQwMDg3LDAsMCwxLS4yNjkyNC40MDc4M20xLjMzNC0xLjU2MzlhMi4zMDc5MiwyLjMwNzkyLDAsMCwwLTEuNjg3LS42ODk3MSwyLjM3MywyLjM3MywwLDAsMCwwLDQuNzQ2LDIuMzc3MjQsMi4zNzcyNCwwLDAsMCwxLjY4Ny00LjA1NjNtLS4yNDExNC4yMzU1MmExLjk0MzU5LDEuOTQzNTksMCwwLDEsLjU5NTU5LDEuNDQzNTYsMi4wMzkyMiwyLjAzOTIyLDAsMCwxLTMuNDg1NTIsMS40NTA1OSwyLjAxMzExLDIuMDEzMTEsMCwwLDEtLjU5Mjc5LTEuNDUwNTlBMi4wNDYyNywyLjA0NjI3LDAsMCwxLDYwLjkyODEsNjIuNjk3YTEuOTQ2LDEuOTQ2LDAsMCwxLDEuNDQ1OTEuNjA1ODkiLz48L3N2Zz4= |
| 31 | + description: The NGINX Ingress Operator is a Kubernetes/OpenShift component which deploys and manages one or more NGINX/NGINX Plus Ingress Controllers |
| 32 | + keywords: |
| 33 | + - nginx |
| 34 | + - ingress-controller |
| 35 | + - ingress |
| 36 | + - controller |
| 37 | + - kubernetes |
| 38 | + - openshift |
| 39 | + apiservicedefinitions: {} |
| 40 | + customresourcedefinitions: |
| 41 | + owned: |
| 42 | + - description: NginxIngressController is the Schema for the nginxingresscontrollers |
| 43 | + API |
| 44 | + kind: NginxIngressController |
| 45 | + name: nginxingresscontrollers.k8s.nginx.org |
| 46 | + displayName: NginxIngressController |
| 47 | + resources: |
| 48 | + - kind: Deployment |
| 49 | + name: A Kubernetes Deployment |
| 50 | + version: v1 |
| 51 | + - kind: ReplicaSet |
| 52 | + name: A Kubernetes ReplicaSet |
| 53 | + version: v1beta2 |
| 54 | + - kind: Pod |
| 55 | + name: A Kubernetes Pod |
| 56 | + version: v1 |
| 57 | + specDescriptors: |
| 58 | + - description: Initial values of the Ingress Controller ConfigMap. Check https://docs.nginx.com/nginx-ingress-controller/configuration/global-configuration/configmap-resource/ |
| 59 | + for more information about possible values. |
| 60 | + displayName: Config Map Data |
| 61 | + path: configMapData |
| 62 | + - description: The TLS Secret for TLS termination of the default server. The |
| 63 | + format is namespace/name. If not specified, the operator will generate and |
| 64 | + deploy a TLS Secret with a self-signed certificate and key. |
| 65 | + displayName: Default Secret |
| 66 | + path: defaultSecret |
| 67 | + - description: Enables the use of NGINX Ingress Resource Definitions (VirtualServer |
| 68 | + and VirtualServerRoute). |
| 69 | + displayName: Enable CRDs |
| 70 | + path: enableCRDs |
| 71 | + - description: Enables Leader election to avoid multiple replicas of the controller |
| 72 | + reporting the status of Ingress resources – only one replica will report |
| 73 | + status. |
| 74 | + displayName: Enable Leader Election |
| 75 | + path: enableLeaderElection |
| 76 | + - description: Enable TLS Passthrough on port 443. Requires enableCRDs set to |
| 77 | + true. |
| 78 | + displayName: Enable TLSPassthrough |
| 79 | + path: enableTLSPassthrough |
| 80 | + - description: The GlobalConfiguration resource for global configuration of |
| 81 | + the Ingress Controller. Format is namespace/name. Requires enableCRDs set |
| 82 | + to true. |
| 83 | + displayName: Global Configuration |
| 84 | + path: globalConfiguration |
| 85 | + - description: Adds a new location to the default server. The location responds |
| 86 | + with the 200 status code for any request. Useful for external health-checking |
| 87 | + of the Ingress controller. |
| 88 | + displayName: Health Status |
| 89 | + path: healthStatus |
| 90 | + - description: The image of the Ingress Controller. |
| 91 | + displayName: Image |
| 92 | + path: image |
| 93 | + - description: A class of the Ingress controller. The Ingress controller only |
| 94 | + processes Ingress resources that belong to its class (in other words, have |
| 95 | + the annotation “kubernetes.io/ingress.class”). Additionally, the Ingress |
| 96 | + controller processes Ingress resources that do not have that annotation, |
| 97 | + which can be disabled by setting UseIngressClassOnly to true. Default is |
| 98 | + `nginx`. |
| 99 | + displayName: Ingress Class |
| 100 | + path: ingressClass |
| 101 | + - description: Log level for V logs. Format is 0 - 3 |
| 102 | + displayName: Log Level |
| 103 | + path: logLevel |
| 104 | + - description: 'Enable debugging for NGINX. Uses the nginx-debug binary. Requires |
| 105 | + ‘error-log-level: debug’ in the ConfigMapData.' |
| 106 | + displayName: Nginx Debug |
| 107 | + path: nginxDebug |
| 108 | + - description: Deploys the Ingress Controller for NGINX Plus. The default is |
| 109 | + false meaning the Ingress Controller will be deployed for NGINX OSS. |
| 110 | + displayName: Nginx Plus |
| 111 | + path: nginxPlus |
| 112 | + - description: NGINX stub_status, or the NGINX Plus API. |
| 113 | + displayName: Nginx Status |
| 114 | + path: nginxStatus |
| 115 | + - description: NGINX or NGINX Plus metrics in the Prometheus format. |
| 116 | + displayName: Prometheus |
| 117 | + path: prometheus |
| 118 | + - description: The number of replicas of the Ingress Controller pod. The default |
| 119 | + is 1. Only applies if the type is set to deployment. |
| 120 | + displayName: Replicas |
| 121 | + path: replicas |
| 122 | + - description: Update the address field in the status of Ingresses resources. |
| 123 | + displayName: Report Ingress Status |
| 124 | + path: reportIngressStatus |
| 125 | + - description: 'The type of the Service for the Ingress Controller. Valid Service |
| 126 | + types are: NodePort and LoadBalancer.' |
| 127 | + displayName: Service Type |
| 128 | + path: serviceType |
| 129 | + - description: The type of the Ingress Controller installation - deployment |
| 130 | + or daemonset. |
| 131 | + displayName: Type |
| 132 | + path: type |
| 133 | + - description: Ignore Ingress resources without the “kubernetes.io/ingress.class” |
| 134 | + annotation. |
| 135 | + displayName: Use Ingress Class Only |
| 136 | + path: useIngressClassOnly |
| 137 | + - description: Namespace to watch for Ingress resources. By default the Ingress |
| 138 | + controller watches all namespaces. |
| 139 | + displayName: Watch Namespace |
| 140 | + path: watchNamespace |
| 141 | + - description: A Secret with a TLS certificate and key for TLS termination of |
| 142 | + every Ingress host for which TLS termination is enabled but the Secret is |
| 143 | + not specified. If the argument is not set, for such Ingress hosts NGINX |
| 144 | + will break any attempt to establish a TLS connection. If the argument is |
| 145 | + set, but the Ingress controller is not able to fetch the Secret from Kubernetes |
| 146 | + API, the Ingress Controller will fail to start. Format is namespace/name. |
| 147 | + displayName: Wildcard TLS |
| 148 | + path: wildcardTLS |
| 149 | + statusDescriptors: |
| 150 | + - description: Deployed is true if the Operator has finished the deployment |
| 151 | + of the NginxIngressController. |
| 152 | + displayName: Deployed |
| 153 | + path: deployed |
| 154 | + version: v1alpha1 |
| 155 | + displayName: Nginx Ingress Operator |
| 156 | + install: |
| 157 | + spec: |
| 158 | + clusterPermissions: |
| 159 | + - rules: |
| 160 | + - apiGroups: |
| 161 | + - "" |
| 162 | + resources: |
| 163 | + - pods |
| 164 | + - services |
| 165 | + - services/finalizers |
| 166 | + - endpoints |
| 167 | + - persistentvolumeclaims |
| 168 | + - events |
| 169 | + - configmaps |
| 170 | + - secrets |
| 171 | + - serviceaccounts |
| 172 | + - namespaces |
| 173 | + verbs: |
| 174 | + - create |
| 175 | + - delete |
| 176 | + - get |
| 177 | + - list |
| 178 | + - patch |
| 179 | + - update |
| 180 | + - watch |
| 181 | + - apiGroups: |
| 182 | + - apps |
| 183 | + resources: |
| 184 | + - deployments |
| 185 | + - daemonsets |
| 186 | + - replicasets |
| 187 | + - statefulsets |
| 188 | + verbs: |
| 189 | + - create |
| 190 | + - delete |
| 191 | + - get |
| 192 | + - list |
| 193 | + - patch |
| 194 | + - update |
| 195 | + - watch |
| 196 | + - apiGroups: |
| 197 | + - monitoring.coreos.com |
| 198 | + resources: |
| 199 | + - servicemonitors |
| 200 | + verbs: |
| 201 | + - get |
| 202 | + - create |
| 203 | + - apiGroups: |
| 204 | + - apps |
| 205 | + resourceNames: |
| 206 | + - nginx-ingress-operator |
| 207 | + resources: |
| 208 | + - deployments/finalizers |
| 209 | + verbs: |
| 210 | + - update |
| 211 | + - apiGroups: |
| 212 | + - "" |
| 213 | + resources: |
| 214 | + - pods |
| 215 | + verbs: |
| 216 | + - get |
| 217 | + - apiGroups: |
| 218 | + - apps |
| 219 | + resources: |
| 220 | + - replicasets |
| 221 | + - deployments |
| 222 | + verbs: |
| 223 | + - get |
| 224 | + - apiGroups: |
| 225 | + - k8s.nginx.org |
| 226 | + resources: |
| 227 | + - '*' |
| 228 | + verbs: |
| 229 | + - create |
| 230 | + - delete |
| 231 | + - get |
| 232 | + - list |
| 233 | + - patch |
| 234 | + - update |
| 235 | + - watch |
| 236 | + - apiGroups: |
| 237 | + - rbac.authorization.k8s.io |
| 238 | + resources: |
| 239 | + - clusterroles |
| 240 | + - clusterrolebindings |
| 241 | + - roles |
| 242 | + - rolebindings |
| 243 | + verbs: |
| 244 | + - create |
| 245 | + - delete |
| 246 | + - get |
| 247 | + - list |
| 248 | + - patch |
| 249 | + - update |
| 250 | + - watch |
| 251 | + - apiGroups: |
| 252 | + - apiextensions.k8s.io |
| 253 | + resources: |
| 254 | + - customresourcedefinitions |
| 255 | + verbs: |
| 256 | + - create |
| 257 | + - delete |
| 258 | + - get |
| 259 | + - apiGroups: |
| 260 | + - extensions |
| 261 | + resources: |
| 262 | + - ingresses |
| 263 | + verbs: |
| 264 | + - list |
| 265 | + - watch |
| 266 | + - get |
| 267 | + - apiGroups: |
| 268 | + - extensions |
| 269 | + resources: |
| 270 | + - ingresses/status |
| 271 | + verbs: |
| 272 | + - update |
| 273 | + - apiGroups: |
| 274 | + - security.openshift.io |
| 275 | + resources: |
| 276 | + - securitycontextconstraints |
| 277 | + verbs: |
| 278 | + - create |
| 279 | + - update |
| 280 | + - get |
| 281 | + - list |
| 282 | + - watch |
| 283 | + serviceAccountName: nginx-ingress-operator |
| 284 | + deployments: |
| 285 | + - name: nginx-ingress-operator |
| 286 | + spec: |
| 287 | + replicas: 1 |
| 288 | + selector: |
| 289 | + matchLabels: |
| 290 | + name: nginx-ingress-operator |
| 291 | + strategy: {} |
| 292 | + template: |
| 293 | + metadata: |
| 294 | + labels: |
| 295 | + name: nginx-ingress-operator |
| 296 | + spec: |
| 297 | + containers: |
| 298 | + - command: |
| 299 | + - nginx-ingress-operator |
| 300 | + env: |
| 301 | + - name: WATCH_NAMESPACE |
| 302 | + valueFrom: |
| 303 | + fieldRef: |
| 304 | + fieldPath: metadata.annotations['olm.targetNamespaces'] |
| 305 | + - name: POD_NAME |
| 306 | + valueFrom: |
| 307 | + fieldRef: |
| 308 | + fieldPath: metadata.name |
| 309 | + - name: OPERATOR_NAME |
| 310 | + value: nginx-ingress-operator |
| 311 | + image: registry.connect.redhat.com/nginx/nginx-ingress-operator:0.0.4 |
| 312 | + imagePullPolicy: IfNotPresent |
| 313 | + name: nginx-ingress-operator |
| 314 | + resources: {} |
| 315 | + serviceAccountName: nginx-ingress-operator |
| 316 | + strategy: deployment |
| 317 | + installModes: |
| 318 | + - supported: true |
| 319 | + type: OwnNamespace |
| 320 | + - supported: true |
| 321 | + type: SingleNamespace |
| 322 | + - supported: true |
| 323 | + type: MultiNamespace |
| 324 | + - supported: false |
| 325 | + type: AllNamespaces |
| 326 | + maturity: alpha |
| 327 | + provider: |
| 328 | + name: NGINX Inc |
| 329 | + replaces: nginx-ingress-operator.v0.0.3 |
| 330 | + version: 0.0.4 |
0 commit comments