diff --git a/CHANGELOG.md b/CHANGELOG.md index 25ca9296..db9ba0fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,51 @@ # Changelog +### 0.1.0 + +FEATURES: + +* [56](https://github.com/nginxinc/nginx-ingress-operator/pull/56) Graduate Policies. Add enablePreviewPolicy flag support. +* [55](https://github.com/nginxinc/nginx-ingress-operator/pull/55) Add AppProtect User Defined Signatures support. +* [39](https://github.com/nginxinc/nginx-ingress-operator/pull/39) Update secret type of default secret to TLS. + +FIXES: + +* [71](https://github.com/nginxinc/nginx-ingress-operator/pull/71) Fix replicas and service to be optional fields. +* [70](https://github.com/nginxinc/nginx-ingress-operator/pull/70) Make enableCRDs optional. +* [66](https://github.com/nginxinc/nginx-ingress-operator/pull/66) Fix Service to be an optional field. Add support for updating ExtraLabels. +* [65](https://github.com/nginxinc/nginx-ingress-operator/pull/65) Fix SCC resource to only affect KIC pods. + +DOCUMENTATION: + +* [54](https://github.com/nginxinc/nginx-ingress-operator/pull/54) Update IC compatibility in changelog. + +KNOWN ISSUES: + +* The Operator doesn't automatically remove IngressClasses created by [29](https://github.com/nginxinc/nginx-ingress-operator/pull/29). + +COMPATIBILITY: + +- NGINX Ingress Controller 1.10.x +- Openshift 4.5 or newer. + +UPGRADE INSTRUCTIONS: + +UPGRADE INSTRUCTIONS: + +1. Remove the existing Policy CRD: kubectl delete crd policies.k8s.nginx.org +**Please note that deletion of the policies.k8s.nginx.org CRD will result in all instances of that CRD being deleted too. Ensure to back up any important Custom Resource instances first!** +1. Delete the existing SCC: kubectl delete scc nginx-ingress-scc +1. Upgrade the operator to version 0.1.0. +1. If the defaultSecret field is not set in your nginxingresscontrollers.k8s.nginx.org resource (or resources): + 1. Remove the generated default secret. For example: kubectl delete secret -n my-nginx-ingress my-nginx-ingress-controller + 1. Wait until the operator regenerates the secret. The old secret was of the type Opaque. The new secret will be of the type kubernetes.io/tls. +1. Alternatively, if the defaultSecret is set to some secret, make sure it is of the type kubernetes.io/tls. If not, recreate the secret with the type kubernetes.io/tls. +1. If the wildcardTLS is set to some secret, make sure it is of the type kubernetes.io/tls. If not, recreate the secret with the type kubernetes.io/tls. +1. Ensure that the TLS secrets referenced by Ingress, VirtualServer and Policy resources are of the type kubernetes.io/tls, JWT secrets are of the type nginx.org/jwt and CA secrets are of the type nginx.org/ca. To avoid potential disruption of client traffic, instead of recreating the secrets, create new secrets with the correct type and update the Ingress, VirtualServer and Policy resources to use the new secrets. +1. Update any existing instances of the nginxingresscontrollers.k8s.nginx.org Custom Resource to use an NGINX Ingress Controller 1.10.x image. + +**Note**: Steps 4-8 are required because Version 1.10.0 of the Ingress Controller added a requirement for secrets to be one of the following types: kubernetes.io/tls for TLS secrets; nginx.org/jwk for JWK secrets; or nginx.org/ca for CA secrets. Please see the section UPDATING SECRETS in https://docs.nginx.com/nginx-ingress-controller/releases/#nginx-ingress-controller-1-10-0 for more details. + ### 0.0.7 FEATURES: @@ -14,7 +60,7 @@ FIXES: * [31](https://github.com/nginxinc/nginx-ingress-operator/pull/31) Add Status update for VS/VSR to RBAC. -KNOWS ISSUES: +KNOWN ISSUES: * The Operator doesn't automatically remove IngressClasses created by [29](https://github.com/nginxinc/nginx-ingress-operator/pull/29) COMPATIBILITY: diff --git a/Makefile b/Makefile index d2c73b61..1dd3094f 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -OLD_TAG = 0.0.6 -TAG = 0.0.7 +OLD_TAG = 0.0.7 +TAG = 0.1.0 IMAGE = nginx/nginx-ingress-operator diff --git a/README.md b/README.md index d662c089..69705a01 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,11 @@ The following table shows the relation between the versions of the two projects: | NGINX Ingress Controller | NGINX Ingress Operator | | --- | --- | -| < 1.7.0 | N/A | -| 1.7.x | 0.0.4 | -| 1.8.x | 0.0.6 | +| 1.10.x | 0.1.0 | | 1.9.x | 0.0.7 | +| 1.8.x | 0.0.6 | +| 1.7.x | 0.0.4 | +| < 1.7.0 | N/A | Note: The NGINX Ingress Operator works only for NGINX Ingress Controller versions after `1.7.0`. @@ -29,7 +30,7 @@ Note: The NGINX Ingress Operator works only for NGINX Ingress Controller version ## NGINX Ingress Operator Releases We publish NGINX Ingress Operator releases on GitHub. See our [releases page](https://github.com/nginxinc/nginx-ingress-operator/releases). -The latest stable release is [0.0.7](https://github.com/nginxinc/nginx-ingress-operator/releases/tag/v0.0.7). For production use, we recommend that you choose the latest stable release. +The latest stable release is [0.1.0](https://github.com/nginxinc/nginx-ingress-operator/releases/tag/v0.1.0). For production use, we recommend that you choose the latest stable release. ## Development diff --git a/bundle/0.1.0/k8s.nginx.org_nginxingresscontrollers_crd.yaml b/bundle/0.1.0/k8s.nginx.org_nginxingresscontrollers_crd.yaml new file mode 100644 index 00000000..511f903f --- /dev/null +++ b/bundle/0.1.0/k8s.nginx.org_nginxingresscontrollers_crd.yaml @@ -0,0 +1,287 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: nginxingresscontrollers.k8s.nginx.org +spec: + group: k8s.nginx.org + names: + kind: NginxIngressController + listKind: NginxIngressControllerList + plural: nginxingresscontrollers + singular: nginxingresscontroller + scope: Namespaced + subresources: + status: {} + validation: + openAPIV3Schema: + description: NginxIngressController is the Schema for the nginxingresscontrollers + API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NginxIngressControllerSpec defines the desired state of NginxIngressController + properties: + appProtect: + description: App Protect support configuration. Requires enableCRDs + set to true. + nullable: true + properties: + enable: + description: Enable App Protect. + type: boolean + required: + - enable + type: object + configMapData: + additionalProperties: + type: string + description: Initial values of the Ingress Controller ConfigMap. Check + https://docs.nginx.com/nginx-ingress-controller/configuration/global-configuration/configmap-resource/ + for more information about possible values. + nullable: true + type: object + defaultSecret: + description: The TLS Secret for TLS termination of the default server. + The format is namespace/name. The secret must be of the type kubernetes.io/tls. + If not specified, the operator will generate and deploy a TLS Secret + with a self-signed certificate and key. + type: string + enableCRDs: + description: Enables the use of NGINX Ingress Resource Definitions (VirtualServer + and VirtualServerRoute). Default is true. + nullable: true + type: boolean + enableLatencyMetrics: + description: Bucketed response times from when NGINX establishes a connection + to an upstream server to when the last byte of the response body is + received by NGINX. **Note** The metric for the upstream isn't available + until traffic is sent to the upstream. + nullable: true + type: boolean + enableLeaderElection: + description: Enables Leader election to avoid multiple replicas of the + controller reporting the status of Ingress resources – only one replica + will report status. + type: boolean + enablePreviewPolicies: + description: Enables preview policies. Requires enableCRDs set to true. + type: boolean + enableSnippets: + description: Enable custom NGINX configuration snippets in VirtualServer + and VirtualServerRoute resources. Requires enableCRDs set to true. + type: boolean + enableTLSPassthrough: + description: Enable TLS Passthrough on port 443. Requires enableCRDs + set to true. + type: boolean + globalConfiguration: + description: The GlobalConfiguration resource for global configuration + of the Ingress Controller. Format is namespace/name. Requires enableCRDs + set to true. + type: string + healthStatus: + description: Adds a new location to the default server. The location + responds with the 200 status code for any request. Useful for external + health-checking of the Ingress controller. + nullable: true + properties: + enable: + description: Enable the HealthStatus. + type: boolean + uri: + description: URI of the location. Default is `/nginx-health`. + type: string + required: + - enable + type: object + image: + description: The image of the Ingress Controller. + properties: + pullPolicy: + description: The ImagePullPolicy of the image. + enum: + - Never + - Always + - IfNotPresent + type: string + repository: + description: The repository of the image. + type: string + tag: + description: The tag (version) of the image. + type: string + required: + - pullPolicy + - repository + - tag + type: object + ingressClass: + description: A class of the Ingress controller. The Ingress controller + only processes Ingress resources that belong to its class (in other + words, have the annotation “kubernetes.io/ingress.class”). Additionally, + the Ingress controller processes Ingress resources that do not have + that annotation, which can be disabled by setting UseIngressClassOnly + to true. Default is `nginx`. + type: string + logLevel: + description: Log level for V logs. Format is 0 - 3 + maximum: 3 + minimum: 0 + type: integer + nginxDebug: + description: 'Enable debugging for NGINX. Uses the nginx-debug binary. + Requires ‘error-log-level: debug’ in the ConfigMapData.' + type: boolean + nginxPlus: + description: Deploys the Ingress Controller for NGINX Plus. The default + is false meaning the Ingress Controller will be deployed for NGINX + OSS. + type: boolean + nginxReloadTimeout: + description: Timeout in milliseconds which the Ingress Controller will + wait for a successful NGINX reload after a change or at the initial + start. + type: integer + nginxStatus: + description: NGINX stub_status, or the NGINX Plus API. + nullable: true + properties: + allowCidrs: + description: Whitelist IPv4 IP/CIDR blocks to allow access to NGINX + stub_status or the NGINX Plus API. Separate multiple IP/CIDR by + commas. (default “127.0.0.1”) + type: string + enable: + description: Enable the NginxStatus. + type: boolean + port: + description: Set the port where the NGINX stub_status or the NGINX + Plus API is exposed. Default is 8080. Format is 1023 - 65535 + maximum: 65535 + minimum: 1023 + nullable: true + type: integer + required: + - enable + type: object + prometheus: + description: NGINX or NGINX Plus metrics in the Prometheus format. + nullable: true + properties: + enable: + description: Enable Prometheus metrics. + type: boolean + port: + description: Sets the port where the Prometheus metrics are exposed. + Default is 9113. Format is 1023 - 65535 + maximum: 65535 + minimum: 1023 + nullable: true + type: integer + required: + - enable + type: object + replicas: + description: The number of replicas of the Ingress Controller pod. The + default is 1. Only applies if the type is set to deployment. + format: int32 + nullable: true + type: integer + reportIngressStatus: + description: Update the address field in the status of Ingresses resources. + nullable: true + properties: + enable: + description: Enable the ReportIngressStatus. + type: boolean + externalService: + description: 'Specifies the name of the service with the type LoadBalancer + through which the Ingress controller pods are exposed externally. + The external address of the service is used when reporting the + status of Ingress resources. Note: Only if serviceType is NodePort.' + type: string + ingressLink: + description: 'Specifies the name of the IngressLink resource, which + exposes the Ingress Controller pods via a BIG-IP system. The IP + of the BIG-IP system is used when reporting the status of Ingress, + VirtualServer and VirtualServerRoute resources. Requires reportIngressStatus.enable + set to true. Note: Only if serviceType is NodePort and reportIngressStatus.externalService + is not set.' + type: string + required: + - enable + type: object + service: + description: The service of the Ingress controller. + nullable: true + properties: + extraLabels: + additionalProperties: + type: string + description: Specifies extra labels of the service. + type: object + type: object + serviceType: + description: 'The type of the Service for the Ingress Controller. Valid + Service types are: NodePort and LoadBalancer.' + enum: + - NodePort + - LoadBalancer + type: string + type: + description: The type of the Ingress Controller installation - deployment + or daemonset. + enum: + - deployment + - daemonset + type: string + useIngressClassOnly: + description: Ignore Ingress resources without the “kubernetes.io/ingress.class” + annotation. + type: boolean + watchNamespace: + description: Namespace to watch for Ingress resources. By default the + Ingress controller watches all namespaces. + type: string + wildcardTLS: + description: A Secret with a TLS certificate and key for TLS termination + of every Ingress host for which TLS termination is enabled but the + Secret is not specified. The secret must be of the type kubernetes.io/tls. + If the argument is not set, for such Ingress hosts NGINX will break + any attempt to establish a TLS connection. If the argument is set, + but the Ingress controller is not able to fetch the Secret from Kubernetes + API, the Ingress Controller will fail to start. Format is namespace/name. + type: string + required: + - image + - serviceType + - type + type: object + status: + description: NginxIngressControllerStatus defines the observed state of + NginxIngressController + properties: + deployed: + description: Deployed is true if the Operator has finished the deployment + of the NginxIngressController. + type: boolean + required: + - deployed + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 + served: true + storage: true diff --git a/bundle/0.1.0/manifests/k8s.nginx.org_nginxingresscontrollers_crd.yaml b/bundle/0.1.0/manifests/k8s.nginx.org_nginxingresscontrollers_crd.yaml new file mode 100644 index 00000000..511f903f --- /dev/null +++ b/bundle/0.1.0/manifests/k8s.nginx.org_nginxingresscontrollers_crd.yaml @@ -0,0 +1,287 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: nginxingresscontrollers.k8s.nginx.org +spec: + group: k8s.nginx.org + names: + kind: NginxIngressController + listKind: NginxIngressControllerList + plural: nginxingresscontrollers + singular: nginxingresscontroller + scope: Namespaced + subresources: + status: {} + validation: + openAPIV3Schema: + description: NginxIngressController is the Schema for the nginxingresscontrollers + API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NginxIngressControllerSpec defines the desired state of NginxIngressController + properties: + appProtect: + description: App Protect support configuration. Requires enableCRDs + set to true. + nullable: true + properties: + enable: + description: Enable App Protect. + type: boolean + required: + - enable + type: object + configMapData: + additionalProperties: + type: string + description: Initial values of the Ingress Controller ConfigMap. Check + https://docs.nginx.com/nginx-ingress-controller/configuration/global-configuration/configmap-resource/ + for more information about possible values. + nullable: true + type: object + defaultSecret: + description: The TLS Secret for TLS termination of the default server. + The format is namespace/name. The secret must be of the type kubernetes.io/tls. + If not specified, the operator will generate and deploy a TLS Secret + with a self-signed certificate and key. + type: string + enableCRDs: + description: Enables the use of NGINX Ingress Resource Definitions (VirtualServer + and VirtualServerRoute). Default is true. + nullable: true + type: boolean + enableLatencyMetrics: + description: Bucketed response times from when NGINX establishes a connection + to an upstream server to when the last byte of the response body is + received by NGINX. **Note** The metric for the upstream isn't available + until traffic is sent to the upstream. + nullable: true + type: boolean + enableLeaderElection: + description: Enables Leader election to avoid multiple replicas of the + controller reporting the status of Ingress resources – only one replica + will report status. + type: boolean + enablePreviewPolicies: + description: Enables preview policies. Requires enableCRDs set to true. + type: boolean + enableSnippets: + description: Enable custom NGINX configuration snippets in VirtualServer + and VirtualServerRoute resources. Requires enableCRDs set to true. + type: boolean + enableTLSPassthrough: + description: Enable TLS Passthrough on port 443. Requires enableCRDs + set to true. + type: boolean + globalConfiguration: + description: The GlobalConfiguration resource for global configuration + of the Ingress Controller. Format is namespace/name. Requires enableCRDs + set to true. + type: string + healthStatus: + description: Adds a new location to the default server. The location + responds with the 200 status code for any request. Useful for external + health-checking of the Ingress controller. + nullable: true + properties: + enable: + description: Enable the HealthStatus. + type: boolean + uri: + description: URI of the location. Default is `/nginx-health`. + type: string + required: + - enable + type: object + image: + description: The image of the Ingress Controller. + properties: + pullPolicy: + description: The ImagePullPolicy of the image. + enum: + - Never + - Always + - IfNotPresent + type: string + repository: + description: The repository of the image. + type: string + tag: + description: The tag (version) of the image. + type: string + required: + - pullPolicy + - repository + - tag + type: object + ingressClass: + description: A class of the Ingress controller. The Ingress controller + only processes Ingress resources that belong to its class (in other + words, have the annotation “kubernetes.io/ingress.class”). Additionally, + the Ingress controller processes Ingress resources that do not have + that annotation, which can be disabled by setting UseIngressClassOnly + to true. Default is `nginx`. + type: string + logLevel: + description: Log level for V logs. Format is 0 - 3 + maximum: 3 + minimum: 0 + type: integer + nginxDebug: + description: 'Enable debugging for NGINX. Uses the nginx-debug binary. + Requires ‘error-log-level: debug’ in the ConfigMapData.' + type: boolean + nginxPlus: + description: Deploys the Ingress Controller for NGINX Plus. The default + is false meaning the Ingress Controller will be deployed for NGINX + OSS. + type: boolean + nginxReloadTimeout: + description: Timeout in milliseconds which the Ingress Controller will + wait for a successful NGINX reload after a change or at the initial + start. + type: integer + nginxStatus: + description: NGINX stub_status, or the NGINX Plus API. + nullable: true + properties: + allowCidrs: + description: Whitelist IPv4 IP/CIDR blocks to allow access to NGINX + stub_status or the NGINX Plus API. Separate multiple IP/CIDR by + commas. (default “127.0.0.1”) + type: string + enable: + description: Enable the NginxStatus. + type: boolean + port: + description: Set the port where the NGINX stub_status or the NGINX + Plus API is exposed. Default is 8080. Format is 1023 - 65535 + maximum: 65535 + minimum: 1023 + nullable: true + type: integer + required: + - enable + type: object + prometheus: + description: NGINX or NGINX Plus metrics in the Prometheus format. + nullable: true + properties: + enable: + description: Enable Prometheus metrics. + type: boolean + port: + description: Sets the port where the Prometheus metrics are exposed. + Default is 9113. Format is 1023 - 65535 + maximum: 65535 + minimum: 1023 + nullable: true + type: integer + required: + - enable + type: object + replicas: + description: The number of replicas of the Ingress Controller pod. The + default is 1. Only applies if the type is set to deployment. + format: int32 + nullable: true + type: integer + reportIngressStatus: + description: Update the address field in the status of Ingresses resources. + nullable: true + properties: + enable: + description: Enable the ReportIngressStatus. + type: boolean + externalService: + description: 'Specifies the name of the service with the type LoadBalancer + through which the Ingress controller pods are exposed externally. + The external address of the service is used when reporting the + status of Ingress resources. Note: Only if serviceType is NodePort.' + type: string + ingressLink: + description: 'Specifies the name of the IngressLink resource, which + exposes the Ingress Controller pods via a BIG-IP system. The IP + of the BIG-IP system is used when reporting the status of Ingress, + VirtualServer and VirtualServerRoute resources. Requires reportIngressStatus.enable + set to true. Note: Only if serviceType is NodePort and reportIngressStatus.externalService + is not set.' + type: string + required: + - enable + type: object + service: + description: The service of the Ingress controller. + nullable: true + properties: + extraLabels: + additionalProperties: + type: string + description: Specifies extra labels of the service. + type: object + type: object + serviceType: + description: 'The type of the Service for the Ingress Controller. Valid + Service types are: NodePort and LoadBalancer.' + enum: + - NodePort + - LoadBalancer + type: string + type: + description: The type of the Ingress Controller installation - deployment + or daemonset. + enum: + - deployment + - daemonset + type: string + useIngressClassOnly: + description: Ignore Ingress resources without the “kubernetes.io/ingress.class” + annotation. + type: boolean + watchNamespace: + description: Namespace to watch for Ingress resources. By default the + Ingress controller watches all namespaces. + type: string + wildcardTLS: + description: A Secret with a TLS certificate and key for TLS termination + of every Ingress host for which TLS termination is enabled but the + Secret is not specified. The secret must be of the type kubernetes.io/tls. + If the argument is not set, for such Ingress hosts NGINX will break + any attempt to establish a TLS connection. If the argument is set, + but the Ingress controller is not able to fetch the Secret from Kubernetes + API, the Ingress Controller will fail to start. Format is namespace/name. + type: string + required: + - image + - serviceType + - type + type: object + status: + description: NginxIngressControllerStatus defines the observed state of + NginxIngressController + properties: + deployed: + description: Deployed is true if the Operator has finished the deployment + of the NginxIngressController. + type: boolean + required: + - deployed + type: object + type: object + version: v1alpha1 + versions: + - name: v1alpha1 + served: true + storage: true diff --git a/bundle/0.1.0/manifests/nginx-ingress-operator.v0.1.0.clusterserviceversion.yaml b/bundle/0.1.0/manifests/nginx-ingress-operator.v0.1.0.clusterserviceversion.yaml new file mode 100644 index 00000000..9b6fb079 --- /dev/null +++ b/bundle/0.1.0/manifests/nginx-ingress-operator.v0.1.0.clusterserviceversion.yaml @@ -0,0 +1,374 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: >- + [{ "apiVersion": "k8s.nginx.org/v1alpha1", "kind": "NginxIngressController", "metadata": { "name": "my-nginx-ingress-controller", "namespace": "my-nginx-ingress" }, "spec": { "ingressClass": "nginx", "image": { "pullPolicy": "Always", "repository": "docker.io/nginx/nginx-ingress", "tag": "1.10.0-ubi" }, "nginxPlus": false, "serviceType": "NodePort", "type": "deployment" } }] + capabilities: Basic Install + categories: Networking + certified: "true" + containerImage: registry.connect.redhat.com/nginx/nginx-ingress-operator:0.1.0 + createdAt: "2020-03-03T12:59:59Z" + description: The NGINX Ingress Operator is a Kubernetes/OpenShift component which + deploys and manages one or more NGINX/NGINX Plus Ingress Controllers + repository: https://github.com/nginxinc/nginx-ingress-operator + support: NGINX + name: nginx-ingress-operator.v0.1.0 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: NginxIngressController is the Schema for the nginxingresscontrollers + API + kind: NginxIngressController + name: nginxingresscontrollers.k8s.nginx.org + displayName: NginxIngressController + resources: + - kind: Deployment + name: A Kubernetes Deployment + version: v1 + - kind: ReplicaSet + name: A Kubernetes ReplicaSet + version: v1beta2 + - kind: Pod + name: A Kubernetes Pod + version: v1 + specDescriptors: + - description: App Protect support configuration. Requires enableCRDs set to + true. + displayName: App Protect + path: appProtect + - description: Initial values of the Ingress Controller ConfigMap. Check https://docs.nginx.com/nginx-ingress-controller/configuration/global-configuration/configmap-resource/ + for more information about possible values. + displayName: Config Map Data + path: configMapData + - description: The TLS Secret for TLS termination of the default server. The + format is namespace/name. The secret must be of the type kubernetes.io/tls. + If not specified, the operator will generate and deploy a TLS Secret with + a self-signed certificate and key. + displayName: Default Secret + path: defaultSecret + - description: Enables the use of NGINX Ingress Resource Definitions (VirtualServer + and VirtualServerRoute). Default is true. + displayName: Enable CRDs + path: enableCRDs + - description: Bucketed response times from when NGINX establishes a connection + to an upstream server to when the last byte of the response body is received + by NGINX. **Note** The metric for the upstream isn't available until traffic + is sent to the upstream. + displayName: Enable Latency Metrics + path: enableLatencyMetrics + - description: Enables Leader election to avoid multiple replicas of the controller + reporting the status of Ingress resources – only one replica will report + status. + displayName: Enable Leader Election + path: enableLeaderElection + - description: Enables preview policies. Requires enableCRDs set to true. + displayName: Enable Preview Policies + path: enablePreviewPolicies + - description: Enable custom NGINX configuration snippets in VirtualServer and + VirtualServerRoute resources. Requires enableCRDs set to true. + displayName: Enable Snippets + path: enableSnippets + - description: Enable TLS Passthrough on port 443. Requires enableCRDs set to + true. + displayName: Enable TLSPassthrough + path: enableTLSPassthrough + - description: The GlobalConfiguration resource for global configuration of + the Ingress Controller. Format is namespace/name. Requires enableCRDs set + to true. + displayName: Global Configuration + path: globalConfiguration + - description: Adds a new location to the default server. The location responds + with the 200 status code for any request. Useful for external health-checking + of the Ingress controller. + displayName: Health Status + path: healthStatus + - description: The image of the Ingress Controller. + displayName: Image + path: image + - description: A class of the Ingress controller. The Ingress controller only + processes Ingress resources that belong to its class (in other words, have + the annotation “kubernetes.io/ingress.class”). Additionally, the Ingress + controller processes Ingress resources that do not have that annotation, + which can be disabled by setting UseIngressClassOnly to true. Default is + `nginx`. + displayName: Ingress Class + path: ingressClass + - description: Log level for V logs. Format is 0 - 3 + displayName: Log Level + path: logLevel + - description: 'Enable debugging for NGINX. Uses the nginx-debug binary. Requires + ‘error-log-level: debug’ in the ConfigMapData.' + displayName: Nginx Debug + path: nginxDebug + - description: Deploys the Ingress Controller for NGINX Plus. The default is + false meaning the Ingress Controller will be deployed for NGINX OSS. + displayName: Nginx Plus + path: nginxPlus + - description: Timeout in milliseconds which the Ingress Controller will wait + for a successful NGINX reload after a change or at the initial start. + displayName: Nginx Reload Timeout + path: nginxReloadTimeout + - description: NGINX stub_status, or the NGINX Plus API. + displayName: Nginx Status + path: nginxStatus + - description: NGINX or NGINX Plus metrics in the Prometheus format. + displayName: Prometheus + path: prometheus + - description: The number of replicas of the Ingress Controller pod. The default + is 1. Only applies if the type is set to deployment. + displayName: Replicas + path: replicas + - description: Update the address field in the status of Ingresses resources. + displayName: Report Ingress Status + path: reportIngressStatus + - description: 'Specifies the name of the IngressLink resource, which exposes + the Ingress Controller pods via a BIG-IP system. The IP of the BIG-IP system + is used when reporting the status of Ingress, VirtualServer and VirtualServerRoute + resources. Requires reportIngressStatus.enable set to true. Note: Only if + serviceType is NodePort and reportIngressStatus.externalService is not set.' + displayName: Ingress Link + path: reportIngressStatus.ingressLink + - description: The service of the Ingress controller. + displayName: Service + path: service + - description: 'The type of the Service for the Ingress Controller. Valid Service + types are: NodePort and LoadBalancer.' + displayName: Service Type + path: serviceType + - description: The type of the Ingress Controller installation - deployment + or daemonset. + displayName: Type + path: type + - description: Ignore Ingress resources without the “kubernetes.io/ingress.class” + annotation. + displayName: Use Ingress Class Only + path: useIngressClassOnly + - description: Namespace to watch for Ingress resources. By default the Ingress + controller watches all namespaces. + displayName: Watch Namespace + path: watchNamespace + - description: A Secret with a TLS certificate and key for TLS termination of + every Ingress host for which TLS termination is enabled but the Secret is + not specified. The secret must be of the type kubernetes.io/tls. If the + argument is not set, for such Ingress hosts NGINX will break any attempt + to establish a TLS connection. If the argument is set, but the Ingress controller + is not able to fetch the Secret from Kubernetes API, the Ingress Controller + will fail to start. Format is namespace/name. + displayName: Wildcard TLS + path: wildcardTLS + statusDescriptors: + - description: Deployed is true if the Operator has finished the deployment + of the NginxIngressController. + displayName: Deployed + path: deployed + version: v1alpha1 + description: The NGINX Ingress Operator is a Kubernetes/OpenShift component which + deploys and manages one or more NGINX/NGINX Plus Ingress Controllers + displayName: Nginx Ingress Operator + icon: + - base64data: PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2My4zNiA3My40NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwMDk2Mzk7fS5jbHMtMntmaWxsOiNmZmY7fS5jbHMtM3tmaWxsOiM5OTk7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5OR0lOWC1oZXgtc291cmNlLVJHQi0wMjwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNLjUwMjcyLDU0LjcyMWEzLjYzNywzLjYzNywwLDAsMCwxLjM2NjQxLDEuMzU1OTNMMjkuODIxOTIsNzIuMjE1NDlsLjAwMDg3LS4wMDA4N2EzLjY2NzkzLDMuNjY3OTMsMCwwLDAsMy43MTUyOSwwTDYxLjQ5MTc1LDU2LjA3NjA2YTMuNjY1NjgsMy42NjU2OCwwLDAsMCwxLjg1Njc3LTMuMjE2MTlWMjAuNTgyNzVsLS4wMDA4Ny0uMDAwODdBMy42NjY4NSwzLjY2Njg1LDAsMCwwLDYxLjQ5LDE3LjM2NDgxTDMzLjUzNjM0LDEuMjI2MjVWMS4yMjUzOGEzLjY2MzEzLDMuNjYzMTMsMCwwLDAtMy43MTI2OCwwdi4wMDA4N0wxLjg3MDg3LDE3LjM2NDgxQTMuNjY1MywzLjY2NTMsMCwwLDAsLjAxMjM1LDIwLjU4MTg4bC0uMDAwODcuMDAwODdWNTIuODU5ODdBMy42NDQyNiwzLjY0NDI2LDAsMCwwLC41MDE4NSw1NC43MjEiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0yMi43MzAxNSw0OS4wMDhhMy41OTQ4OCwzLjU5NDg4LDAsMCwxLTcuMTg5NzYsMGwuMDAwODguMDAwODguMDAzNDktMjQuNjc3MjdjMC0xLjkxMTc0LDEuNjg5MjQtMy40OTI3OSw0LjA4MTc1LTMuNDkyNzlhNi4zOTI4Miw2LjM5MjgyLDAsMCwxLDQuOTAwMjEsMi4xOTFMMjUuNjEzLDI0LjMyOTg5LDQwLjYzMTI0LDQyLjMwMjUzVjI0LjQzMkg0MC42Mjk1YTMuNTk0ODgsMy41OTQ4OCwwLDAsMSw3LjE4OTc1LDBoLS4wMDA4N2wtLjAwMzQ5LDI0LjY3NTUyYzAsMS45MTE3NS0xLjY5MDExLDMuNDkyNzktNC4wODE3NSwzLjQ5Mjc5YTYuMzg4NTcsNi4zODg1NywwLDAsMS00LjkwMDIxLTIuMTkxTDIyLjcyODQsMzEuMTM2NTlWNDkuMDA4OVoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik01OS45NzQ3OCw2Ni4wMzQxaC40NTkzNFY2NS4wMTFoLjM2MzM1YTEuMDM2NzQsMS4wMzY3NCwwLDAsMSwuNTEwMzcuMDg1MjIuNjM5MTcuNjM5MTcsMCwwLDEsLjI0MjU1LjU5NTEzdi4yMDk3NmwuMDEwMjkuMDc4MmEuMTU3ODEuMTU3ODEsMCwwLDEsLjAwNy4wMzI3OGMuMDAyMzQuMDEyNjQuMDAzMjguMDE2MzguMDEwMy4wMjJoLjQyNTYzbC0uMDE1NDYtLjAyOWEuMjk4NjMuMjk4NjMsMCwwLDEtLjAyMDYtLjEzM2MtLjAwNjA5LS4wNzM1MS0uMDA2MDktLjEzNjI1LS4wMDYwOS0uMTk0MzF2LS4xOTM4NWEuNzQxOTQuNzQxOTQsMCwwLDAtLjE0MjM0LS40MDU0OS42NjEyOS42NjEyOSwwLDAsMC0uNDUzMjUtLjI1NDcyLDEuMTE4ODQsMS4xMTg4NCwwLDAsMCwuMzc3ODctLjEyMjY4LjU2NjczLjU2NjczLDAsMCwwLC4yNTM3OC0uNTE1MDUuNjQwMDguNjQwMDgsMCwwLDAtLjQwMTc0LS42NjA2OCwxLjk5OTA2LDEuOTk5MDYsMCwwLDAtLjcxMjE5LS4wOTMxOGgtLjkwODg0Wm0xLjMwNjM3LTEuNDAyODJhMS4xODgyLDEuMTg4MiwwLDAsMS0uNDM2ODYuMDU4MDZoLS40MTAxN1Y2My43NDIxaC4zOTE0NGExLjE1NTUsMS4xNTU1LDAsMCwxLC41NTIuMTAxNjEuMzk0MTMuMzk0MTMsMCwwLDEsLjE3Mjc4LjM3OTc0LjQwMDg3LjQwMDg3LDAsMCwxLS4yNjkyNC40MDc4M20xLjMzNC0xLjU2MzlhMi4zMDc5MiwyLjMwNzkyLDAsMCwwLTEuNjg3LS42ODk3MSwyLjM3MywyLjM3MywwLDAsMCwwLDQuNzQ2LDIuMzc3MjQsMi4zNzcyNCwwLDAsMCwxLjY4Ny00LjA1NjNtLS4yNDExNC4yMzU1MmExLjk0MzU5LDEuOTQzNTksMCwwLDEsLjU5NTU5LDEuNDQzNTYsMi4wMzkyMiwyLjAzOTIyLDAsMCwxLTMuNDg1NTIsMS40NTA1OSwyLjAxMzExLDIuMDEzMTEsMCwwLDEtLjU5Mjc5LTEuNDUwNTlBMi4wNDYyNywyLjA0NjI3LDAsMCwxLDYwLjkyODEsNjIuNjk3YTEuOTQ2LDEuOTQ2LDAsMCwxLDEuNDQ1OTEuNjA1ODkiLz48L3N2Zz4= + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - pods + - services + - services/finalizers + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - serviceaccounts + - namespaces + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - get + - create + - apiGroups: + - apps + resourceNames: + - nginx-ingress-operator + resources: + - deployments/finalizers + verbs: + - update + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - apiGroups: + - apps + resources: + - replicasets + - deployments + verbs: + - get + - apiGroups: + - k8s.nginx.org + - appprotect.f5.com + resources: + - '*' + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - roles + - rolebindings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - create + - delete + - update + - get + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - list + - watch + - get + - apiGroups: + - networking.k8s.io + resources: + - ingresses/status + verbs: + - update + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - create + - update + - get + - list + - watch + - apiGroups: + - networking.k8s.io + resources: + - ingressclasses + verbs: + - get + - create + serviceAccountName: nginx-ingress-operator + deployments: + - name: nginx-ingress-operator + spec: + replicas: 1 + selector: + matchLabels: + name: nginx-ingress-operator + strategy: {} + template: + metadata: + labels: + name: nginx-ingress-operator + spec: + containers: + - command: + - nginx-ingress-operator + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAME + value: nginx-ingress-operator + image: registry.connect.redhat.com/nginx/nginx-ingress-operator:0.1.0 + imagePullPolicy: IfNotPresent + name: nginx-ingress-operator + resources: {} + serviceAccountName: nginx-ingress-operator + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - nginx + - ingress-controller + - ingress + - controller + - kubernetes + - openshift + links: + - name: Documentation for NGINX Plus + url: https://github.com/nginxinc/nginx-ingress-operator/tree/release-0.1.0/examples/deployment-plus-min + - name: Documentation for NGINX Open Source + url: https://github.com/nginxinc/nginx-ingress-operator/tree/release-0.1.0/examples/deployment-oss-min + - name: Documentation for NginxIngressController CR + url: https://github.com/nginxinc/nginx-ingress-operator/tree/release-0.1.0/docs/nginx-ingress-controller.md + maintainers: + - email: kubernetes@nginx.com + name: NGINX Inc + maturity: alpha + provider: + name: NGINX Inc + replaces: nginx-ingress-operator.v0.0.7 + version: 0.1.0 diff --git a/bundle/0.1.0/metadata/annotations.yaml b/bundle/0.1.0/metadata/annotations.yaml new file mode 100644 index 00000000..4e0fdde4 --- /dev/null +++ b/bundle/0.1.0/metadata/annotations.yaml @@ -0,0 +1,7 @@ +annotations: + operators.operatorframework.io.bundle.channel.default.v1: alpha + operators.operatorframework.io.bundle.channels.v1: alpha + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: nginx-ingress-operator diff --git a/bundle/0.1.0/nginx-ingress-operator.v0.1.0.clusterserviceversion.yaml b/bundle/0.1.0/nginx-ingress-operator.v0.1.0.clusterserviceversion.yaml new file mode 100644 index 00000000..9b6fb079 --- /dev/null +++ b/bundle/0.1.0/nginx-ingress-operator.v0.1.0.clusterserviceversion.yaml @@ -0,0 +1,374 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: >- + [{ "apiVersion": "k8s.nginx.org/v1alpha1", "kind": "NginxIngressController", "metadata": { "name": "my-nginx-ingress-controller", "namespace": "my-nginx-ingress" }, "spec": { "ingressClass": "nginx", "image": { "pullPolicy": "Always", "repository": "docker.io/nginx/nginx-ingress", "tag": "1.10.0-ubi" }, "nginxPlus": false, "serviceType": "NodePort", "type": "deployment" } }] + capabilities: Basic Install + categories: Networking + certified: "true" + containerImage: registry.connect.redhat.com/nginx/nginx-ingress-operator:0.1.0 + createdAt: "2020-03-03T12:59:59Z" + description: The NGINX Ingress Operator is a Kubernetes/OpenShift component which + deploys and manages one or more NGINX/NGINX Plus Ingress Controllers + repository: https://github.com/nginxinc/nginx-ingress-operator + support: NGINX + name: nginx-ingress-operator.v0.1.0 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: NginxIngressController is the Schema for the nginxingresscontrollers + API + kind: NginxIngressController + name: nginxingresscontrollers.k8s.nginx.org + displayName: NginxIngressController + resources: + - kind: Deployment + name: A Kubernetes Deployment + version: v1 + - kind: ReplicaSet + name: A Kubernetes ReplicaSet + version: v1beta2 + - kind: Pod + name: A Kubernetes Pod + version: v1 + specDescriptors: + - description: App Protect support configuration. Requires enableCRDs set to + true. + displayName: App Protect + path: appProtect + - description: Initial values of the Ingress Controller ConfigMap. Check https://docs.nginx.com/nginx-ingress-controller/configuration/global-configuration/configmap-resource/ + for more information about possible values. + displayName: Config Map Data + path: configMapData + - description: The TLS Secret for TLS termination of the default server. The + format is namespace/name. The secret must be of the type kubernetes.io/tls. + If not specified, the operator will generate and deploy a TLS Secret with + a self-signed certificate and key. + displayName: Default Secret + path: defaultSecret + - description: Enables the use of NGINX Ingress Resource Definitions (VirtualServer + and VirtualServerRoute). Default is true. + displayName: Enable CRDs + path: enableCRDs + - description: Bucketed response times from when NGINX establishes a connection + to an upstream server to when the last byte of the response body is received + by NGINX. **Note** The metric for the upstream isn't available until traffic + is sent to the upstream. + displayName: Enable Latency Metrics + path: enableLatencyMetrics + - description: Enables Leader election to avoid multiple replicas of the controller + reporting the status of Ingress resources – only one replica will report + status. + displayName: Enable Leader Election + path: enableLeaderElection + - description: Enables preview policies. Requires enableCRDs set to true. + displayName: Enable Preview Policies + path: enablePreviewPolicies + - description: Enable custom NGINX configuration snippets in VirtualServer and + VirtualServerRoute resources. Requires enableCRDs set to true. + displayName: Enable Snippets + path: enableSnippets + - description: Enable TLS Passthrough on port 443. Requires enableCRDs set to + true. + displayName: Enable TLSPassthrough + path: enableTLSPassthrough + - description: The GlobalConfiguration resource for global configuration of + the Ingress Controller. Format is namespace/name. Requires enableCRDs set + to true. + displayName: Global Configuration + path: globalConfiguration + - description: Adds a new location to the default server. The location responds + with the 200 status code for any request. Useful for external health-checking + of the Ingress controller. + displayName: Health Status + path: healthStatus + - description: The image of the Ingress Controller. + displayName: Image + path: image + - description: A class of the Ingress controller. The Ingress controller only + processes Ingress resources that belong to its class (in other words, have + the annotation “kubernetes.io/ingress.class”). Additionally, the Ingress + controller processes Ingress resources that do not have that annotation, + which can be disabled by setting UseIngressClassOnly to true. Default is + `nginx`. + displayName: Ingress Class + path: ingressClass + - description: Log level for V logs. Format is 0 - 3 + displayName: Log Level + path: logLevel + - description: 'Enable debugging for NGINX. Uses the nginx-debug binary. Requires + ‘error-log-level: debug’ in the ConfigMapData.' + displayName: Nginx Debug + path: nginxDebug + - description: Deploys the Ingress Controller for NGINX Plus. The default is + false meaning the Ingress Controller will be deployed for NGINX OSS. + displayName: Nginx Plus + path: nginxPlus + - description: Timeout in milliseconds which the Ingress Controller will wait + for a successful NGINX reload after a change or at the initial start. + displayName: Nginx Reload Timeout + path: nginxReloadTimeout + - description: NGINX stub_status, or the NGINX Plus API. + displayName: Nginx Status + path: nginxStatus + - description: NGINX or NGINX Plus metrics in the Prometheus format. + displayName: Prometheus + path: prometheus + - description: The number of replicas of the Ingress Controller pod. The default + is 1. Only applies if the type is set to deployment. + displayName: Replicas + path: replicas + - description: Update the address field in the status of Ingresses resources. + displayName: Report Ingress Status + path: reportIngressStatus + - description: 'Specifies the name of the IngressLink resource, which exposes + the Ingress Controller pods via a BIG-IP system. The IP of the BIG-IP system + is used when reporting the status of Ingress, VirtualServer and VirtualServerRoute + resources. Requires reportIngressStatus.enable set to true. Note: Only if + serviceType is NodePort and reportIngressStatus.externalService is not set.' + displayName: Ingress Link + path: reportIngressStatus.ingressLink + - description: The service of the Ingress controller. + displayName: Service + path: service + - description: 'The type of the Service for the Ingress Controller. Valid Service + types are: NodePort and LoadBalancer.' + displayName: Service Type + path: serviceType + - description: The type of the Ingress Controller installation - deployment + or daemonset. + displayName: Type + path: type + - description: Ignore Ingress resources without the “kubernetes.io/ingress.class” + annotation. + displayName: Use Ingress Class Only + path: useIngressClassOnly + - description: Namespace to watch for Ingress resources. By default the Ingress + controller watches all namespaces. + displayName: Watch Namespace + path: watchNamespace + - description: A Secret with a TLS certificate and key for TLS termination of + every Ingress host for which TLS termination is enabled but the Secret is + not specified. The secret must be of the type kubernetes.io/tls. If the + argument is not set, for such Ingress hosts NGINX will break any attempt + to establish a TLS connection. If the argument is set, but the Ingress controller + is not able to fetch the Secret from Kubernetes API, the Ingress Controller + will fail to start. Format is namespace/name. + displayName: Wildcard TLS + path: wildcardTLS + statusDescriptors: + - description: Deployed is true if the Operator has finished the deployment + of the NginxIngressController. + displayName: Deployed + path: deployed + version: v1alpha1 + description: The NGINX Ingress Operator is a Kubernetes/OpenShift component which + deploys and manages one or more NGINX/NGINX Plus Ingress Controllers + displayName: Nginx Ingress Operator + icon: + - base64data: PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2My4zNiA3My40NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwMDk2Mzk7fS5jbHMtMntmaWxsOiNmZmY7fS5jbHMtM3tmaWxsOiM5OTk7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5OR0lOWC1oZXgtc291cmNlLVJHQi0wMjwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNLjUwMjcyLDU0LjcyMWEzLjYzNywzLjYzNywwLDAsMCwxLjM2NjQxLDEuMzU1OTNMMjkuODIxOTIsNzIuMjE1NDlsLjAwMDg3LS4wMDA4N2EzLjY2NzkzLDMuNjY3OTMsMCwwLDAsMy43MTUyOSwwTDYxLjQ5MTc1LDU2LjA3NjA2YTMuNjY1NjgsMy42NjU2OCwwLDAsMCwxLjg1Njc3LTMuMjE2MTlWMjAuNTgyNzVsLS4wMDA4Ny0uMDAwODdBMy42NjY4NSwzLjY2Njg1LDAsMCwwLDYxLjQ5LDE3LjM2NDgxTDMzLjUzNjM0LDEuMjI2MjVWMS4yMjUzOGEzLjY2MzEzLDMuNjYzMTMsMCwwLDAtMy43MTI2OCwwdi4wMDA4N0wxLjg3MDg3LDE3LjM2NDgxQTMuNjY1MywzLjY2NTMsMCwwLDAsLjAxMjM1LDIwLjU4MTg4bC0uMDAwODcuMDAwODdWNTIuODU5ODdBMy42NDQyNiwzLjY0NDI2LDAsMCwwLC41MDE4NSw1NC43MjEiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0yMi43MzAxNSw0OS4wMDhhMy41OTQ4OCwzLjU5NDg4LDAsMCwxLTcuMTg5NzYsMGwuMDAwODguMDAwODguMDAzNDktMjQuNjc3MjdjMC0xLjkxMTc0LDEuNjg5MjQtMy40OTI3OSw0LjA4MTc1LTMuNDkyNzlhNi4zOTI4Miw2LjM5MjgyLDAsMCwxLDQuOTAwMjEsMi4xOTFMMjUuNjEzLDI0LjMyOTg5LDQwLjYzMTI0LDQyLjMwMjUzVjI0LjQzMkg0MC42Mjk1YTMuNTk0ODgsMy41OTQ4OCwwLDAsMSw3LjE4OTc1LDBoLS4wMDA4N2wtLjAwMzQ5LDI0LjY3NTUyYzAsMS45MTE3NS0xLjY5MDExLDMuNDkyNzktNC4wODE3NSwzLjQ5Mjc5YTYuMzg4NTcsNi4zODg1NywwLDAsMS00LjkwMDIxLTIuMTkxTDIyLjcyODQsMzEuMTM2NTlWNDkuMDA4OVoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik01OS45NzQ3OCw2Ni4wMzQxaC40NTkzNFY2NS4wMTFoLjM2MzM1YTEuMDM2NzQsMS4wMzY3NCwwLDAsMSwuNTEwMzcuMDg1MjIuNjM5MTcuNjM5MTcsMCwwLDEsLjI0MjU1LjU5NTEzdi4yMDk3NmwuMDEwMjkuMDc4MmEuMTU3ODEuMTU3ODEsMCwwLDEsLjAwNy4wMzI3OGMuMDAyMzQuMDEyNjQuMDAzMjguMDE2MzguMDEwMy4wMjJoLjQyNTYzbC0uMDE1NDYtLjAyOWEuMjk4NjMuMjk4NjMsMCwwLDEtLjAyMDYtLjEzM2MtLjAwNjA5LS4wNzM1MS0uMDA2MDktLjEzNjI1LS4wMDYwOS0uMTk0MzF2LS4xOTM4NWEuNzQxOTQuNzQxOTQsMCwwLDAtLjE0MjM0LS40MDU0OS42NjEyOS42NjEyOSwwLDAsMC0uNDUzMjUtLjI1NDcyLDEuMTE4ODQsMS4xMTg4NCwwLDAsMCwuMzc3ODctLjEyMjY4LjU2NjczLjU2NjczLDAsMCwwLC4yNTM3OC0uNTE1MDUuNjQwMDguNjQwMDgsMCwwLDAtLjQwMTc0LS42NjA2OCwxLjk5OTA2LDEuOTk5MDYsMCwwLDAtLjcxMjE5LS4wOTMxOGgtLjkwODg0Wm0xLjMwNjM3LTEuNDAyODJhMS4xODgyLDEuMTg4MiwwLDAsMS0uNDM2ODYuMDU4MDZoLS40MTAxN1Y2My43NDIxaC4zOTE0NGExLjE1NTUsMS4xNTU1LDAsMCwxLC41NTIuMTAxNjEuMzk0MTMuMzk0MTMsMCwwLDEsLjE3Mjc4LjM3OTc0LjQwMDg3LjQwMDg3LDAsMCwxLS4yNjkyNC40MDc4M20xLjMzNC0xLjU2MzlhMi4zMDc5MiwyLjMwNzkyLDAsMCwwLTEuNjg3LS42ODk3MSwyLjM3MywyLjM3MywwLDAsMCwwLDQuNzQ2LDIuMzc3MjQsMi4zNzcyNCwwLDAsMCwxLjY4Ny00LjA1NjNtLS4yNDExNC4yMzU1MmExLjk0MzU5LDEuOTQzNTksMCwwLDEsLjU5NTU5LDEuNDQzNTYsMi4wMzkyMiwyLjAzOTIyLDAsMCwxLTMuNDg1NTIsMS40NTA1OSwyLjAxMzExLDIuMDEzMTEsMCwwLDEtLjU5Mjc5LTEuNDUwNTlBMi4wNDYyNywyLjA0NjI3LDAsMCwxLDYwLjkyODEsNjIuNjk3YTEuOTQ2LDEuOTQ2LDAsMCwxLDEuNDQ1OTEuNjA1ODkiLz48L3N2Zz4= + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - pods + - services + - services/finalizers + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - serviceaccounts + - namespaces + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - get + - create + - apiGroups: + - apps + resourceNames: + - nginx-ingress-operator + resources: + - deployments/finalizers + verbs: + - update + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - apiGroups: + - apps + resources: + - replicasets + - deployments + verbs: + - get + - apiGroups: + - k8s.nginx.org + - appprotect.f5.com + resources: + - '*' + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - roles + - rolebindings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - create + - delete + - update + - get + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - list + - watch + - get + - apiGroups: + - networking.k8s.io + resources: + - ingresses/status + verbs: + - update + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - create + - update + - get + - list + - watch + - apiGroups: + - networking.k8s.io + resources: + - ingressclasses + verbs: + - get + - create + serviceAccountName: nginx-ingress-operator + deployments: + - name: nginx-ingress-operator + spec: + replicas: 1 + selector: + matchLabels: + name: nginx-ingress-operator + strategy: {} + template: + metadata: + labels: + name: nginx-ingress-operator + spec: + containers: + - command: + - nginx-ingress-operator + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAME + value: nginx-ingress-operator + image: registry.connect.redhat.com/nginx/nginx-ingress-operator:0.1.0 + imagePullPolicy: IfNotPresent + name: nginx-ingress-operator + resources: {} + serviceAccountName: nginx-ingress-operator + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - nginx + - ingress-controller + - ingress + - controller + - kubernetes + - openshift + links: + - name: Documentation for NGINX Plus + url: https://github.com/nginxinc/nginx-ingress-operator/tree/release-0.1.0/examples/deployment-plus-min + - name: Documentation for NGINX Open Source + url: https://github.com/nginxinc/nginx-ingress-operator/tree/release-0.1.0/examples/deployment-oss-min + - name: Documentation for NginxIngressController CR + url: https://github.com/nginxinc/nginx-ingress-operator/tree/release-0.1.0/docs/nginx-ingress-controller.md + maintainers: + - email: kubernetes@nginx.com + name: NGINX Inc + maturity: alpha + provider: + name: NGINX Inc + replaces: nginx-ingress-operator.v0.0.7 + version: 0.1.0 diff --git a/bundle/bundle-0.1.0.Dockerfile b/bundle/bundle-0.1.0.Dockerfile new file mode 100644 index 00000000..7e21d96a --- /dev/null +++ b/bundle/bundle-0.1.0.Dockerfile @@ -0,0 +1,15 @@ +FROM scratch + +LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1 +LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/ +LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/ +LABEL operators.operatorframework.io.bundle.package.v1=nginx-ingress-operator +LABEL operators.operatorframework.io.bundle.channels.v1=alpha +LABEL operators.operatorframework.io.bundle.channel.default.v1=alpha + +COPY 0.1.0/manifests /manifests/ +COPY 0.1.0/metadata /metadata/ + +LABEL com.redhat.openshift.versions="v4.5,v4.6" +LABEL com.redhat.delivery.operator.bundle=true +LABEL com.redhat.delivery.backport=true diff --git a/bundle/nginx-ingress-operator.package.yaml b/bundle/nginx-ingress-operator.package.yaml index be5ec1b4..4bb87fd9 100644 --- a/bundle/nginx-ingress-operator.package.yaml +++ b/bundle/nginx-ingress-operator.package.yaml @@ -1,5 +1,5 @@ channels: -- currentCSV: nginx-ingress-operator.v0.0.7 +- currentCSV: nginx-ingress-operator.v0.1.0 name: alpha defaultChannel: alpha packageName: nginx-ingress-operator diff --git a/deploy/olm-catalog/nginx-ingress-operator/0.1.0/nginx-ingress-operator.v0.1.0.clusterserviceversion.yaml b/deploy/olm-catalog/nginx-ingress-operator/0.1.0/nginx-ingress-operator.v0.1.0.clusterserviceversion.yaml new file mode 100644 index 00000000..9b6fb079 --- /dev/null +++ b/deploy/olm-catalog/nginx-ingress-operator/0.1.0/nginx-ingress-operator.v0.1.0.clusterserviceversion.yaml @@ -0,0 +1,374 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: >- + [{ "apiVersion": "k8s.nginx.org/v1alpha1", "kind": "NginxIngressController", "metadata": { "name": "my-nginx-ingress-controller", "namespace": "my-nginx-ingress" }, "spec": { "ingressClass": "nginx", "image": { "pullPolicy": "Always", "repository": "docker.io/nginx/nginx-ingress", "tag": "1.10.0-ubi" }, "nginxPlus": false, "serviceType": "NodePort", "type": "deployment" } }] + capabilities: Basic Install + categories: Networking + certified: "true" + containerImage: registry.connect.redhat.com/nginx/nginx-ingress-operator:0.1.0 + createdAt: "2020-03-03T12:59:59Z" + description: The NGINX Ingress Operator is a Kubernetes/OpenShift component which + deploys and manages one or more NGINX/NGINX Plus Ingress Controllers + repository: https://github.com/nginxinc/nginx-ingress-operator + support: NGINX + name: nginx-ingress-operator.v0.1.0 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: NginxIngressController is the Schema for the nginxingresscontrollers + API + kind: NginxIngressController + name: nginxingresscontrollers.k8s.nginx.org + displayName: NginxIngressController + resources: + - kind: Deployment + name: A Kubernetes Deployment + version: v1 + - kind: ReplicaSet + name: A Kubernetes ReplicaSet + version: v1beta2 + - kind: Pod + name: A Kubernetes Pod + version: v1 + specDescriptors: + - description: App Protect support configuration. Requires enableCRDs set to + true. + displayName: App Protect + path: appProtect + - description: Initial values of the Ingress Controller ConfigMap. Check https://docs.nginx.com/nginx-ingress-controller/configuration/global-configuration/configmap-resource/ + for more information about possible values. + displayName: Config Map Data + path: configMapData + - description: The TLS Secret for TLS termination of the default server. The + format is namespace/name. The secret must be of the type kubernetes.io/tls. + If not specified, the operator will generate and deploy a TLS Secret with + a self-signed certificate and key. + displayName: Default Secret + path: defaultSecret + - description: Enables the use of NGINX Ingress Resource Definitions (VirtualServer + and VirtualServerRoute). Default is true. + displayName: Enable CRDs + path: enableCRDs + - description: Bucketed response times from when NGINX establishes a connection + to an upstream server to when the last byte of the response body is received + by NGINX. **Note** The metric for the upstream isn't available until traffic + is sent to the upstream. + displayName: Enable Latency Metrics + path: enableLatencyMetrics + - description: Enables Leader election to avoid multiple replicas of the controller + reporting the status of Ingress resources – only one replica will report + status. + displayName: Enable Leader Election + path: enableLeaderElection + - description: Enables preview policies. Requires enableCRDs set to true. + displayName: Enable Preview Policies + path: enablePreviewPolicies + - description: Enable custom NGINX configuration snippets in VirtualServer and + VirtualServerRoute resources. Requires enableCRDs set to true. + displayName: Enable Snippets + path: enableSnippets + - description: Enable TLS Passthrough on port 443. Requires enableCRDs set to + true. + displayName: Enable TLSPassthrough + path: enableTLSPassthrough + - description: The GlobalConfiguration resource for global configuration of + the Ingress Controller. Format is namespace/name. Requires enableCRDs set + to true. + displayName: Global Configuration + path: globalConfiguration + - description: Adds a new location to the default server. The location responds + with the 200 status code for any request. Useful for external health-checking + of the Ingress controller. + displayName: Health Status + path: healthStatus + - description: The image of the Ingress Controller. + displayName: Image + path: image + - description: A class of the Ingress controller. The Ingress controller only + processes Ingress resources that belong to its class (in other words, have + the annotation “kubernetes.io/ingress.class”). Additionally, the Ingress + controller processes Ingress resources that do not have that annotation, + which can be disabled by setting UseIngressClassOnly to true. Default is + `nginx`. + displayName: Ingress Class + path: ingressClass + - description: Log level for V logs. Format is 0 - 3 + displayName: Log Level + path: logLevel + - description: 'Enable debugging for NGINX. Uses the nginx-debug binary. Requires + ‘error-log-level: debug’ in the ConfigMapData.' + displayName: Nginx Debug + path: nginxDebug + - description: Deploys the Ingress Controller for NGINX Plus. The default is + false meaning the Ingress Controller will be deployed for NGINX OSS. + displayName: Nginx Plus + path: nginxPlus + - description: Timeout in milliseconds which the Ingress Controller will wait + for a successful NGINX reload after a change or at the initial start. + displayName: Nginx Reload Timeout + path: nginxReloadTimeout + - description: NGINX stub_status, or the NGINX Plus API. + displayName: Nginx Status + path: nginxStatus + - description: NGINX or NGINX Plus metrics in the Prometheus format. + displayName: Prometheus + path: prometheus + - description: The number of replicas of the Ingress Controller pod. The default + is 1. Only applies if the type is set to deployment. + displayName: Replicas + path: replicas + - description: Update the address field in the status of Ingresses resources. + displayName: Report Ingress Status + path: reportIngressStatus + - description: 'Specifies the name of the IngressLink resource, which exposes + the Ingress Controller pods via a BIG-IP system. The IP of the BIG-IP system + is used when reporting the status of Ingress, VirtualServer and VirtualServerRoute + resources. Requires reportIngressStatus.enable set to true. Note: Only if + serviceType is NodePort and reportIngressStatus.externalService is not set.' + displayName: Ingress Link + path: reportIngressStatus.ingressLink + - description: The service of the Ingress controller. + displayName: Service + path: service + - description: 'The type of the Service for the Ingress Controller. Valid Service + types are: NodePort and LoadBalancer.' + displayName: Service Type + path: serviceType + - description: The type of the Ingress Controller installation - deployment + or daemonset. + displayName: Type + path: type + - description: Ignore Ingress resources without the “kubernetes.io/ingress.class” + annotation. + displayName: Use Ingress Class Only + path: useIngressClassOnly + - description: Namespace to watch for Ingress resources. By default the Ingress + controller watches all namespaces. + displayName: Watch Namespace + path: watchNamespace + - description: A Secret with a TLS certificate and key for TLS termination of + every Ingress host for which TLS termination is enabled but the Secret is + not specified. The secret must be of the type kubernetes.io/tls. If the + argument is not set, for such Ingress hosts NGINX will break any attempt + to establish a TLS connection. If the argument is set, but the Ingress controller + is not able to fetch the Secret from Kubernetes API, the Ingress Controller + will fail to start. Format is namespace/name. + displayName: Wildcard TLS + path: wildcardTLS + statusDescriptors: + - description: Deployed is true if the Operator has finished the deployment + of the NginxIngressController. + displayName: Deployed + path: deployed + version: v1alpha1 + description: The NGINX Ingress Operator is a Kubernetes/OpenShift component which + deploys and manages one or more NGINX/NGINX Plus Ingress Controllers + displayName: Nginx Ingress Operator + icon: + - base64data: PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2My4zNiA3My40NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwMDk2Mzk7fS5jbHMtMntmaWxsOiNmZmY7fS5jbHMtM3tmaWxsOiM5OTk7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5OR0lOWC1oZXgtc291cmNlLVJHQi0wMjwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNLjUwMjcyLDU0LjcyMWEzLjYzNywzLjYzNywwLDAsMCwxLjM2NjQxLDEuMzU1OTNMMjkuODIxOTIsNzIuMjE1NDlsLjAwMDg3LS4wMDA4N2EzLjY2NzkzLDMuNjY3OTMsMCwwLDAsMy43MTUyOSwwTDYxLjQ5MTc1LDU2LjA3NjA2YTMuNjY1NjgsMy42NjU2OCwwLDAsMCwxLjg1Njc3LTMuMjE2MTlWMjAuNTgyNzVsLS4wMDA4Ny0uMDAwODdBMy42NjY4NSwzLjY2Njg1LDAsMCwwLDYxLjQ5LDE3LjM2NDgxTDMzLjUzNjM0LDEuMjI2MjVWMS4yMjUzOGEzLjY2MzEzLDMuNjYzMTMsMCwwLDAtMy43MTI2OCwwdi4wMDA4N0wxLjg3MDg3LDE3LjM2NDgxQTMuNjY1MywzLjY2NTMsMCwwLDAsLjAxMjM1LDIwLjU4MTg4bC0uMDAwODcuMDAwODdWNTIuODU5ODdBMy42NDQyNiwzLjY0NDI2LDAsMCwwLC41MDE4NSw1NC43MjEiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0yMi43MzAxNSw0OS4wMDhhMy41OTQ4OCwzLjU5NDg4LDAsMCwxLTcuMTg5NzYsMGwuMDAwODguMDAwODguMDAzNDktMjQuNjc3MjdjMC0xLjkxMTc0LDEuNjg5MjQtMy40OTI3OSw0LjA4MTc1LTMuNDkyNzlhNi4zOTI4Miw2LjM5MjgyLDAsMCwxLDQuOTAwMjEsMi4xOTFMMjUuNjEzLDI0LjMyOTg5LDQwLjYzMTI0LDQyLjMwMjUzVjI0LjQzMkg0MC42Mjk1YTMuNTk0ODgsMy41OTQ4OCwwLDAsMSw3LjE4OTc1LDBoLS4wMDA4N2wtLjAwMzQ5LDI0LjY3NTUyYzAsMS45MTE3NS0xLjY5MDExLDMuNDkyNzktNC4wODE3NSwzLjQ5Mjc5YTYuMzg4NTcsNi4zODg1NywwLDAsMS00LjkwMDIxLTIuMTkxTDIyLjcyODQsMzEuMTM2NTlWNDkuMDA4OVoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik01OS45NzQ3OCw2Ni4wMzQxaC40NTkzNFY2NS4wMTFoLjM2MzM1YTEuMDM2NzQsMS4wMzY3NCwwLDAsMSwuNTEwMzcuMDg1MjIuNjM5MTcuNjM5MTcsMCwwLDEsLjI0MjU1LjU5NTEzdi4yMDk3NmwuMDEwMjkuMDc4MmEuMTU3ODEuMTU3ODEsMCwwLDEsLjAwNy4wMzI3OGMuMDAyMzQuMDEyNjQuMDAzMjguMDE2MzguMDEwMy4wMjJoLjQyNTYzbC0uMDE1NDYtLjAyOWEuMjk4NjMuMjk4NjMsMCwwLDEtLjAyMDYtLjEzM2MtLjAwNjA5LS4wNzM1MS0uMDA2MDktLjEzNjI1LS4wMDYwOS0uMTk0MzF2LS4xOTM4NWEuNzQxOTQuNzQxOTQsMCwwLDAtLjE0MjM0LS40MDU0OS42NjEyOS42NjEyOSwwLDAsMC0uNDUzMjUtLjI1NDcyLDEuMTE4ODQsMS4xMTg4NCwwLDAsMCwuMzc3ODctLjEyMjY4LjU2NjczLjU2NjczLDAsMCwwLC4yNTM3OC0uNTE1MDUuNjQwMDguNjQwMDgsMCwwLDAtLjQwMTc0LS42NjA2OCwxLjk5OTA2LDEuOTk5MDYsMCwwLDAtLjcxMjE5LS4wOTMxOGgtLjkwODg0Wm0xLjMwNjM3LTEuNDAyODJhMS4xODgyLDEuMTg4MiwwLDAsMS0uNDM2ODYuMDU4MDZoLS40MTAxN1Y2My43NDIxaC4zOTE0NGExLjE1NTUsMS4xNTU1LDAsMCwxLC41NTIuMTAxNjEuMzk0MTMuMzk0MTMsMCwwLDEsLjE3Mjc4LjM3OTc0LjQwMDg3LjQwMDg3LDAsMCwxLS4yNjkyNC40MDc4M20xLjMzNC0xLjU2MzlhMi4zMDc5MiwyLjMwNzkyLDAsMCwwLTEuNjg3LS42ODk3MSwyLjM3MywyLjM3MywwLDAsMCwwLDQuNzQ2LDIuMzc3MjQsMi4zNzcyNCwwLDAsMCwxLjY4Ny00LjA1NjNtLS4yNDExNC4yMzU1MmExLjk0MzU5LDEuOTQzNTksMCwwLDEsLjU5NTU5LDEuNDQzNTYsMi4wMzkyMiwyLjAzOTIyLDAsMCwxLTMuNDg1NTIsMS40NTA1OSwyLjAxMzExLDIuMDEzMTEsMCwwLDEtLjU5Mjc5LTEuNDUwNTlBMi4wNDYyNywyLjA0NjI3LDAsMCwxLDYwLjkyODEsNjIuNjk3YTEuOTQ2LDEuOTQ2LDAsMCwxLDEuNDQ1OTEuNjA1ODkiLz48L3N2Zz4= + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - pods + - services + - services/finalizers + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - serviceaccounts + - namespaces + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - get + - create + - apiGroups: + - apps + resourceNames: + - nginx-ingress-operator + resources: + - deployments/finalizers + verbs: + - update + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - apiGroups: + - apps + resources: + - replicasets + - deployments + verbs: + - get + - apiGroups: + - k8s.nginx.org + - appprotect.f5.com + resources: + - '*' + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - roles + - rolebindings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - create + - delete + - update + - get + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - list + - watch + - get + - apiGroups: + - networking.k8s.io + resources: + - ingresses/status + verbs: + - update + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - create + - update + - get + - list + - watch + - apiGroups: + - networking.k8s.io + resources: + - ingressclasses + verbs: + - get + - create + serviceAccountName: nginx-ingress-operator + deployments: + - name: nginx-ingress-operator + spec: + replicas: 1 + selector: + matchLabels: + name: nginx-ingress-operator + strategy: {} + template: + metadata: + labels: + name: nginx-ingress-operator + spec: + containers: + - command: + - nginx-ingress-operator + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAME + value: nginx-ingress-operator + image: registry.connect.redhat.com/nginx/nginx-ingress-operator:0.1.0 + imagePullPolicy: IfNotPresent + name: nginx-ingress-operator + resources: {} + serviceAccountName: nginx-ingress-operator + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - nginx + - ingress-controller + - ingress + - controller + - kubernetes + - openshift + links: + - name: Documentation for NGINX Plus + url: https://github.com/nginxinc/nginx-ingress-operator/tree/release-0.1.0/examples/deployment-plus-min + - name: Documentation for NGINX Open Source + url: https://github.com/nginxinc/nginx-ingress-operator/tree/release-0.1.0/examples/deployment-oss-min + - name: Documentation for NginxIngressController CR + url: https://github.com/nginxinc/nginx-ingress-operator/tree/release-0.1.0/docs/nginx-ingress-controller.md + maintainers: + - email: kubernetes@nginx.com + name: NGINX Inc + maturity: alpha + provider: + name: NGINX Inc + replaces: nginx-ingress-operator.v0.0.7 + version: 0.1.0 diff --git a/deploy/olm-catalog/nginx-ingress-operator/nginx-ingress-operator.package.yaml b/deploy/olm-catalog/nginx-ingress-operator/nginx-ingress-operator.package.yaml index be5ec1b4..4bb87fd9 100644 --- a/deploy/olm-catalog/nginx-ingress-operator/nginx-ingress-operator.package.yaml +++ b/deploy/olm-catalog/nginx-ingress-operator/nginx-ingress-operator.package.yaml @@ -1,5 +1,5 @@ channels: -- currentCSV: nginx-ingress-operator.v0.0.7 +- currentCSV: nginx-ingress-operator.v0.1.0 name: alpha defaultChannel: alpha packageName: nginx-ingress-operator diff --git a/version/version.go b/version/version.go index d27c2f1b..c103455a 100644 --- a/version/version.go +++ b/version/version.go @@ -1,3 +1,3 @@ package version -var Version = "0.0.7" +var Version = "0.1.0"