diff --git a/operators/registry-operator/0.2.0/bundle.Dockerfile b/operators/registry-operator/0.2.0/bundle.Dockerfile new file mode 100644 index 00000000000..7521e078e17 --- /dev/null +++ b/operators/registry-operator/0.2.0/bundle.Dockerfile @@ -0,0 +1,34 @@ +# +# Copyright Red Hat +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +FROM scratch + +# Core bundle labels. +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=registry-operator +LABEL operators.operatorframework.io.bundle.channels.v1=beta +LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.28.0 +LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1 +LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v3 + +# Labels for testing. +LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1 +LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/ + +# Copy files to locations specified by labels. +COPY bundle/manifests /manifests/ +COPY bundle/metadata /metadata/ +COPY bundle/tests/scorecard /tests/scorecard/ diff --git a/operators/registry-operator/0.2.0/manifests/registry-operator-controller-manager-metrics-service_v1_service.yaml b/operators/registry-operator/0.2.0/manifests/registry-operator-controller-manager-metrics-service_v1_service.yaml new file mode 100644 index 00000000000..7bce52e6f83 --- /dev/null +++ b/operators/registry-operator/0.2.0/manifests/registry-operator-controller-manager-metrics-service_v1_service.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: kube-rbac-proxy + app.kubernetes.io/created-by: devfileregistry-operator + app.kubernetes.io/instance: controller-manager-metrics-service + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: service + app.kubernetes.io/part-of: devfileregistry-operator + control-plane: controller-manager + name: registry-operator-controller-manager-metrics-service +spec: + ports: + - name: https + port: 8443 + protocol: TCP + targetPort: https + selector: + control-plane: controller-manager +status: + loadBalancer: {} diff --git a/operators/registry-operator/0.2.0/manifests/registry-operator-manager-config_v1_configmap.yaml b/operators/registry-operator/0.2.0/manifests/registry-operator-manager-config_v1_configmap.yaml new file mode 100644 index 00000000000..c4a19fa9e0b --- /dev/null +++ b/operators/registry-operator/0.2.0/manifests/registry-operator-manager-config_v1_configmap.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +data: + controller_manager_config.yaml: | + apiVersion: controller-runtime.sigs.k8s.io/v1alpha1 + kind: ControllerManagerConfig + health: + healthProbeBindAddress: :8081 + metrics: + bindAddress: 127.0.0.1:8080 + webhook: + port: 9443 + leaderElection: + leaderElect: true + resourceName: 1984829e.devfile.io +kind: ConfigMap +metadata: + name: registry-operator-manager-config diff --git a/operators/registry-operator/0.2.0/manifests/registry-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml b/operators/registry-operator/0.2.0/manifests/registry-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml new file mode 100644 index 00000000000..76f067eff7d --- /dev/null +++ b/operators/registry-operator/0.2.0/manifests/registry-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: kube-rbac-proxy + app.kubernetes.io/created-by: devfileregistry-operator + app.kubernetes.io/instance: metrics-reader + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: clusterrole + app.kubernetes.io/part-of: devfileregistry-operator + name: registry-operator-metrics-reader +rules: +- nonResourceURLs: + - /metrics + verbs: + - get diff --git a/operators/registry-operator/0.2.0/manifests/registry-operator-webhook-service_v1_service.yaml b/operators/registry-operator/0.2.0/manifests/registry-operator-webhook-service_v1_service.yaml new file mode 100644 index 00000000000..1de304c2e14 --- /dev/null +++ b/operators/registry-operator/0.2.0/manifests/registry-operator-webhook-service_v1_service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + name: registry-operator-webhook-service +spec: + ports: + - port: 443 + targetPort: 9443 + selector: + control-plane: controller-manager +status: + loadBalancer: {} diff --git a/operators/registry-operator/0.2.0/manifests/registry-operator.clusterserviceversion.yaml b/operators/registry-operator/0.2.0/manifests/registry-operator.clusterserviceversion.yaml new file mode 100644 index 00000000000..9674785f6ec --- /dev/null +++ b/operators/registry-operator/0.2.0/manifests/registry-operator.clusterserviceversion.yaml @@ -0,0 +1,693 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "registry.devfile.io/v1alpha1", + "kind": "DevfileRegistry", + "metadata": { + "name": "sample-devfileregistry" + }, + "spec": { + "devfileIndex": { + "image": "quay.io/devfile/devfile-index:next" + } + } + }, + { + "apiVersion": "registry.devfile.io/v1alpha1", + "kind": "DevfileRegistriesList", + "metadata": { + "name": "sample-devfileregistrieslist" + }, + "spec": { + "devfileRegistries": [ + { + "name": "devfile-staging", + "url": "https://registry.stage.devfile.io" + } + ] + } + }, + { + "apiVersion": "registry.devfile.io/v1alpha1", + "kind": "ClusterDevfileRegistriesList", + "metadata": { + "name": "sample-clusterdevfileregistrieslist" + }, + "spec": { + "devfileRegistries": [ + { + "name": "devfile-staging", + "url": "https://registry.stage.devfile.io" + } + ] + } + } + ] + capabilities: Basic Install + categories: OpenShift Optional,Developer Tools + containerImage: quay.io/devfile/registry-operator:v0.2.0 + createdAt: "2023-11-20T18:36:27Z" + description: Deploy and manage Devfile Registries on Kubernetes and OpenShift + with the Devfile Registry operator. + operators.operatorframework.io/builder: operator-sdk-v1.28.0 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v3 + repository: https://github.com/devfile/registry-operator + support: Red Hat + name: registry-operator.v0.2.0 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: ClusterDevfileRegistriesList is a custom resource where cluster + admins can add a list of Devfile Registries to allow devfiles to be visible + at the cluster level. In order to be added to the list, the Devfile Registries + must be reachable, supports the Devfile v2.0 spec and above, and is not using + the default namespace. + displayName: Cluster Devfile Registries List + kind: ClusterDevfileRegistriesList + name: clusterdevfileregistrieslists.registry.devfile.io + resources: + - kind: Deployment + name: clusterdevfileregistrieslist-deployment + version: v1 + specDescriptors: + - description: DevfileRegistries is a list of devfile registry services + displayName: Devfile Registries + path: devfileRegistries + - description: Name is the unique Name of the devfile registry. + displayName: Name + path: devfileRegistries[0].name + - description: SkipTLSVerify defaults to false. Set to true in a non-production + environment to bypass certificate checking + displayName: Skip TLSVerify + path: devfileRegistries[0].skipTLSVerify + - description: URL is the unique URL of the devfile registry. + displayName: URL + path: devfileRegistries[0].url + statusDescriptors: + - description: Conditions shows the state of this CR's devfile registry list. If + registries are no longer reachable, they will be listed here + displayName: Conditions + path: conditions + version: v1alpha1 + - description: DevfileRegistry is a custom resource allows you to create and manage + your own index server and registry viewer. In order to be added, the Devfile + Registry must be reachable, supports the Devfile v2.0 spec and above, and + is not using the default namespace. + displayName: Devfile Registry + kind: DevfileRegistry + name: devfileregistries.registry.devfile.io + resources: + - kind: Deployment + name: devfileregistry-deployment + version: v1 + specDescriptors: + - description: Sets the devfile index container spec to be deployed on the Devfile + Registry + displayName: Devfile Index + path: devfileIndex + - description: Sets the container image + displayName: Image + path: devfileIndex.image + - description: Sets the image pull policy for the container + displayName: Image Pull Policy + path: devfileIndex.imagePullPolicy + - description: Sets the container image containing devfile stacks to be deployed + on the Devfile Registry + displayName: Devfile Index Image + path: devfileIndexImage + - description: Sets the registry server deployment to run under headless mode + displayName: Headless + path: headless + - displayName: K8s + path: k8s + - description: Ingress domain for a Kubernetes cluster. This MUST be explicitly + specified on Kubernetes. There are no defaults + displayName: Ingress Domain + path: k8s.ingressDomain + - description: Sets the OCI registry container spec to be deployed on the Devfile + Registry + displayName: Oci Registry + path: ociRegistry + - description: Sets the container image + displayName: Image + path: ociRegistry.image + - description: Sets the image pull policy for the container + displayName: Image Pull Policy + path: ociRegistry.imagePullPolicy + - description: Overrides the container image used for the OCI registry. Recommended + to leave blank and default to the image specified by the operator. + displayName: Oci Registry Image + path: ociRegistryImage + - description: Sets the registry viewer container spec to be deployed on the + Devfile Registry + displayName: Registry Viewer + path: registryViewer + - description: Sets the container image + displayName: Image + path: registryViewer.image + - description: Sets the image pull policy for the container + displayName: Image Pull Policy + path: registryViewer.imagePullPolicy + - description: Overrides the container image used for the registry viewer. + displayName: Registry Viewer Image + path: registryViewerImage + - displayName: Storage + path: storage + - description: Instructs the operator to deploy the DevfileRegistry with persistent + storage Disabled by default. + displayName: Enabled + path: storage.enabled + - description: Configures the size of the devfile registry's persistent volume, + if enabled. Defaults to 1Gi. + displayName: Registry Volume Size + path: storage.registryVolumeSize + - displayName: Telemetry + path: telemetry + - description: Specify a telemetry key to allow devfile specific data to be + sent to a client's own Segment analytics source. If the write key is specified + then telemetry will be enabled + displayName: Key + path: telemetry.key + - description: The registry name (can be any string) that is used as identifier + for devfile telemetry. + displayName: Registry Name + path: telemetry.registryName + - description: Specify a telemetry write key for the registry viewer component + to allow data to be sent to a client's own Segment analytics source. If + the write key is specified then telemetry for the registry viewer component + will be enabled + displayName: Registry Viewer Write Key + path: telemetry.registryViewerWriteKey + - displayName: TLS + path: tls + - description: Instructs the operator to deploy the DevfileRegistry with TLS + enabled. Enabled by default. Disabling is only recommended for development + or test. + displayName: Enabled + path: tls.enabled + - description: Name of an optional, pre-existing TLS secret to use for TLS termination + on ingress/route resources. + displayName: Secret Name + path: tls.secretName + statusDescriptors: + - description: Conditions shows the state devfile registries. + displayName: Conditions + path: conditions + - description: URL is the exposed URL for the Devfile Registry, and is set in + the status after the registry has become available. + displayName: URL + path: url + version: v1alpha1 + - description: DevfileRegistriesList is a custom resource where namespace users + can add a list of Devfile Registries to allow devfiles to be visible at the + namespace level. In order to be added to the list, the Devfile Registries + must be reachable, supports the Devfile v2.0 spec and above, and is not using + the default namespace. + displayName: Devfile Registries List + kind: DevfileRegistriesList + name: devfileregistrieslists.registry.devfile.io + resources: + - kind: Deployment + name: devfileregistrieslist-deployment + version: v1 + specDescriptors: + - description: DevfileRegistries is a list of devfile registry services + displayName: Devfile Registries + path: devfileRegistries + - description: Name is the unique Name of the devfile registry. + displayName: Name + path: devfileRegistries[0].name + - description: SkipTLSVerify defaults to false. Set to true in a non-production + environment to bypass certificate checking + displayName: Skip TLSVerify + path: devfileRegistries[0].skipTLSVerify + - description: URL is the unique URL of the devfile registry. + displayName: URL + path: devfileRegistries[0].url + statusDescriptors: + - description: Conditions shows the state of this CR's devfile registry list. If + registries are no longer reachable, they will be listed here + displayName: Conditions + path: conditions + version: v1alpha1 + description: "A devfile registry is a service that stores and provides devfile stacks + to Kubernetes developer tools like `odo`, Eclipse Che, and the OpenShift Developer + Console. Using this\noperator you can deploy and manage devfile registries on + Kubernetes and OpenShift.\n\nBasic usage:\n```\napiVersion: registry.devfile.io/v1alpha1\n + \ kind: DevfileRegistry\nmetadata:\n name: sample-devfileregistry\nspec:\n devfileIndex: + \n image: quay.io/devfile/devfile-index:next\n```\n\nFor more on setup and + usage see our [README](https://github.com/devfile/registry-operator/blob/main/README.md)." + displayName: Devfile Registry Operator + icon: + - base64data: iVBORw0KGgoAAAANSUhEUgAAALEAAACxCAYAAACLKVzFAAAlXElEQVR4nOydCZjbVbn/v+/5ZabbJJlWWqACsheZNkkZriyKlEVkES+LLbIptM2kLJYd5f4Fq/deLyC7lDbJFKSAQFFxQeHKUhRcWEonaQtUVsFWKNKZLNN2Ovmd9/8kk3qH2pk557dmSj7P41O1Z3k7+c7JWd4lgDratMxf1yQaGycZkiYxiT1BGM/ADmA5QYAmVP47MKpfFwEgDEAC6CKgE6AuCdkpQF0g/gCS3pZEbwjQGxuNjW+snjW+4OM/cVhBfhtQ60y+c8Ouwuz9nGBxEAP7MzCJwLt5MPU6AC8DeK7yHzPwfOa80Ws8mHfYURfxVkxdWNhfCnkUgEPB+CyIdvXbpn6sAeM5Bj1hGKXfLJ899q9+G1QL1EU8j8WUT+amGpJOlEQzCPi03yYpw3gTgh4RTL/a3Dzm96tm0Ga/TfKDj6eImWlKsniYID4HhBPRt4cd7qwH8/2C+UfL5zS/6LcxXvKxEnHL/OJORoN5GjHNBmGy3/a4BQOvEHB3qVfcveqCpvf8tsdtPhYijiYLR4B4LoATADT4bY+HlEB4WJjy+u15dd6uRTw1VTzaJPk9Yhzity01wB9Y4rpsIvgIiNhvY5xkuxPx9CVsrO4qThfgqxiI+G1PDZJh0LXZeNOD24uYtysRRxYWjxJC3lQX79AQaBkBly1vC/7Ob1vssl2IOLIoP4lM3ADgSz6akWNgLQHvE5CXREWSXPzXZhxmopGCMJYZEwBMBBDyw+AqD5Pkb3bMCb/mow22GNYinnJH11gyjGuI+AKPDmwlAK8w4SUh8TITXhOSVo/c0PTWny6ljVYHnbTog+Aos3E/gFq47556fzD2B2H36pO12/Qy03yztPHqVRdM2MYvXm0zbEUcTeXLq24KwM4uTpMD8CwRfifBz4wphDJ2xKpLy/x1TYYx4nMgOpKIjgI45rKo3yaSbR3x5sddnMNxhp2IY3d1NnOvcTOAc1yaYhWAR5jw60nh4B8fmkGmS/No09KeGxdgMY0gj2amUwDs6MI0TIRFhixdviwxLufC+I4zrEQcWZg7lgSlAezi8NBvMfGPicX9mbbgKofHdoVp8zjw4cT8F4jEWcQ4CeDRDk/xN5Ycz84JP+bwuI4zLETcmuQGk4o/YFQeLJyyWTLwGIFvy8RDvx3O103lPfUI2XgyMX0dwJEODs0EXLtPc/DqWvpG2pqaF/HUOwvjZYkfcPDDKYBxv2C6dfmc4MsOjVkzTE4XIwbLywGcDsARf3EGfmf2iq/W6hN2TYs4lsofysBD1Wsou7xPxNeO2Fi687m5n8g7MF5NMznZtZdB4goA5dV5pANDriGB0zpmh/7gwFiOUrMijqUK5zO4fIBrtDlUN8A3lnp7fjAcr4/s0jK/uFNDA3+Lwec7cA3ZS0QXdsSDKYfMc4TaEzEzxVL57zDRd2yOJAHcF2Djm8sSY/7ukHXDlmgqvy8DNxNwvAPDXZeJB6+qlXNETYm4fOLu3LmQAuFceyPR40Li4u1xz2uXWDJ/EgM3grCnnXGI0N68Jnje0/Oo5Jx1Fm3x24AtHHITj+puKtxPwL/bGKZARJd3zG5K18oqUYvsfhePDPcWLwf4alvbNcavAih+dVli4gZHDdSkJkTcmlwfNkXgl8z4vI1hniLTnNVx3ti3HTRNi9iCzt0RMKLShGygUmZZYtw7ftmiQiTZdQCRuA/AfjaGeYZHbjgu+7Wduh00TQvfRdyaXDvaFE2P2hDwRgDfzawN/gDzSDpsnhJT7uzaU5SMhQB/od//Xf4m+LUZCJy/cubod/2wS4XyN+CGYPFacOUO3hrET44uhE708kn+I9P7MekW9r6NR4wZWfwlwMdYGoCxmgP49+ys0GrHjVPkgPbc3qakPwIYP0CTtQbR0S/Fg694bJoW5b2yFGgnxies9GfgN2Zz8GQ/glW98JDaJuVD3JiRhfstC5jwGDWaB/sp4DKmpDsHEXCZiSb4qQPShZqOou5IhH4OBGJgXm6lPwHHB7oKD5Q/V+etGxx/RDyPRefEQvnDP9lSf8KN+4aDX+o4d2yX47ZpMCVZnALgsCEbMnYymZ+OpgotnhhmkWx89N9KpZ7ytu4Ri0OcXPlcmT39hvdFxJGdC9cCONtC101M/PVMPHR5LbzlG5AHaDSfAOInan1FXnXBhOK+zcGTAPqhxSHOjrQXrnLYrEHxXMSxZO4MIlxhoWtRgI7NxsOLXTDLEiw0f37lFXkYbC3KC0SmLTiXmS8q75h0+xPjP6OpvLVvWQt4KuJIsusAJmq30LUAxnG1Fg8mIbPanYaJkMtkE+HbGHRaNaJFh7Ku7omlijGXTPsInu1dIgsKE2DgBQvJ+HJC4rjlc0J/csk0W8RShRcZ3Gqh6/sG0RG1fmtRJpounAbm+yo7KB2Y3zWF8W8r403vu2acVytx+cQqAvyQBQF3QfAxtSrgMiRpVuWbQp8dTealUxcW9nfBLEfJxIMPMvHMqj+KOkS7Gsx3u33Q80TEXTvnv23hMaMgpPxCZnb4eZfMcoTlc5oyJHCcVSFLwUsj7YWaT6lVPosQMKf6iKMBfzGayl/sll3wYjsRSeYOIqJnNR20y4eJkzJtIatXPZ4Ta89/liUeBRC00H0dCzoqOzu40gXTHCWayn0DoNs0u/UQxMEdbU0dbtjk6krcmlw7mogWa0cYMF8xnARcpuIszhU3Rysr8gSS/ORwWJEzbeEfWrh+G8GQS1rmr2tywyZXRWyKMTcA2FerEyOVSYRvds0oF8kkQs9+HIQc4KbLADyt2W2fQGDEtW7Y45qIo8muY5hpjlYn4icDCF7olk1e8HEQ8rIE9YoAzQCgl6me6Lxoe+4zTtvjiohblnAjSNyus+dm0Duyl6eXf0Bu2OQl/YRsJRxqWAh5+czgB8zylKoXoSoCUiyYvoT1ruqGHNQFAl2FS8pfHxpdpAF8bcX5zZ1u2OMHVSEftz0LOZtofonAcb1efMDqzvwFTtrh+O1Ey/ziToEGuVozSd51mbbQt5y2xWta2nPjRElMJkKLAO/ChIkEHMbAXhaHfF9IOrLWw6xiqfzdDHxNo0sBZuDTTlWDctxtLtDAN2gJmHl5aWzoGqft8ILJ6eKOASmPZcI0AIdDYg+IvmvULZepNmOkdpSCn5q6sFDTQja4NLdEgcMBfEqxSxBG6X+gJ/wBcXQlruaJeFZj3I1C0oG1/AFtTWtyfbgXDWcQ8YyqG6aj+7sBqPkVObKweBQJ+bjGZy8BijiRNszRPTETf0/rF4NxdS1/MP2ZnC5GYul8ukSBNUR8B1BZfb0QMCorssFPRlN5vetKD8nOaXqSCToehgJc0YttHBPx1IX5Q8B0lEaXVwMI6r78eE5ZvNFk/qcGyw5mzAYwxhdDGDuB+QGvHc512NyDy6qVUNUgnOzElZtjIpaCvqvVHnxpLV+nRRYUJkRT+XaD5XIQTvE7HrEC0dRYujvqtxkD8eqFoQ+J6GqNLkSS5tmd1xERV1bhj0b6Dg7hsRVt4UedmNsNYulCGxm8GsAsP+MQtwVD7uG3DYOxT7hpEYAVqu0ZOC6Szh1sZ05HPiBpQOd2odcAXerEvE5TXn0jqfzPmTkJoNlve7YFQbzltw2D8dAMMonkZTp9iHGRnTltiziyKD8JjC8qdyBaUIuO4LFU/lAyuMNmBiK3eW2f5jEDrnK738VOZL+0TbVcgoZvBZ06dVG35cyntkVMJhIa+8WegBSuOIHYIZbKxxlY6nL9D7sUCXzmYAGy4d7C0r6tnf+QwLc1mjdIWdLzs+mHLRFXf/O/rtHl3lrLUBlJF77DfQVs7KaQHQo77x5FJhzf0RZ+YaAG1XQAB0tBT0RS+S/bmMsRKq6pxE8qd2BK7H0bj7Ayly0Rh3vz0wGMU2wuDaIb7cznKJUUsoVbiNn26bgfhfKhFUzXENMMIUUswBhf/lPr6umjVAScjYeeGbwZf6P652gCfhZJ5mdbnM85GD/QaD1h9Kj8aVamsXVtFE3l/wDgUJW2DPwi2xY6yc58ThJN5/8HDCf8NdaXzzNgenDfsU2/3/rr/oB04dMm81KLlY6KUtIJK+YEfz9Yo75VmF/a6ttEAnR6pi24xMK8jhFN5TvKfyg1Jn4yEw8frTuHZRFXX4/UU0gxDqt4dtUAkVT+coLWKrEtVjHjljHdwfsGSqRXETD4qcpDhT7dUtLxQwm4khCwqfA7AP+2jb/uIaJjO+JBXQd2x4ik87OIoZqmwSz1il10a4NY3k4wcKpG8+drRsAL8ycScJ3lAZjfJcY5mbXBSDYRavdTwNOXsLGxqbB4AAGjEhbE/HA13ZY/jNjwAADVGilGoMGcrjuFZRET6CvKbfvi7HynUgNa4B6L/27JTLcE0L1fRyJ092BpZL0QMOaxeK2rcCcDQ30OzQbJhyct+sBKAKttqnmL71dtz0Sn685hScSVZNLgqYrNS7JUqYDkKy1LuJHMSimxsIXua5kwLZsIXjJUVvQpyfx+Xgg4OrGQVvXhZWCvkeYI3/xUhJTKWZ+IcXCfvjTGt2IUG4a6LwHhiex5Qasnc8do6CrMA8hKWqU/Btg4cOjbgT4BC4JlAQsMfYgrE51Y/DaAmZrjnxNJF5S/PZ1k+ZzmFwGoVvEnFkIrj5vV7YTyJAxW/ipxi6kLuw5k4EoLXR8ZXQwerXK3/U8BW3swqQhYNdecCGABE17UnYSYky3zi1Z+wWzDxMq3JEykdUOhLeLI4vfGADhIsfnGHrH5Yd05HIWZTEPcpuv7S8BPAhw8RSWFf3mv7ZWAUQ3S7BE9RzJBN73XuEBAankbOoWEoSxiAj7fmmTlmnvaIhY9Iw/VKOr32OpZ462ErjtGpD1/NjF0n2KXFjcFz1JxFS2vbFTix70S8BbKP9fNPTgRwKtaHQkz/cj/tjLelNUI8W/qFQVlzzZtEUvQ4aptCfSE7vhOMm0eB0hqF3V8LcClk1+fSz0qjRsa5HUg2tWCeZYFvIWK/65pHld9cFElIAVfb3VOe7Cy+62QrBxgoS1iYlJODEhSO0uMo3RNLJylWXRwk5Bi+rLEuJxK4/LWioEZFkyzLeAtdJw39m2WOEfTN+OEWCqv9NLqJAxSFrHOvlhLxFWHn4Eu1rdm3fJEk38ul8zEms/KRHzV8jlNGeUpNjbtaaH4t2MC3kJ2TuhXDF6g14s8z7Q0alPv0xqZ51tV98VaIm42C63qHxo/7WdVz2iqOA2ESartCbRsn3BIK1EeBaRuuSvHBbyFUZtKVwFYq9qewadOThet+HNY5rm5n8gDrBr1MbJERaXAWC0Rs0nKGWmYha9bCZBs02kuSV6oW8xm3LvBNzT2o91E9CW3SjaUBULMOrVQGgXkLDdsGRyh7n5AUulBTW9PTFAuYWUwfKuv0ffESuoec4xfZePhP+vOUynOTTxfoWlFwG474nT8PfQAGMo5jqkvettbSD6n0VjpcUrzYMeKKzFtWP5ek97Vj4OMMEeeoLNXZUjLPsXdG0P/zRj0FzbvhYArzCMJQf+l0WMPr2vrMQmNRNvshoihKGJe5VedZfQd0E7RaP7nbKL5JatzvT6XejZsCn4RwPVlTff7KwbocYPoYC9dIQOy6WcAlKNniPh4dy36KA1m02oASteXYIqoNFMWcfUQMFj51/4oh2w7zjwWDByp3J4qoUm2KAs50xb6Zq4huAMzHyxA0wJsfDLTFjzG66DYvgcaXqTanvtS0HpG1T7Vn8n46gvxoCgnFBTS3B2k6EPPys4ejhPZpbg/SeUi270UMB17Fn/7XNpUPmM5NZ5VTDIeMliqBmp+tmX+uqZVF0ywkoLWIlQ+ECttFXjj6F2HepVUXokFSP1ZVZBvuRFI4nMazZ/xuz60G1SeeBlvKjZvMBpHeJoHmdVtQ4DELkO1URYxEyl7P7GUb6u2dRoiqbSPqvJbF03xG/Unf6l+deoERKQsYklyyCd9jYOdVF6JSTb8TX1cpyHl0zYR+f7V7xoCyleGRPDUIYjByo8y4KH9UtRFzOorcW7kqA+Vx3UYZuVXOh6xcbPlW4laR0qh7G/MYG9j8Ig1giR4yMxAGtsJ5ZDzfPWA4znVgiaqNyjr+p5Bt08akX9D1SmIQJZTSFmD1Ws989CpdJVFTKDRik19Kx7z8gfd4zX+TXrlq4YZ1VhA1RXPStyhZUwiJS/BKkPqTn0lBqumedIpCeUoIxp5rHJjhquV32sE1W2dTpEg23QboUGDbftDhFFDtdFYiaGWJ4vZNxGzSer51Mg/O72CCapiaXK6ttxgVLebSs5W0smVGFAUCJGue6KDlJTjssB+2ukZqpn4afWm971OC6tkGzkqYlbeTviWWV0GWNmVkkjbmX3YQcxDfhVvYdLIHb0+jKumUBtSd+qCI8W2zI7XxlPFNEn5toFBnh5m/IFUq9r36PpSO4Cq9obc9umsmt0qjYjIs73V1jQ0GBpXZjzBTVt8p1JlSfnqTOe2wD7zWCinUCAeUnc6IlZyEGGG6m+/4yx/p+lDZTc/YO9aLqdll5Y7uncEWOlalEDvum/R/9G6c2GcqvaIyUERs2KhbYL6NZfT9Pkwv6PYekxrqtNKqP2wwGhkjadkdqTGsiq9AWUvw7KgnBMxC1JNghKufl34hLoHXUk01ER9C3dg5eQjDLzhri0fRTB2UG0rwUMunur3xHLowbaMud8OBd9WY2ZWDrkHa7ltDi8Yn1VuSqwRMmQfWVIukVE2zrmVmEj59QejAkP7gLoFCVqm3pqPddMWv4gsfm8MAUeotpcwPBWxEOrbCSGG9nhT304wKfsasGF+UrWt0zDM5zWa7x1LFa2ke61paNPoY8priWLz3KfDY2xXuteClJ20lHSnIWKpLmIWu6m2dZpsvLm8J35dvYc80017fEIp+Tb6Xhx+5/UdsWTso9pWRXfKIg4YQsPri5Uyt7gFg5UjNhiY2Zpcq+qhV/NE0hvKW7kvqbZnsPdJH0k1ah6QwhgySkjjYFf4q3LSOsKnVcd1BYlfabQeV0LwbBet8RTBpYs0AoAlU4O3+aOZiVg5Cc+mlbPHDOlOqiziqn/qByptmcnz/Lf9GfdeqLy6qLtaEl+zPazGLfOLOzHofNX2RHg2Gx/taSjZ1EVdu2m4fr6jks9P9z73ZZVGBN4tsqDg27NuJb0USKcI4cQSNX3DRZM8oaHRvEb1lQ6VgF76sbsWbWNOU6gHpSqm5NIVsXJMGhuyVXNsR2GjkiNNIysnXTM52bWXmza5SSSZO4iZdJIodvGo7ntdNGmbMKlHVhNISW9aIiZm5TtYAaGax9gVsrNCqwF6XL0HjxZEC/19bbTGITfxKCK6U6cuCTP9qFpjzlMY6qUnmKRSsKvWByYDOg8J/r+GEZk3aLUHHR3buXiVexa5w4YxhfK3js45pKcBvTe7aNI2qZSfAKaptg+wmt60RJx9N/hapZK8Gp+1WvrfKTrizeWVWCuZHxN/N7IwN2xe8qLJQgKEc/V6UXpZYpyqo5RjdE0sfEYjKPWtZYnQP1Qa6n11ziPJyvtiHj2qsahaKsw1mPgqzXoWBgl6KNqe+4yLZjlCNJU/WTE/cn+KARbfd8mkQWGo1+EgQGPrqgvRUtWmhvDfN6GaPFv3ANMESb+OJLsOcMks28TSueOrNZO1ghAY+K5KcUl3YGURM7NyknZtERum1mvYl3XHdwMRoMs0y2SV2YFILI0mC8qONF4RTefOYqafQzUC/f9Y1cDBW10ya1CqBdKV3UMNA4+pttUW8d7jgs9rCKIltjCn/E7uFstnBj8A+GILXUMgfjSWLlzgglnaTF/CRiyV/z6YFmsUxNxCr5DyHJUCk25Qzd6vZjPjzZdmh5X9X7RF/NAMMgmVErBq9gjSydruGpm28D1g7W1FmRHMfHs0mXtgv9vzGhEJzhJb0Ln7X7oKTzBwlUakcH+urhYK9wUBVnZKAtFv9Ma2hk5KVHXjXWZToOd8MFZb6kx02ohGvBJL5c70MjavNckN0WTuEjaMldC4nuoPA7/JrA3+wHnr1JicLu7IwBdU2xNL5a0ErIpYUuDRvuQsSuwfbe9UKuXkNqtnjS8Q84ms4eC/FeMZdG8sXXxhSip3nMPmfZR5LMq/MCUqvAyim4ChE+ttCwZeaeDSGX7WUDGkPEvDKWmTHLVR61rU8ooSTeWXqq4MDL4j2xauiX1lmampwuES/L8WDkZbkwHTglJp431OlQtoTeZ3MAXOZcZ5APawNRjhPYP4MJ39pRvEUvkMA0rJzwn4SUdbaLrO+JZFHEnnZxGjXbF5tyzJXVec3+xbxsytiSzMn0gCP1HJMKPARjDK+9VfEuH3mXjwNdVqquXD2uvruyebwpxGoC8D+LxOLZWBKH/bsBRHrEg0+VcEqCLgYowhl6u2Z4kvZ+eEdFxprYv4oNs+DG0a2fCechgM46pMInSt1fncIJbMn8SEBx0Scn/Kv6zlD+4dJnqbJBfpn9HiHGZwEEy7M2Hvqm+t01kp/yFJHrsi3qzjJuAK0WT+To0XxXUBDu6ie4Ni64ASS+UfYuAris3XlpqDe6yaUVuJ/CLpwpHE/DOvc/S6yFrJ4li/V2BUo0yIS2+oLhLMdEs2EbxEdx57HluM+zRaT2zozKsK3jOy8eBTksVhDPLcl8AFnmcKHFQLAkZlhTSv0PmWE0R3W5nHlogNBH8NQDkyQArS/i3zgvKHvnkzH8CA1v1kjXHP6GJwmteRGgMx9c7CeOjVjs50tDVZSh1gS8TVvcvtqu2JcWD5QGVnTrd49cLQh9l48EvE+CYAX2qOWOQfxDQj0xb62p8upZpJHG6a8iKdKBOAb7Q6l20HcFmSKdVkg6gkN8H1rUnWfTL1BiLuSISuZ6NS7fIZv80ZCgJ+YpKY3JEIPuS3Lf2ZckfXWGLSuVL9W6k59KDV+WyLuO/ajO7S6LKfKYo6YTSek50VWp2JBw8n8FkAfCssOTDcQURHdLSFpq+MN9Vc7RFh0H8CaFbuwLjFzoHfkVAcJvNm1RoM6HOzm9eaXF/btwHlVbktfF/3puB+3Oc85Hu1JQKyIPpqZm2o1cvK/TpE2guTQZTQ6JIPoKT63rBNHBFxNt78FgE6+Qt2KFHgP5yY221en0s92bbwrWPXBvdm4jMAPKvpZG+XElUeUfiEjngwlokHH/TzCXlQmIkkL9B5rGFGcllinK0k3445skxJ5vcThBU6b+QkOdIxJ+xbRX6rTE527RUAnV3xlyaKOflzrGIy8GxZvAE27vfPiV2PaDp3Fpju0ehSMEnsY3dL5OgPP5rMJ0HQ2e/+cd/m4Od9qBfhGFMXdU/kkvkFpko+4IOrtaV1D67d5eMFgD8x0R839/DSVy8M+VZa2ArVF9xXASjXAAfo6kxb8L/szu2oiFuT3TuXyHxNy+OqBp+j7TBtHgc+3C23m2FiLwnaGYyxgjGWiarVmriHGR8KwoeSxN+lYby2cuZoT8sNuEE0lS8f7s/R6LKGR26Y5ETaAMf9YmPJ/H8zQWe/u9kk8W8r401Zp22p4w2RdOErxKx1zUfAuR1toR85Mb/jiUIMlK5XzdlWpdFgubhliXKdvDo1RGxB5+7EnNbslulYG1zslA2Oi7hy0iS+VLNbNNBV+J7TttRxl/LWiQ3jXq074Yp7OV3i5A2LKymbMvHwvQD9r2a3KyPp3Olu2FPHHTon5q8G1GuDVEllEkHltA8quJZ3TIhSQuc5uu95gRYNh6Qldcpnn9wJAP0/zW5rqMH8ltO2uCbi5bPH/hWMeZrdRkHSz6MLNvhW86PO0Exd2HUgEz2om7hFguMd547tctoeVzNA7js2eAsAnUIwqNwzGqWfHXKTenHtOt4RSXftIYV4RDdwlQl3r2gLP+qGTa6K+KEZZMqAPN1C7eDPbGjK/2j6EvatTnSdf6WlPTeOWPwGwI5aHZnf5V7pmi+567l4V8xsfpNBs/R70oy/dBbqQq4Ryt+MDUwPA9hPs+tmBqa7GSTsSULpbFvwp2Dt7I0A4ay/dObvmzaPbUf/1rFOZPF7Y7qb8r9krkRia8FMF2cT4efcsawPz7Kid/eELoNi+vqPQHRa5875e+tC9ofW5PowbRr9W9JIy7oFAt2fTQQXuGNZ/3k8ZMqdXXuKkvgzoF5Rcgvlg8GkcHBWrToLtSa7d+4l80xiREFgIn6JDHFfXzLD4UklkQvRYwy2Un9lBY/ccIgXJRU8FTEqp9vcwcT0lEbZ1v48ssnoOWP1rPGq2eo9IZrOnwum27cRU5YDUaLiAzzMaJlf3CkQkI/rFE7sxzqT5aErE82eVO/3XMRlIqnCqQReYnE7s4JM88sd542tibChqvPLkkF+lkxEczriwZTHplmmmrXnZxbTaBWFlEd4mYHTl0pBfQc9XGmx+xQ2jOdi7Xnd507HaVnCjcR86xCLATHzwkptjWFAJYE3+A8WBbwZLE/1OoWsb+WuMonQjQD90GL3CSzxZCSd8zVtrLG++zAAExWaEogXRFOFOR6YZYlKCtl04da+yAydUPt/wgSemUk066T9dQRfa7Zl4k0XEbHV0+sIYro7ks7/6KDbPnQ6l5kSQsg9NZoTwHdEkoXzXDTJEpPTxR1NUXgCzHMtD8J8WUdbWCcjlGP4W3iQiDtmhy6wIWQQ4+ubRjZkp6YKhztr3NAwUV6zCxHx/FiqoFx/2W0iC/MnGpAdVu6AqzAzX5RJhD2vi7cFXw52/wIzRdL520mjuPY2kATcVNwU/Pbrc6nHQesGZOqi7onSNN+1sBhwedXLJMLK2ZOcpjW5PlyiwE0AZtoYxmRCIhsPLXLQNG1qowQsEWfjoQtt7JHLCAYuHzOy8EIslT/UQesGZPmsMWvBsJIEj0B0WzSV86UoeixZmF6iwMs2BdzLoLP8FjBqZiXuRySVv5yA62z+gpVXuiUk5bfcvoqbtOiD4Chz5FKLDwLlr+KLs4nwbS6Y9i9EFuUnCRM3M2C3VMMmBk7LtoV+6ZBptqg5EWNLpUzQvRZPyf3ZDKKFAdl7jd0EHYMRu6uzmXuN8qncWlF2lyO+97s9/4kRjbgCwMUOlHj4OxOfUi1yWRPUpIjLRJK5g4joF9puf9vmfQJ9b1Sx6S63Mke2tOfGBaR4HGArVUiZiC/tiIdvcdKmsngbR/AlxPQNh7LRvwAzcHLmvNFrHBjLMWpWxKhG0rIR+KlFYWyLDwBewKaYnz0vuM6hMf9JRcgmngCR1WpRl2XaQjfZtaN64JwLoHxQDtodrwLj3lxjMP72uVRzaW9rWsRl9r6NR4wZWbwB4AsdHHYTGIslcPOKROhVB8e1L2TG5X0PQfpE23OfYRYXEfN0C1mIBqLEwFXZttANDo3nODUv4i307ZNRPgmPdXBYCdCTBHm3wd0PL0tM3ODEoHaFzMAVqqJpTeZ36CU+U4BmqpbZ0jBkNRGf3dEWfsHRcR1m2Ii4zNT2zk+ZbNxPjENcGL4Axi8g6OGALDxmV9B2hUyEKzvioSGrgMbShQuY2en7ZgbzHQF0X+nUL7abDCsRo1r37S+d+bmgSiJnS1U2FSgf/p4i4idMaTy5om3MStW6dP2p3Ao08OM29sjfyrSFrhuqkWaZraFYA5a++EBYZdiJeAvlQx8M4w4H7jxV+ADAcwA9Bzafh2xcpXpC90LI1de31wHsYHEO9CVJ57Qs8X/UUtFMFYatiLcQSedOJ6abHbqK06GLCa8Q05sEfoeZ/krg902m9SDqREOpm81AN/WWNjc00idMkx4BYZKViYjxzY5E6PrB2kRS+asI+L7Ff8szBDHXavUivxn2IsY/c+MGrgAqJcbc2mL4ylB75EokRoP8m2ZCkzXEfGVHW+h+K9ulWmG7EPEW+vIjl65BX4qA2qzQZAMC2jraQgNmoIylCi8qPn+vB+hWHtl9oxcxcG6zXYl4C9FUfl+AvwvQdN1USzVOQZbkpwbas8bS+TQPXgBxHTFu3BjoWVBrcYp2qA0vNofJtIX+kmkLn84k92GmWyrXZ9sHQdFgHDHg30oe6LC5hsEXB7i4R3lvvT0JGDpVboYj2XjzWwAuaU2un9dLgTgxzwXRrn7bZQdiHtAHgiHMfoWdJIOfIhLtpXDTw7VWGN5JtmsRb6HqwXbDtHl8S9cn88dIiDOJcZIDXnI+IAa8QWBgHAFrAL6Lie+s/hJv92yXe2IV+vyAR5zKwNkApg2LrRXhsUw8NOC9ePkssG9z8I1aTTDjFh9bEfcnsqAwgQLyGLA4FuBjrGQoch3GygBwxLJE6B9+m1Jr1EW8NfNYTN0pd4AUxrEEPpSBA30XNWOlaKAjh3NKLDepi1iBiuORDBxIxAeCqZXAezKwmyd30XUBD0ldxBaZvoSNNzs7PympYQ9m3p2JPsXMTQSEQRwCKMhA+X8fYNkxnbGSJR3lhgP/9kRdxC4STRdOA/O9Fm+BXi31iiNWXdD0ngumbVfU/ol8mFIXsHfURewCdQF7S3074TDRVGEGwPfVBewd9ZXYQeoC9oe6iB2iLmD/qIvYAWLJ3BkA/9iigFexSYfXBWyd+p7YJlMX5g+RAk8DaLTQvSzgI+v3wPaor8Q2kQI31AXsL/WV2AbVuLa1Fn6OdQE7SH0ltkFDg7lrXcD+UxexDUrM6zW7rDJJ1H0hHKa+nbBJNJV/U7FcVkXAK+NN73tg1seK+kpsG/6OQqO6gF2kLmKbZNrC9wAYMDsPE16sC9hd6tsJh4gszB1LQlwK8CHVkgKvMrA43xC8vRYTU9epU6eGqG8n6gx7/n8AAAD//2uUbBsvF7/gAAAAAElFTkSuQmCC + mediatype: image/png + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - apps + resources: + - deployments + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - configmaps + - persistentvolumeclaims + - services + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - registry.devfile.io + resources: + - clusterdevfileregistrieslists + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - registry.devfile.io + resources: + - clusterdevfileregistrieslists/finalizers + verbs: + - update + - apiGroups: + - registry.devfile.io + resources: + - clusterdevfileregistrieslists/status + verbs: + - get + - patch + - update + - apiGroups: + - registry.devfile.io + resources: + - devfileregistries + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - registry.devfile.io + resources: + - devfileregistries/finalizers + - devfileregistries/status + verbs: + - get + - patch + - update + - apiGroups: + - registry.devfile.io + resources: + - devfileregistrieslists + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - registry.devfile.io + resources: + - devfileregistrieslists/finalizers + verbs: + - update + - apiGroups: + - registry.devfile.io + resources: + - devfileregistrieslists/status + verbs: + - get + - patch + - update + - apiGroups: + - route.openshift.io + resources: + - routes + - routes/custom-host + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + serviceAccountName: registry-operator-service-account + deployments: + - label: + app.kubernetes.io/name: devfileregistry-operator + control-plane: controller-manager + name: registry-operator-controller-manager + spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: devfileregistry-operator + control-plane: controller-manager + strategy: {} + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: manager + labels: + app.kubernetes.io/name: devfileregistry-operator + control-plane: controller-manager + spec: + containers: + - args: + - --secure-listen-address=0.0.0.0:8443 + - --upstream=http://127.0.0.1:8080/ + - --logtostderr=true + - --v=10 + - --http2-disable=true + image: gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0 + name: kube-rbac-proxy + ports: + - containerPort: 8443 + name: https + protocol: TCP + resources: + limits: + cpu: 500m + memory: 128Mi + requests: + cpu: 5m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + seccompProfile: + type: RuntimeDefault + - args: + - --health-probe-bind-address=:8081 + - --metrics-bind-address=127.0.0.1:8080 + - --leader-elect + command: + - /manager + image: quay.io/devfile/registry-operator:v0.2.0 + imagePullPolicy: Always + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: manager + ports: + - containerPort: 9443 + name: webhook-server + protocol: TCP + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + limits: + cpu: 100m + memory: 100Mi + requests: + cpu: 100m + memory: 20Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + volumeMounts: + - mountPath: /tmp/k8s-webhook-server/serving-certs + name: cert + readOnly: true + securityContext: + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + serviceAccountName: registry-operator-service-account + terminationGracePeriodSeconds: 10 + volumes: + - name: cert + secret: + defaultMode: 420 + secretName: webhook-server-cert + permissions: + - rules: + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + serviceAccountName: registry-operator-service-account + strategy: deployment + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - devfile + - devfiles + - registry + - cloud-native + - stack + - odo + - che + - openshift + - microservice + links: + - name: Devfile + url: https://devfile.io + - name: Devfile Registry Operator GitHub + url: https://github.com/devfile/registry-operator + - name: Devfile Registry Support Services GitHub + url: https://github.com/devfile/registry-support + - name: Devfile Community Registry GitHub + url: https://github.com/devfile/registry + maintainers: + - email: mvaldron@redhat.com + name: Michael Valdron + - email: jcollier@redhat.com + name: John Collier + - email: ktsao@redhat.com + name: Kim Tsao + maturity: beta + minKubeVersion: 1.25.0 + provider: + name: Red Hat + url: https://redhat.com + version: 0.2.0 + webhookdefinitions: + - admissionReviewVersions: + - v1 + containerPort: 443 + deploymentName: registry-operator-controller-manager + failurePolicy: Fail + generateName: mclusterdevfileregistrieslist.kb.io + rules: + - apiGroups: + - registry.devfile.io + apiVersions: + - v1alpha1 + operations: + - CREATE + - UPDATE + resources: + - clusterdevfileregistrieslists + sideEffects: None + targetPort: 9443 + type: MutatingAdmissionWebhook + webhookPath: /mutate-registry-devfile-io-v1alpha1-clusterdevfileregistrieslist + - admissionReviewVersions: + - v1 + containerPort: 443 + deploymentName: registry-operator-controller-manager + failurePolicy: Fail + generateName: mdevfileregistrieslist.kb.io + rules: + - apiGroups: + - registry.devfile.io + apiVersions: + - v1alpha1 + operations: + - CREATE + - UPDATE + resources: + - devfileregistrieslists + sideEffects: None + targetPort: 9443 + type: MutatingAdmissionWebhook + webhookPath: /mutate-registry-devfile-io-v1alpha1-devfileregistrieslist + - admissionReviewVersions: + - v1 + containerPort: 443 + deploymentName: registry-operator-controller-manager + failurePolicy: Fail + generateName: mdevfileregistry.kb.io + rules: + - apiGroups: + - registry.devfile.io + apiVersions: + - v1alpha1 + operations: + - CREATE + - UPDATE + resources: + - devfileregistries + sideEffects: None + targetPort: 9443 + type: MutatingAdmissionWebhook + webhookPath: /mutate-registry-devfile-io-v1alpha1-devfileregistry + - admissionReviewVersions: + - v1 + containerPort: 443 + deploymentName: registry-operator-controller-manager + failurePolicy: Fail + generateName: vclusterdevfileregistrieslist.kb.io + rules: + - apiGroups: + - registry.devfile.io + apiVersions: + - v1alpha1 + operations: + - CREATE + - UPDATE + resources: + - clusterdevfileregistrieslists + sideEffects: None + targetPort: 9443 + type: ValidatingAdmissionWebhook + webhookPath: /validate-registry-devfile-io-v1alpha1-clusterdevfileregistrieslist + - admissionReviewVersions: + - v1 + containerPort: 443 + deploymentName: registry-operator-controller-manager + failurePolicy: Fail + generateName: vdevfileregistrieslist.kb.io + rules: + - apiGroups: + - registry.devfile.io + apiVersions: + - v1alpha1 + operations: + - CREATE + - UPDATE + resources: + - devfileregistrieslists + sideEffects: None + targetPort: 9443 + type: ValidatingAdmissionWebhook + webhookPath: /validate-registry-devfile-io-v1alpha1-devfileregistrieslist + - admissionReviewVersions: + - v1 + containerPort: 443 + deploymentName: registry-operator-controller-manager + failurePolicy: Fail + generateName: vdevfileregistry.kb.io + rules: + - apiGroups: + - registry.devfile.io + apiVersions: + - v1alpha1 + operations: + - CREATE + - UPDATE + resources: + - devfileregistries + sideEffects: None + targetPort: 9443 + type: ValidatingAdmissionWebhook + webhookPath: /validate-registry-devfile-io-v1alpha1-devfileregistry diff --git a/operators/registry-operator/0.2.0/manifests/registry.devfile.io_clusterdevfileregistrieslists.yaml b/operators/registry-operator/0.2.0/manifests/registry.devfile.io_clusterdevfileregistrieslists.yaml new file mode 100644 index 00000000000..b86c06ef428 --- /dev/null +++ b/operators/registry-operator/0.2.0/manifests/registry.devfile.io_clusterdevfileregistrieslists.yaml @@ -0,0 +1,166 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cert-manager.io/inject-ca-from: registry-operator-system/registry-operator-serving-cert + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null + name: clusterdevfileregistrieslists.registry.devfile.io +spec: + conversion: + strategy: Webhook + webhook: + clientConfig: + service: + name: webhook-service + namespace: system + path: /convert + port: 443 + conversionReviewVersions: + - v1 + group: registry.devfile.io + names: + kind: ClusterDevfileRegistriesList + listKind: ClusterDevfileRegistriesListList + plural: clusterdevfileregistrieslists + singular: clusterdevfileregistrieslist + scope: Cluster + versions: + - additionalPrinterColumns: + - description: The status for the Cluster Devfile Registries List + jsonPath: .status.status + name: Status + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: ClusterDevfileRegistriesList is a custom resource where cluster + admins can add a list of Devfile Registries to allow devfiles to be visible + at the cluster level. In order to be added to the list, the Devfile Registries + must be reachable, supports the Devfile v2.0 spec and above, and is not + using the default namespace. + 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: DevfileRegistriesListSpec defines the desired state of DevfileRegistriesList + properties: + devfileRegistries: + description: DevfileRegistries is a list of devfile registry services + items: + description: DevfileRegistryService represents the properties used + to identify a devfile registry service. + properties: + name: + description: Name is the unique Name of the devfile registry. + type: string + skipTLSVerify: + description: SkipTLSVerify defaults to false. Set to true in + a non-production environment to bypass certificate checking + type: boolean + url: + description: URL is the unique URL of the devfile registry. + type: string + required: + - name + - url + type: object + type: array + type: object + status: + description: DevfileRegistriesListStatus defines the observed state of + DevfileRegistriesList + properties: + conditions: + description: Conditions shows the state of this CR's devfile registry + list. If registries are no longer reachable, they will be listed + here + items: + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition + transitioned from one status to another. This should be when + the underlying condition changed. If that is not known, then + using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating + details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation + that the condition was set based upon. For instance, if .metadata.generation + is currently 12, but the .status.conditions[x].observedGeneration + is 9, the condition is out of date with respect to the current + state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/registry-operator/0.2.0/manifests/registry.devfile.io_devfileregistries.yaml b/operators/registry-operator/0.2.0/manifests/registry.devfile.io_devfileregistries.yaml new file mode 100644 index 00000000000..effbb220da5 --- /dev/null +++ b/operators/registry-operator/0.2.0/manifests/registry.devfile.io_devfileregistries.yaml @@ -0,0 +1,243 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null + name: devfileregistries.registry.devfile.io +spec: + group: registry.devfile.io + names: + kind: DevfileRegistry + listKind: DevfileRegistryList + plural: devfileregistries + shortNames: + - devreg + - dr + singular: devfileregistry + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The URL for the Devfile Registry + jsonPath: .status.url + name: URL + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: DevfileRegistry is a custom resource allows you to create and + manage your own index server and registry viewer. In order to be added, + the Devfile Registry must be reachable, supports the Devfile v2.0 spec and + above, and is not using the default namespace. + 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: DevfileRegistrySpec defines the desired state of DevfileRegistry + properties: + devfileIndex: + description: Sets the devfile index container spec to be deployed + on the Devfile Registry + properties: + image: + description: Sets the container image + type: string + imagePullPolicy: + description: Sets the image pull policy for the container + type: string + type: object + devfileIndexImage: + description: Sets the container image containing devfile stacks to + be deployed on the Devfile Registry + type: string + headless: + description: Sets the registry server deployment to run under headless + mode + type: boolean + k8s: + description: DevfileRegistrySpecK8sOnly defines the desired state + of the kubernetes-only fields of the DevfileRegistry + properties: + ingressDomain: + description: Ingress domain for a Kubernetes cluster. This MUST + be explicitly specified on Kubernetes. There are no defaults + type: string + type: object + ociRegistry: + description: Sets the OCI registry container spec to be deployed on + the Devfile Registry + properties: + image: + description: Sets the container image + type: string + imagePullPolicy: + description: Sets the image pull policy for the container + type: string + type: object + ociRegistryImage: + description: Overrides the container image used for the OCI registry. + Recommended to leave blank and default to the image specified by + the operator. + type: string + registryViewer: + description: Sets the registry viewer container spec to be deployed + on the Devfile Registry + properties: + image: + description: Sets the container image + type: string + imagePullPolicy: + description: Sets the image pull policy for the container + type: string + type: object + registryViewerImage: + description: Overrides the container image used for the registry viewer. + type: string + storage: + description: DevfileRegistrySpecStorage defines the desired state + of the storage for the DevfileRegistry + properties: + enabled: + description: Instructs the operator to deploy the DevfileRegistry + with persistent storage Disabled by default. + type: boolean + registryVolumeSize: + description: Configures the size of the devfile registry's persistent + volume, if enabled. Defaults to 1Gi. + type: string + type: object + telemetry: + description: Telemetry defines the desired state for telemetry in + the DevfileRegistry + properties: + key: + description: Specify a telemetry key to allow devfile specific + data to be sent to a client's own Segment analytics source. + If the write key is specified then telemetry will be enabled + type: string + registryName: + description: The registry name (can be any string) that is used + as identifier for devfile telemetry. + type: string + registryViewerWriteKey: + description: Specify a telemetry write key for the registry viewer + component to allow data to be sent to a client's own Segment + analytics source. If the write key is specified then telemetry + for the registry viewer component will be enabled + type: string + type: object + tls: + description: DevfileRegistrySpecTLS defines the desired state for + TLS in the DevfileRegistry + properties: + enabled: + description: Instructs the operator to deploy the DevfileRegistry + with TLS enabled. Enabled by default. Disabling is only recommended + for development or test. + type: boolean + secretName: + description: Name of an optional, pre-existing TLS secret to use + for TLS termination on ingress/route resources. + type: string + type: object + type: object + status: + description: DevfileRegistryStatus defines the observed state of DevfileRegistry + properties: + conditions: + description: Conditions shows the state devfile registries. + items: + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition + transitioned from one status to another. This should be when + the underlying condition changed. If that is not known, then + using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating + details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation + that the condition was set based upon. For instance, if .metadata.generation + is currently 12, but the .status.conditions[x].observedGeneration + is 9, the condition is out of date with respect to the current + state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + url: + description: URL is the exposed URL for the Devfile Registry, and + is set in the status after the registry has become available. + type: string + required: + - url + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/registry-operator/0.2.0/manifests/registry.devfile.io_devfileregistrieslists.yaml b/operators/registry-operator/0.2.0/manifests/registry.devfile.io_devfileregistrieslists.yaml new file mode 100644 index 00000000000..c5ae6c51055 --- /dev/null +++ b/operators/registry-operator/0.2.0/manifests/registry.devfile.io_devfileregistrieslists.yaml @@ -0,0 +1,166 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cert-manager.io/inject-ca-from: registry-operator-system/registry-operator-serving-cert + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null + name: devfileregistrieslists.registry.devfile.io +spec: + conversion: + strategy: Webhook + webhook: + clientConfig: + service: + name: webhook-service + namespace: system + path: /convert + port: 443 + conversionReviewVersions: + - v1 + group: registry.devfile.io + names: + kind: DevfileRegistriesList + listKind: DevfileRegistriesListList + plural: devfileregistrieslists + singular: devfileregistrieslist + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: The status for the Devfile Registries List + jsonPath: .status.status + name: Status + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: DevfileRegistriesList is a custom resource where namespace users + can add a list of Devfile Registries to allow devfiles to be visible at + the namespace level. In order to be added to the list, the Devfile Registries + must be reachable, supports the Devfile v2.0 spec and above, and is not + using the default namespace. + 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: DevfileRegistriesListSpec defines the desired state of DevfileRegistriesList + properties: + devfileRegistries: + description: DevfileRegistries is a list of devfile registry services + items: + description: DevfileRegistryService represents the properties used + to identify a devfile registry service. + properties: + name: + description: Name is the unique Name of the devfile registry. + type: string + skipTLSVerify: + description: SkipTLSVerify defaults to false. Set to true in + a non-production environment to bypass certificate checking + type: boolean + url: + description: URL is the unique URL of the devfile registry. + type: string + required: + - name + - url + type: object + type: array + type: object + status: + description: DevfileRegistriesListStatus defines the observed state of + DevfileRegistriesList + properties: + conditions: + description: Conditions shows the state of this CR's devfile registry + list. If registries are no longer reachable, they will be listed + here + items: + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition + transitioned from one status to another. This should be when + the underlying condition changed. If that is not known, then + using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating + details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation + that the condition was set based upon. For instance, if .metadata.generation + is currently 12, but the .status.conditions[x].observedGeneration + is 9, the condition is out of date with respect to the current + state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/registry-operator/0.2.0/metadata/annotations.yaml b/operators/registry-operator/0.2.0/metadata/annotations.yaml new file mode 100644 index 00000000000..e0a28333735 --- /dev/null +++ b/operators/registry-operator/0.2.0/metadata/annotations.yaml @@ -0,0 +1,17 @@ +annotations: + # Core bundle annotations. + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: registry-operator + operators.operatorframework.io.bundle.channels.v1: beta + operators.operatorframework.io.metrics.builder: operator-sdk-v1.28.0 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3 + + # OpenShift specific annotations. + com.redhat.openshift.versions: v4.12-v4.13 + + # Annotations for testing. + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 + operators.operatorframework.io.test.config.v1: tests/scorecard/ diff --git a/operators/registry-operator/0.2.0/tests/scorecard/config.yaml b/operators/registry-operator/0.2.0/tests/scorecard/config.yaml new file mode 100644 index 00000000000..c0ffb5abfff --- /dev/null +++ b/operators/registry-operator/0.2.0/tests/scorecard/config.yaml @@ -0,0 +1,70 @@ +apiVersion: scorecard.operatorframework.io/v1alpha3 +kind: Configuration +metadata: + name: config +stages: +- parallel: true + tests: + - entrypoint: + - scorecard-test + - basic-check-spec + image: quay.io/operator-framework/scorecard-test:v1.28.0 + labels: + suite: basic + test: basic-check-spec-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-bundle-validation + image: quay.io/operator-framework/scorecard-test:v1.28.0 + labels: + suite: olm + test: olm-bundle-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-validation + image: quay.io/operator-framework/scorecard-test:v1.28.0 + labels: + suite: olm + test: olm-crds-have-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-resources + image: quay.io/operator-framework/scorecard-test:v1.28.0 + labels: + suite: olm + test: olm-crds-have-resources-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-spec-descriptors + image: quay.io/operator-framework/scorecard-test:v1.28.0 + labels: + suite: olm + test: olm-spec-descriptors-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-status-descriptors + image: quay.io/operator-framework/scorecard-test:v1.28.0 + labels: + suite: olm + test: olm-status-descriptors-test + storage: + spec: + mountPath: {} +storage: + spec: + mountPath: {} diff --git a/operators/registry-operator/ci.yaml b/operators/registry-operator/ci.yaml new file mode 100644 index 00000000000..9ebf0853d0d --- /dev/null +++ b/operators/registry-operator/ci.yaml @@ -0,0 +1,6 @@ +# Use `replaces-mode` or `semver-mode`. +updateGraph: semver-mode +reviewers: + - michael-valdron + - johnmcollier + - kim-tsao