diff --git a/CHANGELOG.md b/CHANGELOG.md index a9d04e7b..aee35545 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 0.2.0 + +An automatically generated list of changes can be found on Github at: [0.2.0 Release](https://github.com/nginxinc/nginx-ingress-operator/releases/tag/v0.2.0) + ### 0.1.0 FEATURES: diff --git a/Makefile b/Makefile index afe62ac5..dd2e0c63 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -OLD_TAG = 0.0.7 -TAG = 0.1.0 +OLD_TAG = 0.1.0 +TAG = 0.2.0 IMAGE = nginx/nginx-ingress-operator diff --git a/README.md b/README.md index dae6e583..5f4a48a3 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ The following table shows the relation between the versions of the two projects: | NGINX Ingress Controller | NGINX Ingress Operator | | --- | --- | +| 1.11.x | 0.2.0 | | 1.10.x | 0.1.0 | | 1.9.x | 0.0.7 | | 1.8.x | 0.0.6 | @@ -31,7 +32,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.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. +The latest stable release is [0.2.0](https://github.com/nginxinc/nginx-ingress-operator/releases/tag/v0.2.0). For production use, we recommend that you choose the latest stable release. ## Development diff --git a/bundle/0.2.0/k8s.nginx.org_nginxingresscontrollers_crd.yaml b/bundle/0.2.0/k8s.nginx.org_nginxingresscontrollers_crd.yaml new file mode 100644 index 00000000..651d0d73 --- /dev/null +++ b/bundle/0.2.0/k8s.nginx.org_nginxingresscontrollers_crd.yaml @@ -0,0 +1,291 @@ +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. Default is true. + nullable: true + type: boolean + enablePreviewPolicies: + description: Enables preview policies. Requires enableCRDs set to true. + type: boolean + enableSnippets: + description: Enable custom NGINX configuration snippets in VirtualServer, + VirtualServerRoute and TransportServer 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: if serviceType is LoadBalancer, + the value of this field will be ignored, and the operator will + use the name of the created LoadBalancer service instead.' + 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: If serviceType is LoadBalancer or reportIngressStatus.externalService + is set, the value of this field will be ignored.' + 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.2.0/manifests/k8s.nginx.org_nginxingresscontrollers_crd.yaml b/bundle/0.2.0/manifests/k8s.nginx.org_nginxingresscontrollers_crd.yaml new file mode 100644 index 00000000..651d0d73 --- /dev/null +++ b/bundle/0.2.0/manifests/k8s.nginx.org_nginxingresscontrollers_crd.yaml @@ -0,0 +1,291 @@ +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. Default is true. + nullable: true + type: boolean + enablePreviewPolicies: + description: Enables preview policies. Requires enableCRDs set to true. + type: boolean + enableSnippets: + description: Enable custom NGINX configuration snippets in VirtualServer, + VirtualServerRoute and TransportServer 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: if serviceType is LoadBalancer, + the value of this field will be ignored, and the operator will + use the name of the created LoadBalancer service instead.' + 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: If serviceType is LoadBalancer or reportIngressStatus.externalService + is set, the value of this field will be ignored.' + 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.2.0/manifests/nginx-ingress-operator.v0.2.0.clusterserviceversion.yaml b/bundle/0.2.0/manifests/nginx-ingress-operator.v0.2.0.clusterserviceversion.yaml new file mode 100644 index 00000000..496361bd --- /dev/null +++ b/bundle/0.2.0/manifests/nginx-ingress-operator.v0.2.0.clusterserviceversion.yaml @@ -0,0 +1,376 @@ +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.11.1-ubi" }, "nginxPlus": false, "serviceType": "NodePort", "type": "deployment" } }] + capabilities: Basic Install + categories: Networking + certified: "true" + containerImage: registry.connect.redhat.com/nginx/nginx-ingress-operator:0.2.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.2.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. Default is true. + 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, + VirtualServerRoute and TransportServer 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: If serviceType + is LoadBalancer or reportIngressStatus.externalService is set, the value + of this field will be ignored.' + 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.2.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.1.0 + version: 0.2.0 diff --git a/bundle/0.2.0/metadata/annotations.yaml b/bundle/0.2.0/metadata/annotations.yaml new file mode 100644 index 00000000..4e0fdde4 --- /dev/null +++ b/bundle/0.2.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.2.0/nginx-ingress-operator.v0.2.0.clusterserviceversion.yaml b/bundle/0.2.0/nginx-ingress-operator.v0.2.0.clusterserviceversion.yaml new file mode 100644 index 00000000..496361bd --- /dev/null +++ b/bundle/0.2.0/nginx-ingress-operator.v0.2.0.clusterserviceversion.yaml @@ -0,0 +1,376 @@ +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.11.1-ubi" }, "nginxPlus": false, "serviceType": "NodePort", "type": "deployment" } }] + capabilities: Basic Install + categories: Networking + certified: "true" + containerImage: registry.connect.redhat.com/nginx/nginx-ingress-operator:0.2.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.2.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. Default is true. + 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, + VirtualServerRoute and TransportServer 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: If serviceType + is LoadBalancer or reportIngressStatus.externalService is set, the value + of this field will be ignored.' + 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.2.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.1.0 + version: 0.2.0 diff --git a/bundle/bundle-0.2.0.Dockerfile b/bundle/bundle-0.2.0.Dockerfile new file mode 100644 index 00000000..4c4f6193 --- /dev/null +++ b/bundle/bundle-0.2.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.2.0/manifests /manifests/ +COPY 0.2.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 4bb87fd9..eb5bd8af 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.1.0 +- currentCSV: nginx-ingress-operator.v0.2.0 name: alpha defaultChannel: alpha packageName: nginx-ingress-operator diff --git a/deploy/olm-catalog/nginx-ingress-operator/0.2.0/nginx-ingress-operator.v0.2.0.clusterserviceversion.yaml b/deploy/olm-catalog/nginx-ingress-operator/0.2.0/nginx-ingress-operator.v0.2.0.clusterserviceversion.yaml new file mode 100644 index 00000000..496361bd --- /dev/null +++ b/deploy/olm-catalog/nginx-ingress-operator/0.2.0/nginx-ingress-operator.v0.2.0.clusterserviceversion.yaml @@ -0,0 +1,376 @@ +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.11.1-ubi" }, "nginxPlus": false, "serviceType": "NodePort", "type": "deployment" } }] + capabilities: Basic Install + categories: Networking + certified: "true" + containerImage: registry.connect.redhat.com/nginx/nginx-ingress-operator:0.2.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.2.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. Default is true. + 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, + VirtualServerRoute and TransportServer 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: If serviceType + is LoadBalancer or reportIngressStatus.externalService is set, the value + of this field will be ignored.' + 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.2.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.1.0 + version: 0.2.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 4bb87fd9..eb5bd8af 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.1.0 +- currentCSV: nginx-ingress-operator.v0.2.0 name: alpha defaultChannel: alpha packageName: nginx-ingress-operator diff --git a/version/version.go b/version/version.go index c103455a..a33bb345 100644 --- a/version/version.go +++ b/version/version.go @@ -1,3 +1,3 @@ package version -var Version = "0.1.0" +var Version = "0.2.0"