diff --git a/operators/k10-kasten-operator-rhmp/7.0.14/manifests/apik10.kasten.io_k10restores.yaml b/operators/k10-kasten-operator-rhmp/7.0.14/manifests/apik10.kasten.io_k10restores.yaml new file mode 100644 index 000000000..e8fa6b765 --- /dev/null +++ b/operators/k10-kasten-operator-rhmp/7.0.14/manifests/apik10.kasten.io_k10restores.yaml @@ -0,0 +1,50 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: k10restores.apik10.kasten.io +spec: + group: apik10.kasten.io + names: + kind: K10restore + listKind: K10restoreList + plural: k10restores + singular: k10restore + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: K10restore is the Schema for the k10restores 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: Spec defines the desired state of K10restore + type: object + x-kubernetes-preserve-unknown-fields: true + status: + description: Status defines the observed state of K10restore + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/k10-kasten-operator-rhmp/7.0.14/manifests/apik10.kasten.io_k10s.yaml b/operators/k10-kasten-operator-rhmp/7.0.14/manifests/apik10.kasten.io_k10s.yaml new file mode 100644 index 000000000..28cfef209 --- /dev/null +++ b/operators/k10-kasten-operator-rhmp/7.0.14/manifests/apik10.kasten.io_k10s.yaml @@ -0,0 +1,50 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: k10s.apik10.kasten.io +spec: + group: apik10.kasten.io + names: + kind: K10 + listKind: K10List + plural: k10s + singular: k10 + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: K10 is the Schema for the k10s 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: Spec defines the desired state of K10 + type: object + x-kubernetes-preserve-unknown-fields: true + status: + description: Status defines the observed state of K10 + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/k10-kasten-operator-rhmp/7.0.14/manifests/k10-kasten-operator-rhmp-controller-manager-metrics-service_v1_service.yaml b/operators/k10-kasten-operator-rhmp/7.0.14/manifests/k10-kasten-operator-rhmp-controller-manager-metrics-service_v1_service.yaml new file mode 100644 index 000000000..0220fda7f --- /dev/null +++ b/operators/k10-kasten-operator-rhmp/7.0.14/manifests/k10-kasten-operator-rhmp-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: k10-kasten-operator-rhmp + app.kubernetes.io/instance: controller-manager-metrics-service + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: service + app.kubernetes.io/part-of: k10-kasten-operator-rhmp + control-plane: controller-manager + name: k10-kasten-operator-rhmp-controller-manager-metrics-svc +spec: + ports: + - name: https + port: 8443 + protocol: TCP + targetPort: https + selector: + control-plane: controller-manager +status: + loadBalancer: {} diff --git a/operators/k10-kasten-operator-rhmp/7.0.14/manifests/k10-kasten-operator-rhmp-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml b/operators/k10-kasten-operator-rhmp/7.0.14/manifests/k10-kasten-operator-rhmp-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml new file mode 100644 index 000000000..7f0434ec7 --- /dev/null +++ b/operators/k10-kasten-operator-rhmp/7.0.14/manifests/k10-kasten-operator-rhmp-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: k10-kasten-operator-rhmp + app.kubernetes.io/instance: metrics-reader + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: clusterrole + app.kubernetes.io/part-of: k10-kasten-operator-rhmp + name: k10-kasten-operator-rhmp-metrics-reader +rules: +- nonResourceURLs: + - /metrics + verbs: + - get diff --git a/operators/k10-kasten-operator-rhmp/7.0.14/manifests/k10-kasten-operator-rhmp.clusterserviceversion.yaml b/operators/k10-kasten-operator-rhmp/7.0.14/manifests/k10-kasten-operator-rhmp.clusterserviceversion.yaml new file mode 100644 index 000000000..49f110d56 --- /dev/null +++ b/operators/k10-kasten-operator-rhmp/7.0.14/manifests/k10-kasten-operator-rhmp.clusterserviceversion.yaml @@ -0,0 +1,706 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "apik10.kasten.io/v1alpha1", + "kind": "K10", + "metadata": { + "annotations": { + "helm.sdk.operatorframework.io/rollback-force": "false" + }, + "name": "k10" + }, + "spec": { + "auth": { + "basicAuth": { + "enabled": false, + "htpasswd": "", + "secretName": "" + }, + "tokenAuth": { + "enabled": false + } + }, + "global": { + "persistence": { + "catalog": { + "size": "" + }, + "storageClass": "" + } + }, + "metering": { + "mode": "" + }, + "route": { + "enabled": false, + "host": "", + "tls": { + "enabled": false + } + } + } + }, + { + "apiVersion": "apik10.kasten.io/v1alpha1", + "kind": "K10restore", + "metadata": { + "name": "k10restore" + }, + "spec": { + "pointInTime": null, + "profileName": "", + "skipResource": null, + "sourceClusterID": "" + } + } + ] + capabilities: Full Lifecycle + categories: Storage + console.openshift.io/plugins: '["veeam-kasten-console-plugin"]' + containerImage: registry.connect.redhat.com/kasten/k10-operator@sha256:b1645c0d0ca3cbd9bb7dac0e98b880593829c603e8a4de687a51ade105d89cb9 + createdAt: Mon Nov 18 10:19:42 PM UTC 2024 + description: Kasten data management platform for OpenShift, The Market Leader for Kubernetes Backup and DR + features.operators.openshift.io/cnf: "false" + features.operators.openshift.io/cni: "false" + features.operators.openshift.io/csi: "false" + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "false" + features.operators.openshift.io/proxy-aware: "false" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + marketplace.openshift.io/remote-workflow: https://marketplace.redhat.com/en-us/operators/k10-kasten-operator-rhmp/pricing?utm_source=openshift_console + marketplace.openshift.io/support-workflow: https://marketplace.redhat.com/en-us/operators/k10-kasten-operator-rhmp/support?utm_source=openshift_console + operatorframework.io/suggested-namespace: kasten-io + operators.operatorframework.io/builder: operator-sdk-v1.35.0 + operators.operatorframework.io/project_layout: helm.sdk.operatorframework.io/v1 + support: contact@kasten.io + name: k10-kasten-operator-rhmp.v7.0.14 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: |- + k10restore can recover the K10 platform in case of a variety of disasters such as + the accidental deletion of K10, failure of underlying storage that K10 uses for its catalog, + or even the accidental destruction of the Kubernetes cluster on which K10 is deployed. + + **Before creating k10restore**: [K10 Disaster Recovery documentation](https://docs.kasten.io/latest/operating/dr.html#recovering-with-the-operator) + kind: K10restore + name: k10restores.apik10.kasten.io + specDescriptors: + - description: Required - The cluster ID shown when enabling k10 backup + displayName: Cluster ID + path: sourceClusterID + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Required - Name of the location profile used for backup + displayName: Profile name + path: profileName + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Optional - Point in time (RFC3339) at which to evaluate restore data. Eg. "2022-01-02T15:04:05Z" + displayName: Point in time + path: pointInTime + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Optional - Specify if restore of policies, profiles or secrets need to be skipped. Eg. "profiles,policies" + displayName: Resources to skip + path: skipResource + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Enable reading the K10 Disaster Recovery passphrase from a HashiCorp Vault instance + displayName: Enable HashiCorp Vault + path: vault.enabled + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - description: Vault server address + displayName: Address + path: vault.address + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:vault.enabled:true + - urn:alm:descriptor:com.tectonic.ui:text + - description: |- + Required when Vault authentication uses a Kubernetes service account token. + Name of the Vault Kubernetes authentication role binding the K10 service account and namespace to the Vault policy. + displayName: Role name + path: vault.role + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:vault.enabled:true + - urn:alm:descriptor:com.tectonic.ui:text + - description: |- + Optional when Vault authentication uses a Kubernetes service account token. + Defaults to /var/run/secrets/kubernetes.io/serviceaccount/token. + displayName: Service account token path + path: vault.serviceAccountTokenPath + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:vault.enabled:true + - urn:alm:descriptor:com.tectonic.ui:text + - description: Required when Vault authentication token is provided in a Kubernetes secret via "vault_token" key + displayName: Secret name + path: vault.secretName + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:vault.enabled:true + - urn:alm:descriptor:com.tectonic.ui:text + version: v1alpha1 + - description: |- + [Kasten's k10](https://docs.kasten.io/) is a data lifecycle management system for all your persistence enabled container-based applications. + + **Note: The complete list of values supported by the K10 spec field in the "YAML View" are documented [here](https://docs.kasten.io/latest/install/advanced.html#complete-list-of-k10-helm-options).** + kind: K10 + name: k10s.apik10.kasten.io + specDescriptors: + - description: Optional - Configures basic authentication for the K10 dashboard. Once enabled, you need to either provide Authentication Details (htpasswd) or Secret Name + displayName: Enable Basic Authentication + path: auth.basicAuth.enabled + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:auth.tokenAuth.enabled:false + - description: Name of an existing Secret that contains a file generated with htpasswd + displayName: Secret Name + path: auth.basicAuth.secretName + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:auth.basicAuth.enabled:true + - urn:alm:descriptor:com.tectonic.ui:text + - description: A username and password pair separated by a colon character + displayName: Authentication Details (htpasswd) + path: auth.basicAuth.htpasswd + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:auth.basicAuth.enabled:true + - urn:alm:descriptor:com.tectonic.ui:password + - description: Optional - Configure Token based authentication for the K10 dashboard + displayName: Enable Token Based Authentication + path: auth.tokenAuth.enabled + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:auth.basicAuth.enabled:false + - description: Optional - Configure Route for the K10 dashboard + displayName: Enable K10 dashboard to be exposed via route + path: route.enabled + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - description: Specify FQDN (e.g., `.k10.example.com`), Defaults to empty string + displayName: FQDN for name-based virtual host + path: route.host + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:route.enabled:true + - urn:alm:descriptor:com.tectonic.ui:text + - description: Optional - Defaults to false + displayName: Create secured edge route for exposing k10 + path: route.tls.enabled + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:route.enabled:true + - description: Optional - Defaults to the default StorageClass of the cloud provider. (gp2 on AWS, standard on GKE, AWS & OpenStack) + displayName: Specify StorageClassName to be used for PVCs + path: global.persistence.storageClass + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Optional - Defaults to global size of volumes for K10 persistent services. Controlled by `global.persistence.size` + displayName: Size of a volume for catalog service. For e.g. "20Gi" + path: global.persistence.catalog.size + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Optional - Set to `airgap` for private-network installs. + displayName: Control metric and license reporting + path: metering.mode + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + version: v1alpha1 + description: |- + Kasten data management platform for OpenShift, The Market Leader for Kubernetes Backup and DR. + + The supported Kubernetes versions are listed here - https://docs.kasten.io/latest/operating/support.html + Please review release notes before an upgrade - https://docs.kasten.io/latest/releasenotes.html + displayName: Veeam Kasten (Free) + icon: + - base64data: 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 + mediatype: image/png + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - apiGroups: + - "" + resources: + - secrets + verbs: + - '*' + - apiGroups: + - "" + resources: + - events + verbs: + - create + - apiGroups: + - apik10.kasten.io + resources: + - k10s + - k10s/status + - k10s/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + - clusterroles + verbs: + - '*' + - apiGroups: + - apiregistration.k8s.io + resources: + - apiservices + verbs: + - '*' + - apiGroups: + - console.openshift.io + resources: + - consoleplugins + verbs: + - '*' + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - '*' + - apiGroups: + - networking.k8s.io + resources: + - networkpolicies + verbs: + - '*' + - apiGroups: + - "" + resources: + - configmaps + - persistentvolumeclaims + - secrets + - serviceaccounts + - services + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - rolebindings + - roles + verbs: + - '*' + - apiGroups: + - apps + resources: + - daemonsets + - deployments + - statefulsets + verbs: + - '*' + - apiGroups: + - apik10.kasten.io + resources: + - k10restores + - k10restores/status + - k10restores/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + - clusterroles + verbs: + - '*' + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - '*' + - apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - rolebindings + - roles + verbs: + - '*' + - apiGroups: + - batch + resources: + - jobs + verbs: + - '*' + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + - apiGroups: + - policy + resources: + - podsecuritypolicies + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + - clusterroles + - rolebindings + - roles + verbs: + - '*' + - apiGroups: + - apiregistration.k8s.io + resources: + - apiservices + verbs: + - '*' + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - '*' + - apiGroups: + - route.openshift.io + resources: + - routes + - routes/custom-host + verbs: + - '*' + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - '*' + - apiGroups: + - console.openshift.io + resources: + - consoleplugins + verbs: + - '*' + serviceAccountName: k10-kasten-operator-rhmp-controller-manager + deployments: + - label: + app.kubernetes.io/component: manager + app.kubernetes.io/created-by: k10-kasten-operator-rhmp + app.kubernetes.io/instance: controller-manager + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: deployment + app.kubernetes.io/part-of: k10-kasten-operator-rhmp + control-plane: controller-manager + name: k10-kasten-operator-rhmp-controller-manager + spec: + replicas: 1 + selector: + matchLabels: + control-plane: controller-manager + strategy: {} + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: manager + labels: + 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=0 + image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:7efeeb8b29872a6f0271f651d7ae02c91daea16d853c50e374c310f044d8c76c + 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 + - args: + - --health-probe-bind-address=:8081 + - --metrics-bind-address=127.0.0.1:8080 + - --leader-elect + - --leader-election-id=k10-kasten-operator-rhmp + env: + - name: RELATED_IMAGE_AGGREGATEDAPIS + value: registry.connect.redhat.com/kasten/aggregatedapis@sha256:adb96b699c34707194bf98766cdbdc70691b5ec8493766f8fdeeabb1595f06d7 + - name: RELATED_IMAGE_AUTH + value: registry.connect.redhat.com/kasten/auth@sha256:3ffa79fae61e5b4d66037852fdc7dadc0b5f528a30d5cad7a1659d0eb5ef32b2 + - name: RELATED_IMAGE_CATALOG + value: registry.connect.redhat.com/kasten/catalog@sha256:4117c0fd303f9112cc4710b91d11dee66b661193ddad9da7e9af4429c5fa216f + - name: RELATED_IMAGE_CONTROLLERMANAGER + value: registry.connect.redhat.com/kasten/controllermanager@sha256:22adaae45368e9f0828f5ed4d8f4e569b93a60a62a1bbe4e6593246d24a95b49 + - name: RELATED_IMAGE_CRYPTO + value: registry.connect.redhat.com/kasten/crypto@sha256:8c28583c3aee305412a80d51aed104d02b61a6b21cfb8d6718a65e31571f58a3 + - name: RELATED_IMAGE_DASHBOARDBFF + value: registry.connect.redhat.com/kasten/dashboardbff@sha256:17f919f7c4fab3c0084dd96d33748e4c34f506f507dbd6c394e74f1ab817de3f + - name: RELATED_IMAGE_EVENTS + value: registry.connect.redhat.com/kasten/events@sha256:b7e972cf3bc9640cc726a97e137a4f026bec7f397269d9ee8bcb51112da3d41a + - name: RELATED_IMAGE_EXECUTOR + value: registry.connect.redhat.com/kasten/executor@sha256:d75ed86deb4edd7d8d2997155c865cc639e4d06d132068935317f3fcd0907a44 + - name: RELATED_IMAGE_FRONTEND + value: registry.connect.redhat.com/kasten/frontend@sha256:be881194376fbba07563e1df587c31cd3ab261eade5086daaf8bb4e5cfdc8256 + - name: RELATED_IMAGE_INIT + value: registry.connect.redhat.com/kasten/init@sha256:45e87ceeddacd3cc8db933f532edaabe85b94c8de55da86e03372411f55d9f1a + - name: RELATED_IMAGE_JOBS + value: registry.connect.redhat.com/kasten/jobs@sha256:92ebbdf674ad78b4cd6f512b78ed5dd2b561abab077d1e70192cba7cb6f292c8 + - name: RELATED_IMAGE_KANISTER + value: registry.connect.redhat.com/kasten/kanister@sha256:b02552ff9b205f55a776a260aa3b575107a322e294eb1d80e2dc3f0900b2b1cf + - name: RELATED_IMAGE_LOGGING + value: registry.connect.redhat.com/kasten/logging@sha256:fade7d29fd55ff02ffbe7a2fd5a7e02690df2787afab4f8f93d17ded535d2fae + - name: RELATED_IMAGE_METERING + value: registry.connect.redhat.com/kasten/metering@sha256:5ab41af23d5159a4aacee4f1d6594ddd490437db8caba3e6759a5ff0086c0dc0 + - name: RELATED_IMAGE_OCPCONSOLEPLUGIN + value: registry.connect.redhat.com/kasten/ocpconsoleplugin@sha256:19b71a61ef5acc6e1f3cb8d83cff2e669e60348bf692779c69186f41cbcb940e + - name: RELATED_IMAGE_STATE + value: registry.connect.redhat.com/kasten/state@sha256:681bb3758433402d833fc69b6966492c3826ff4fe6ea934bc84024f7306d6be7 + - name: RELATED_IMAGE_UPGRADE + value: registry.connect.redhat.com/kasten/upgrade@sha256:b3d06c2aec6109d8a548c4a9735756a868f3e56bb20fc4b8ee8746d095b625ee + - name: RELATED_IMAGE_DATAMOVER + value: registry.connect.redhat.com/kasten/datamover@sha256:aff0e1c761503a78dfe6977f760a5abdde33cdb002214f39f98eb69c32548d7f + - name: RELATED_IMAGE_BLM + value: registry.connect.redhat.com/kasten/bloblifecyclemanager@sha256:af04766e0622d71ead40bf5f56ab3416db5830ec9bdc831a3aeee8cbbe617bfe + - name: RELATED_IMAGE_REPOSITORIES + value: registry.connect.redhat.com/kasten/repositories@sha256:1c8eba7c558aaa86a7ded6a22d8c9007460ef516ccf15d0e558e9188851126f7 + - name: RELATED_IMAGE_PAYGO_DAEMONSET + value: registry.connect.redhat.com/kasten/init@sha256:45e87ceeddacd3cc8db933f532edaabe85b94c8de55da86e03372411f55d9f1a + - name: RELATED_IMAGE_GARBAGECOLLECTOR + value: registry.connect.redhat.com/kasten/garbagecollector@sha256:361993d60c87add0a24d721429c2c53011fcd54bba254af0e7a2b599f04abac4 + - name: RELATED_IMAGE_GATEWAY + value: registry.connect.redhat.com/kasten/gateway@sha256:0b41d3df1b0082926fda0d2cd49c4246d617f718f66793a0de76a304541f1141 + - name: RELATED_IMAGE_VBRINTEGRATIONAPI + value: registry.connect.redhat.com/kasten/vbrintegrationapi@sha256:fedf78c0b67c971fdbb20abb124e6b542d44ecedfa39b7ad7a618381b8e9d40d + - name: RELATED_IMAGE_METRIC_SIDECAR + value: registry.connect.redhat.com/kasten/metric-sidecar@sha256:5dddd0fd73aebe22ec82336d4e55af5f86910cbe723111baea0f72bd31149d61 + - name: RELATED_IMAGE_K10TOOLS + value: registry.connect.redhat.com/kasten/k10tools@sha256:970c0c7b0f2a970fbcce0c2d43cb16810c1f0b1d4cc02395aa2be529bd17909a + - name: RELATED_IMAGE_CONFIGMAP_RELOAD + value: registry.connect.redhat.com/kasten/configmap-reload@sha256:5a5317127b086bc049023d0ed537998ffcac3ab17acbdd0101ac674b4e13b31e + - name: RELATED_IMAGE_DEX + value: registry.connect.redhat.com/kasten/dex@sha256:1da2a66240dda9a73ee19f663bf6d9d60d5fab226b08c04e5f5c52f77652f19f + - name: RELATED_IMAGE_EMISSARY + value: registry.connect.redhat.com/kasten/emissary@sha256:4fbf30878113a7bd60b903a5cd3cc724b37855f9516ee232447b1526a7074d41 + - name: RELATED_IMAGE_GRAFANA + value: registry.connect.redhat.com/kasten/grafana@sha256:d368f83c57e61c6e4944e958b2447d116b5ee9fae6e23ae82349de013aad54f8 + - name: RELATED_IMAGE_KANISTER_TOOLS + value: registry.connect.redhat.com/kasten/kanister-tools@sha256:2b351a1a7c8df2eb732c2460dda3d500b1f895b75f153abeca82a346380964f8 + - name: RELATED_IMAGE_PROMETHEUS + value: registry.connect.redhat.com/kasten/prometheus@sha256:52b32ade83bb9e35594d596a21b9191997c3de6f5c23bc80b63040c87e3f0fd8 + - name: RELATED_IMAGE_RESTORECTL + value: registry.connect.redhat.com/kasten/restorectl@sha256:9d319ed9970a80faa8859200391b23286d6541672661036b15747fc1aeeb255a + image: registry.connect.redhat.com/kasten/k10-operator@sha256:b1645c0d0ca3cbd9bb7dac0e98b880593829c603e8a4de687a51ade105d89cb9 + imagePullPolicy: Always + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: manager + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + limits: + cpu: 1600m + memory: 4Gi + requests: + cpu: 800m + memory: 600Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + securityContext: + runAsNonRoot: true + serviceAccountName: k10-kasten-operator-rhmp-controller-manager + terminationGracePeriodSeconds: 10 + 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: k10-kasten-operator-rhmp-controller-manager + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - kubernetes + - storage + - data-management + links: + - name: Kasten Documentation + url: https://docs.kasten.io + - name: Veeam Kasten + url: https://www.veeam.com/products/cloud/kubernetes-data-protection.html + maintainers: + - email: contact@kasten.io + name: Veeam Kasten + maturity: stable + provider: + name: Veeam Kasten + url: https://www.veeam.com/products/cloud/kubernetes-data-protection.html + version: 7.0.14 + replaces: k10-kasten-operator-rhmp.v7.0.13 + relatedImages: + - name: k10-operator-b1645c0d0ca3cbd9bb7dac0e98b880593829c603e8a4de687a51ade105d89cb9-annotation + image: registry.connect.redhat.com/kasten/k10-operator@sha256:b1645c0d0ca3cbd9bb7dac0e98b880593829c603e8a4de687a51ade105d89cb9 + - name: kube-rbac-proxy + image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:7efeeb8b29872a6f0271f651d7ae02c91daea16d853c50e374c310f044d8c76c + - name: manager + image: registry.connect.redhat.com/kasten/k10-operator@sha256:b1645c0d0ca3cbd9bb7dac0e98b880593829c603e8a4de687a51ade105d89cb9 + - name: aggregatedapis + image: registry.connect.redhat.com/kasten/aggregatedapis@sha256:adb96b699c34707194bf98766cdbdc70691b5ec8493766f8fdeeabb1595f06d7 + - name: auth + image: registry.connect.redhat.com/kasten/auth@sha256:3ffa79fae61e5b4d66037852fdc7dadc0b5f528a30d5cad7a1659d0eb5ef32b2 + - name: catalog + image: registry.connect.redhat.com/kasten/catalog@sha256:4117c0fd303f9112cc4710b91d11dee66b661193ddad9da7e9af4429c5fa216f + - name: controllermanager + image: registry.connect.redhat.com/kasten/controllermanager@sha256:22adaae45368e9f0828f5ed4d8f4e569b93a60a62a1bbe4e6593246d24a95b49 + - name: crypto + image: registry.connect.redhat.com/kasten/crypto@sha256:8c28583c3aee305412a80d51aed104d02b61a6b21cfb8d6718a65e31571f58a3 + - name: dashboardbff + image: registry.connect.redhat.com/kasten/dashboardbff@sha256:17f919f7c4fab3c0084dd96d33748e4c34f506f507dbd6c394e74f1ab817de3f + - name: events + image: registry.connect.redhat.com/kasten/events@sha256:b7e972cf3bc9640cc726a97e137a4f026bec7f397269d9ee8bcb51112da3d41a + - name: executor + image: registry.connect.redhat.com/kasten/executor@sha256:d75ed86deb4edd7d8d2997155c865cc639e4d06d132068935317f3fcd0907a44 + - name: frontend + image: registry.connect.redhat.com/kasten/frontend@sha256:be881194376fbba07563e1df587c31cd3ab261eade5086daaf8bb4e5cfdc8256 + - name: init + image: registry.connect.redhat.com/kasten/init@sha256:45e87ceeddacd3cc8db933f532edaabe85b94c8de55da86e03372411f55d9f1a + - name: jobs + image: registry.connect.redhat.com/kasten/jobs@sha256:92ebbdf674ad78b4cd6f512b78ed5dd2b561abab077d1e70192cba7cb6f292c8 + - name: kanister + image: registry.connect.redhat.com/kasten/kanister@sha256:b02552ff9b205f55a776a260aa3b575107a322e294eb1d80e2dc3f0900b2b1cf + - name: logging + image: registry.connect.redhat.com/kasten/logging@sha256:fade7d29fd55ff02ffbe7a2fd5a7e02690df2787afab4f8f93d17ded535d2fae + - name: metering + image: registry.connect.redhat.com/kasten/metering@sha256:5ab41af23d5159a4aacee4f1d6594ddd490437db8caba3e6759a5ff0086c0dc0 + - name: ocpconsoleplugin + image: registry.connect.redhat.com/kasten/ocpconsoleplugin@sha256:19b71a61ef5acc6e1f3cb8d83cff2e669e60348bf692779c69186f41cbcb940e + - name: state + image: registry.connect.redhat.com/kasten/state@sha256:681bb3758433402d833fc69b6966492c3826ff4fe6ea934bc84024f7306d6be7 + - name: upgrade + image: registry.connect.redhat.com/kasten/upgrade@sha256:b3d06c2aec6109d8a548c4a9735756a868f3e56bb20fc4b8ee8746d095b625ee + - name: datamover + image: registry.connect.redhat.com/kasten/datamover@sha256:aff0e1c761503a78dfe6977f760a5abdde33cdb002214f39f98eb69c32548d7f + - name: blm + image: registry.connect.redhat.com/kasten/bloblifecyclemanager@sha256:af04766e0622d71ead40bf5f56ab3416db5830ec9bdc831a3aeee8cbbe617bfe + - name: repositories + image: registry.connect.redhat.com/kasten/repositories@sha256:1c8eba7c558aaa86a7ded6a22d8c9007460ef516ccf15d0e558e9188851126f7 + - name: paygo_daemonset + image: registry.connect.redhat.com/kasten/init@sha256:45e87ceeddacd3cc8db933f532edaabe85b94c8de55da86e03372411f55d9f1a + - name: garbagecollector + image: registry.connect.redhat.com/kasten/garbagecollector@sha256:361993d60c87add0a24d721429c2c53011fcd54bba254af0e7a2b599f04abac4 + - name: gateway + image: registry.connect.redhat.com/kasten/gateway@sha256:0b41d3df1b0082926fda0d2cd49c4246d617f718f66793a0de76a304541f1141 + - name: vbrintegrationapi + image: registry.connect.redhat.com/kasten/vbrintegrationapi@sha256:fedf78c0b67c971fdbb20abb124e6b542d44ecedfa39b7ad7a618381b8e9d40d + - name: metric_sidecar + image: registry.connect.redhat.com/kasten/metric-sidecar@sha256:5dddd0fd73aebe22ec82336d4e55af5f86910cbe723111baea0f72bd31149d61 + - name: k10tools + image: registry.connect.redhat.com/kasten/k10tools@sha256:970c0c7b0f2a970fbcce0c2d43cb16810c1f0b1d4cc02395aa2be529bd17909a + - name: configmap_reload + image: registry.connect.redhat.com/kasten/configmap-reload@sha256:5a5317127b086bc049023d0ed537998ffcac3ab17acbdd0101ac674b4e13b31e + - name: dex + image: registry.connect.redhat.com/kasten/dex@sha256:1da2a66240dda9a73ee19f663bf6d9d60d5fab226b08c04e5f5c52f77652f19f + - name: emissary + image: registry.connect.redhat.com/kasten/emissary@sha256:4fbf30878113a7bd60b903a5cd3cc724b37855f9516ee232447b1526a7074d41 + - name: grafana + image: registry.connect.redhat.com/kasten/grafana@sha256:d368f83c57e61c6e4944e958b2447d116b5ee9fae6e23ae82349de013aad54f8 + - name: kanister_tools + image: registry.connect.redhat.com/kasten/kanister-tools@sha256:2b351a1a7c8df2eb732c2460dda3d500b1f895b75f153abeca82a346380964f8 + - name: prometheus + image: registry.connect.redhat.com/kasten/prometheus@sha256:52b32ade83bb9e35594d596a21b9191997c3de6f5c23bc80b63040c87e3f0fd8 + - name: restorectl + image: registry.connect.redhat.com/kasten/restorectl@sha256:9d319ed9970a80faa8859200391b23286d6541672661036b15747fc1aeeb255a diff --git a/operators/k10-kasten-operator-rhmp/7.0.14/metadata/annotations.yaml b/operators/k10-kasten-operator-rhmp/7.0.14/metadata/annotations.yaml new file mode 100644 index 000000000..af003efff --- /dev/null +++ b/operators/k10-kasten-operator-rhmp/7.0.14/metadata/annotations.yaml @@ -0,0 +1,21 @@ +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: k10-kasten-operator-rhmp + operators.operatorframework.io.bundle.channels.v1: stable + operators.operatorframework.io.bundle.channel.default.v1: stable + operators.operatorframework.io.metrics.builder: operator-sdk-v1.35.0 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: helm.sdk.operatorframework.io/v1 + + # Annotations for testing. + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 + operators.operatorframework.io.test.config.v1: tests/scorecard/ + + # Appended to the bundle/metadata/annotations.yaml file generated by operator-sdk + # Ref: https://redhat-connect.gitbook.io/certified-operator-guide/ocp-deployment/operator-metadata/bundle-directory/managing-openshift-versions + # NOTE: must match with + # - helm/operator/generate/append/bundle.Dockerfile + com.redhat.openshift.versions: v4.12