diff --git a/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-controller-manager-metrics-monitor_monitoring.coreos.com_v1_servicemonitor.yaml b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-controller-manager-metrics-monitor_monitoring.coreos.com_v1_servicemonitor.yaml new file mode 100644 index 00000000000..121e266f9a8 --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-controller-manager-metrics-monitor_monitoring.coreos.com_v1_servicemonitor.yaml @@ -0,0 +1,19 @@ +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + labels: + control-plane: controller-manager + redhat.marketplace.com/name: ibm-metrics-operator + name: ibm-metrics-operator-controller-manager-metrics-monitor +spec: + endpoints: + - bearerTokenSecret: + key: token + name: ibm-metrics-operator-servicemonitor-metrics-reader + path: /metrics + port: https + scheme: https + selector: + matchLabels: + control-plane: controller-manager + redhat.marketplace.com/name: ibm-metrics-operator diff --git a/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-controller-manager-metrics-service_v1_service.yaml b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-controller-manager-metrics-service_v1_service.yaml new file mode 100644 index 00000000000..aa272bc8720 --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-controller-manager-metrics-service_v1_service.yaml @@ -0,0 +1,20 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + service.beta.openshift.io/serving-cert-secret-name: ibm-metrics-operator-controller-manager-metrics-service-tls + creationTimestamp: null + labels: + control-plane: controller-manager + redhat.marketplace.com/name: ibm-metrics-operator + name: ibm-metrics-operator-controller-manager-metrics-service +spec: + ports: + - name: https + port: 8443 + targetPort: https + selector: + control-plane: controller-manager + redhat.marketplace.com/name: ibm-metrics-operator +status: + loadBalancer: {} diff --git a/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-manager-cluster-monitoring-binding_rbac.authorization.k8s.io_v1_clusterrolebinding.yaml b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-manager-cluster-monitoring-binding_rbac.authorization.k8s.io_v1_clusterrolebinding.yaml new file mode 100644 index 00000000000..2f533580a5d --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-manager-cluster-monitoring-binding_rbac.authorization.k8s.io_v1_clusterrolebinding.yaml @@ -0,0 +1,24 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + creationTimestamp: null + labels: + redhat.marketplace.com/name: ibm-metrics-operator + name: ibm-metrics-operator-manager-cluster-monitoring-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-monitoring-view +subjects: +- kind: ServiceAccount + name: ibm-metrics-operator-controller-manager + namespace: openshift-redhat-marketplace +- kind: ServiceAccount + name: ibm-metrics-operator-controller-manager + namespace: redhat-marketplace +- kind: ServiceAccount + name: ibm-metrics-operator-controller-manager + namespace: ibm-common-services +- kind: ServiceAccount + name: ibm-metrics-operator-controller-manager + namespace: ibm-software-central diff --git a/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-metric-state-view-binding_rbac.authorization.k8s.io_v1_clusterrolebinding.yaml b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-metric-state-view-binding_rbac.authorization.k8s.io_v1_clusterrolebinding.yaml new file mode 100644 index 00000000000..ca11a3eca61 --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-metric-state-view-binding_rbac.authorization.k8s.io_v1_clusterrolebinding.yaml @@ -0,0 +1,24 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + creationTimestamp: null + labels: + redhat.marketplace.com/name: ibm-metrics-operator + name: ibm-metrics-operator-metric-state-view-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: view +subjects: +- kind: ServiceAccount + name: ibm-metrics-operator-metric-state + namespace: openshift-redhat-marketplace +- kind: ServiceAccount + name: ibm-metrics-operator-metric-state + namespace: redhat-marketplace +- kind: ServiceAccount + name: ibm-metrics-operator-metric-state + namespace: ibm-common-services +- kind: ServiceAccount + name: ibm-metrics-operator-metric-state + namespace: ibm-software-central diff --git a/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-reporter-cluster-monitoring-binding_rbac.authorization.k8s.io_v1_clusterrolebinding.yaml b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-reporter-cluster-monitoring-binding_rbac.authorization.k8s.io_v1_clusterrolebinding.yaml new file mode 100644 index 00000000000..58938e170b9 --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-reporter-cluster-monitoring-binding_rbac.authorization.k8s.io_v1_clusterrolebinding.yaml @@ -0,0 +1,24 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + creationTimestamp: null + labels: + redhat.marketplace.com/name: ibm-metrics-operator + name: ibm-metrics-operator-reporter-cluster-monitoring-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-monitoring-view +subjects: +- kind: ServiceAccount + name: ibm-metrics-operator-reporter + namespace: openshift-redhat-marketplace +- kind: ServiceAccount + name: ibm-metrics-operator-reporter + namespace: redhat-marketplace +- kind: ServiceAccount + name: ibm-metrics-operator-reporter + namespace: ibm-common-services +- kind: ServiceAccount + name: ibm-metrics-operator-reporter + namespace: ibm-software-central diff --git a/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-servicemonitor-metrics-reader_v1_secret.yaml b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-servicemonitor-metrics-reader_v1_secret.yaml new file mode 100644 index 00000000000..dcf551cb00a --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-servicemonitor-metrics-reader_v1_secret.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Secret +metadata: + annotations: + kubernetes.io/service-account.name: ibm-metrics-operator-servicemonitor-metrics-reader + labels: + name: servicemonitor-metrics-reader + redhat.marketplace.com/name: ibm-metrics-operator + name: ibm-metrics-operator-servicemonitor-metrics-reader +type: kubernetes.io/service-account-token diff --git a/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-serving-certs-ca-bundle_v1_configmap.yaml b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-serving-certs-ca-bundle_v1_configmap.yaml new file mode 100644 index 00000000000..7acd69b94df --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator-serving-certs-ca-bundle_v1_configmap.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + annotations: + service.beta.openshift.io/inject-cabundle: "true" + labels: + redhat.marketplace.com/name: ibm-metrics-operator + name: ibm-metrics-operator-serving-certs-ca-bundle diff --git a/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator.clusterserviceversion.yaml b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator.clusterserviceversion.yaml new file mode 100644 index 00000000000..9600d68342b --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/manifests/ibm-metrics-operator.clusterserviceversion.yaml @@ -0,0 +1,1266 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "marketplace.redhat.com/v1alpha1", + "kind": "MarketplaceConfig", + "metadata": { + "name": "marketplaceconfig" + }, + "spec": { + "features": { + "deployment": true, + "meterDefinitionCatalogServer": false, + "registration": true + }, + "installIBMCatalogSource": true, + "isDisconnected": false, + "license": { + "accept": false + } + } + }, + { + "apiVersion": "marketplace.redhat.com/v1alpha1", + "kind": "MeterBase", + "metadata": { + "name": "meterbase" + }, + "spec": { + "enabled": true, + "prometheus": { + "resources": { + "limits": { + "cpu": "2", + "memory": "2Gi" + }, + "requests": { + "cpu": "1", + "memory": "1G" + } + }, + "storage": { + "size": "20Gi" + } + } + } + }, + { + "apiVersion": "marketplace.redhat.com/v1alpha1", + "kind": "MeterReport", + "metadata": { + "name": "example-meterreport" + }, + "spec": { + "endTime": "2020-08-05T00:00:00Z", + "prometheusService": { + "name": "rhm-prometheus-meterbase", + "namespace": "openshift-redhat-marketplace", + "targetPort": "rbac" + }, + "startTime": "2020-08-04T00:00:00Z" + } + }, + { + "apiVersion": "marketplace.redhat.com/v1alpha1", + "kind": "RazeeDeployment", + "metadata": { + "name": "razeedeployment-example" + }, + "spec": { + "clusterUUID": "example-cluster-uuid", + "enabled": true + } + }, + { + "apiVersion": "marketplace.redhat.com/v1beta1", + "kind": "MeterDefinition", + "metadata": { + "name": "example-meterdefinition-4" + }, + "spec": { + "group": "partner.metering.com", + "kind": "App", + "meters": [ + { + "aggregation": "sum", + "metricId": "container_cpu_usage_core_avg", + "period": "1h", + "query": "rate(container_cpu_usage_seconds_total{cpu=\"total\",container=\"db\"}[5m])*100", + "workloadType": "Pod" + } + ], + "resourceFilters": [ + { + "namespace": { + "useOperatorGroup": true + }, + "ownerCRD": { + "apiVersion": "marketplace.redhat.com/v1alpha1", + "kind": "RazeeDeployment" + }, + "workloadType": "Pod" + } + ] + } + }, + { + "apiVersion": "marketplace.redhat.com/v1beta1", + "kind": "MeterDefinition", + "metadata": { + "name": "meterdefinition-sample" + }, + "spec": { + "group": "partner.metering.com", + "kind": "App", + "meters": [ + { + "aggregation": "sum", + "metricId": "container_cpu_usage_core_avg", + "period": "1h", + "query": "rate(container_cpu_usage_seconds_total{cpu=\"total\",container=\"db\"}[5m])*100", + "workloadType": "Pod" + } + ], + "resourceFilters": [ + { + "namespace": { + "useOperatorGroup": true + }, + "ownerCRD": { + "apiVersion": "marketplace.redhat.com/v1alpha1", + "kind": "RazeeDeployment" + }, + "workloadType": "Pod" + } + ] + } + } + ] + capabilities: Seamless Upgrades + categories: Developer Tools + certified: "true" + containerImage: quay.io/rh-marketplace/ibm-metrics-operator@sha256:fd9fede0e93c634d16106f56750d90e3971aa9f6242f729711bb72893bf89fcf + createdAt: "2025-01-29T09:40:32Z" + description: The IBM Metrics Operator provides workload metering and reporting for IBM and Red Hat Marketplace customers. + 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" + olm.skipRange: '>=1.0.0 <2.18.0' + operatorframework.io/suggested-namespace: ibm-software-central + operators.operatorframework.io/builder: operator-sdk-v1.28.1 + operators.operatorframework.io/internal-objects: '["razeedeployments.marketplace.redhat.com","remoteresources.deploy.razee.io]' + operators.operatorframework.io/project_layout: go.kubebuilder.io/v3 + repository: https://github.com/redhat-marketplace/redhat-marketplace-operator + support: IBM Corporation + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + operatorframework.io/os.linux: supported + name: ibm-metrics-operator.v2.18.0 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: MarketplaceConfig is configuration manager for our Red Hat Marketplace controllers By installing this product you accept the license terms https://ibm.biz/BdfaAY. + displayName: Marketplace Config + kind: MarketplaceConfig + name: marketplaceconfigs.marketplace.redhat.com + version: v1alpha1 + - description: MeterBase is the resource that sets up Metering for Red Hat Marketplace. This is an internal resource not meant to be modified directly. + displayName: Meter Base + kind: MeterBase + name: meterbases.marketplace.redhat.com + version: v1alpha1 + - description: MeterDefinition defines the meter workloads used to enable pay for use billing. + displayName: Meter Definition + kind: MeterDefinition + name: meterdefinitions.marketplace.redhat.com + version: v1beta1 + - kind: MeterReport + name: meterreports.marketplace.redhat.com + version: v1alpha1 + - description: RazeeDeployment is the resources that deploys Razee for the Red Hat Marketplace. This is an internal resource not meant to be modified directly. + displayName: Razee Deployment + kind: RazeeDeployment + name: razeedeployments.marketplace.redhat.com + version: v1alpha1 + description: "The IBM Metrics Operator provides workload metering and reporting for IBM Software Central and Red Hat Marketplace customers.\n### **Important Note**\nA set of instructions for onboarding is provided here. For more detailed onboarding instructions or information about what is installed please visit [swc.saas.ibm.com](https://swc.saas.ibm.com).\n\nUsage metrics may be monitored through [https://swc.saas.ibm.com](https://swc.saas.ibm.com) with only IBM Metrics Operator and a Red Hat Marketplace account.\n\n### Upgrade Policy\n\nThe operator releases adhere to semantic versioning and provides a seamless upgrade path for minor and patch releases within the current stable channel.\n\n### Prerequisites\n1. Installations are required to [enable monitoring for user-defined projects](https://docs.openshift.com/container-platform/latest/monitoring/enabling-monitoring-for-user-defined-projects.html) as the Prometheus provider.\n2. Edit the cluster-monitoring-config ConfigMap object:\n\n ```sh\n $ oc -n openshift-monitoring edit configmap cluster-monitoring-config\n ```\n\n3. Add enableUserWorkload: true under data/config.yaml:\n \n ```sh\n apiVersion: v1\n kind: ConfigMap\n metadata:\n name: cluster-monitoring-config\n namespace: openshift-monitoring\n data:\n config.yaml: |\n enableUserWorkload: true\n ```\n\n4. Configure the user-workload-monitoring-config ConfigMap object:\n\n ```sh\n $ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config\n ```\n\n5. Configure a minimum retention time of 168h and minimum storage capacity of 40Gi\n \n ```sh\n apiVersion: v1\n kind: ConfigMap\n metadata:\n name: user-workload-monitoring-config\n namespace: openshift-user-workload-monitoring\n\n data:\n config.yaml: |\n prometheus:\n retention: 168h\n volumeClaimTemplate:\n spec:\n resources:\n requests:\n storage: 40Gi\n ```\n\n### Resources Required\n\nMinimum system resources required:\n\n| Operator | Memory (MB) | CPU (cores) | Disk (GB) | Nodes |\n| ----------------------- | ----------- | ----------- | --------- | ----- |\n| **Metrics** | 750 | 0.25 | 3x1 | 3 |\n| **Deployment** | 250 | 0.25 | - | 1 |\n\n| Prometheus Provider | Memory (GB) | CPU (cores) | Disk (GB) | Nodes |\n| --------- | ----------- | ----------- | --------- | ----- |\n| **[Openshift User Workload Monitoring](https://docs.openshift.com/container-platform/latest/monitoring/enabling-monitoring-for-user-defined-projects.html)** | 1 | 0.1 | 2x40 | 2 |\n\nMultiple nodes are required to provide pod scheduling for high availability for IBM Metrics Operator Data Service and Prometheus.\n\nThe IBM Metrics Operator automatically creates 3 x 1Gi PersistentVolumeClaims to store reports as part of the data service, with _ReadWriteOnce_ access mode. Te PersistentVolumeClaims are automatically created by the ibm-metrics-operator after creating a `redhat-marketplace-pull-secret` and accepting the license in `marketplaceconfig`.\n\n| NAME | CAPACITY | ACCESS MODES |\n| ----------------------------------- | -------- | ------------ |\n| rhm-data-service-rhm-data-service-0 | 1Gi | RWO |\n| rhm-data-service-rhm-data-service-1 | 1Gi | RWO |\n| rhm-data-service-rhm-data-service-2 | 1Gi | RWO |\n\n### Supported Storage Providers\n\n- OpenShift Container Storage / OpenShift Data Foundation version 4.x, from version 4.2 or higher\n- IBM Cloud Block storage and IBM Cloud File storage\n- IBM Storage Suite for IBM Cloud Paks:\n - File storage from IBM Spectrum Fusion/Scale \n - Block storage from IBM Spectrum Virtualize, FlashSystem or DS8K\n- Portworx Storage, version 2.5.5 or above\n- Amazon Elastic File Storage\n\n### Access Modes required\n\n - ReadWriteOnce (RWO)\n\n### Provisioning Options supported\n\nChoose one of the following options to provision storage for the ibm-metrics-operator data-service\n\n#### Dynamic provisioning using a default StorageClass\n - A StorageClass is defined with a `metadata.annotations: storageclass.kubernetes.io/is-default-class: \"true\"`\n - PersistentVolumes will be provisioned automatically for the generated PersistentVolumeClaims\n--- \n#### Manually create each PersistentVolumeClaim with a specific StorageClass\n - Must be performed before creating a `redhat-marketplace-pull-secret` or accepting the license in `marketplaceconfig`. Otherwise, the automatically generated PersistentVolumeClaims are immutable.\n```\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n labels:\n app: rhm-data-service\n name: rhm-data-service-rhm-data-service-0\n namespace: ibm-software-central\nspec:\n storageClassName: rook-cephfs\n accessModes:\n - ReadWriteOnce\n resources:\n requests:\n storage: 1Gi\n```\n---\n#### Manually provision each PersistentVolume for the generated PersistentVolumeClaims with a specific StorageClass\n - May be performed before or after creating a `redhat-marketplace-pull-secret` or accepting the license in `marketplaceconfig`. \n```\napiVersion: v1\nkind: PersistentVolume\nmetadata:\n name: rhm-data-service-rhm-data-service-0\nspec:\n csi:\n driver: rook-ceph.cephfs.csi.ceph.com\n volumeHandle: rhm-data-service-rhm-data-service-0\n capacity:\n storage: 1Gi\n accessModes:\n - ReadWriteOnce\n persistentVolumeReclaimPolicy: Delete\n storageClassName: rook-cephfs\n volumeMode: Filesystem\n claimRef:\n kind: PersistentVolumeClaim\n namespace: ibm-software-central\n name: rhm-data-service-rhm-data-service-0\n```\n\n### Installation\n1. Create or get your [pull secret](https://swc.saas.ibm.com/en-us/documentation/clusters#get-pull-secret).\n2. Install the IBM Metrics Operator\n3. Create a Kubernetes secret in the installed namespace with the name `redhat-marketplace-pull-secret` and key `PULL_SECRET` with the value of the pull secret.\n ```sh\n # Replace ${PULL_SECRET} with your pull secret\n oc create secret generic redhat-marketplace-pull-secret -n ibm-software-central --from-literal=PULL_SECRET=${PULL_SECRET}\n ```\n4. Use of the platform is governed by the:\n\n [IBM Cloud Services Agreement](https://www.ibm.com/support/customer/csol/terms/?id=Z126-6304_WS&_ga=2.116312197.2046730452.1684328846-812467790.1684328846) (or other base agreement between you and IBM such as a [Passport Advantage Agreement](https://www.ibm.com/software/passportadvantage/pa_agreements.html?_ga=2.116312197.2046730452.1684328846-812467790.1684328846)) and the [Service Description for the Red Hat Marketplace](https://www.ibm.com/support/customer/csol/terms/?id=i126-8719&_ga=2.83289621.2046730452.1684328846-812467790.1684328846).\n \n5. Update MarketplaceConfig to accept the license.\n ```\n oc patch marketplaceconfig marketplaceconfig -n ibm-software-central --type='merge' -p '{\"spec\": {\"license\": {\"accept\": true}}}'\n ```\n6. Install the pull secret as a global pull secret on the cluster.\n\n These steps require `oc`, `jq`, and `base64` to be available on your machine.\n\n ```sh\n # Create the docker pull secret file using your pull secret.\n # Store it in a file called entitledregistryconfigjson.\n oc create secret docker-registry entitled-registry --docker-server=registry.marketplace.redhat.com --docker-username \"cp\" --docker-password \"${PULL_SECRET}\" --dry-run=client --output=\"jsonpath={.data.\\.dockerconfigjson}\" | base64 --decode > entitledregistryconfigjson\n # Get the current global secrets on the cluster and store it as a file named dockerconfigjson\n oc get secret pull-secret -n openshift-config --output=\"jsonpath={.data.\\.dockerconfigjson}\" | base64 --decode > dockerconfigjson\n # Merge the two dockerconfigs together into a file called dockerconfigjson-merged.\n jq -s '.[0] * .[1]' dockerconfigjson entitledregistryconfigjson > dockerconfigjson-merged\n # Set the cluster's dockerconfig file to the new merged version.\n oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=dockerconfigjson-merged\n ```\n 7. (Optional) Your IBM product may have installed IBM Metrics Operator using an `ibm-entitlement-key` for authentication to IBM Software Central. To authorize the automatic creation of an IBM Software Central account for the IBM account owning the `ibm-entitlement-key`\n ```\n oc patch marketplaceconfig marketplaceconfig -n ibm-software-central --type='merge' -p '{\"spec\": {\"authorizeAccountCreation\": true}}'\n ```\n\n### Why is a global pull secret required?\nIn order to successfully install the products hosted by the container image registry, you will need to make the pull secret available across the cluster. This can be achieved by applying the pull as a [global pull secret](https://docs.openshift.com/container-platform/latest/openshift_images/managing_images/using-image-pull-secrets.html#images-update-global-pull-secret_using-image-pull-secrets). For alternative approaches, please see the official OpenShift [documentation](https://docs.openshift.com/container-platform/latest/openshift_images/managing_images/using-image-pull-secrets.html).\n\n\n### SecurityContextConstraints requirements\n\nThe Operators and their components support running under the OpenShift Container Platform default restricted and restricted-v2 security context constraints.\n\n### Installation Namespace and ClusterRoleBinding requirements\n\nThe IBM Metrics Operator components require specific ClusterRoleBindings.\n- The metric-state component requires a ClusterRoleBinding for the the `view` ClusterRole.\n - Ability to read non-sensitive CustomResources. \n - The `view` ClusterRole dynamically adds new CustomResourceDefinitions.\n- The operator & reporter component requires a ClusterRoleBinding for the the `cluster-monitoring-view` ClusterRole.\n - Ability to view Prometheus metrics. \n - The underlying ClusterRole RBAC often updated between OpenShift versions.\n\nDue to limitations of Operator Lifecycle Manager (OLM), this ClusterRoleBinding can not be provided dynamically for arbitrary installation target namespaces.\n\nA static ClusterRoleBinding is included for installation to the default namespace of `ibm-software-central`, and namespaces `openshift-redhat-marketplace`, `redhat-marketplace`, `ibm-common-services`.\n\nTo create the ClusterRoleBindings for installation to an alternate namespace\n```\noc project INSTALL-NAMESPACE\noc adm policy add-cluster-role-to-user view -z ibm-metrics-operator-metric-state\noc adm policy add-cluster-role-to-user cluster-monitoring-view -z ibm-metrics-operator-controller-manager,ibm-metrics-operator-reporter\n```\n\n### Metric State scoping requirements\nThe metric-state Deployment obtains `get/list/watch` access to metered resources via the `view` ClusterRole. For operators deployed using Operator Lifecycle Manager (OLM), permissions are added to `clusterrole/view` dynamically via a generated and annotated `-view` ClusterRole. If you wish to meter an operator, and its Custom Resource Definitions (CRDs) are not deployed through OLM, one of two options are required\n1. Add the following label to a clusterrole that has get/list/watch access to your CRD: `rbac.authorization.k8s.io/aggregate-to-view: \"true\"`, thereby dynamically adding it to `clusterrole/view`\n2. Create a ClusterRole that has get/list/watch access to your CRD, and create a ClusterRoleBinding for the metric-state ServiceAccount\n\nAttempting to meter a resource with a MeterDefinition without the required permissions will log an `AccessDeniedError` in metric-state.\n\n### Disaster Recovery\n\nTo plan for disaster recovery, note the PhysicalVolumeClaims `rhm-data-service-rhm-data-service-N`. \n- In connected environments, MeterReport data upload attempts occur hourly, and are then removed from data-service. There is a low risk of losing much unreported data.\n- In an airgap environment, MeterReport data must be pulled from data-service and uploaded manually using [datactl](https://github.com/redhat-marketplace/datactl/). To prevent data loss in a disaster scenario, the data-service volumes should be considered in a recovery plan.\n\n### Subscription Config\n\nIt is possible to [configure](https://github.com/operator-framework/operator-lifecycle-manager/blob/master/doc/design/subscription-config.md) how OLM deploys an Operator via the `config` field in the [Subscription](https://github.com/operator-framework/olm-book/blob/master/docs/subscriptions.md) object.\n\nThe IBM Metrics Operator will also read the `config` and append it to the operands. The primary use case is to control scheduling using [Tolerations](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/) and [NodeSelectors](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).\n\nA limitation is that the `config` elements are only appended to the operands. The elements in the operands are not removed if the `config` is removed from the `Subscripion`. The operand must be modified manually, or deleted and recreated by the controller.\n\n### Cluster permission requirements\n\n|API group |Resources |Verbs |\n|----------------------|-----------------------|------------------------------------------|\n|apps |statefulsets |get;list;watch |\n|authentication.k8s.io |tokenreviews |create |\n|authorization.k8s.io |subjectaccessreviews |create |\n|config.openshift.io |clusterversions |get;list;watch |\n|marketplace.redhat.com|meterdefinitions |get;list;watch;create;update;patch;delete |\n|operators.coreos.com |clusterserviceversions |get;list;watch |\n|operators.coreos.com |subscriptions |get;list;watch |\n|operators.coreos.com |operatorgroups |get;list |\n|storage.k8s.io |storageclasses |get;list;watch |\n| |namespaces |get;list;watch |\n| |configmaps |get;list;watch |\n| |services |get;list;watch |\n| |**clusterrole/view** | |\n\n\n### Documentation\nYou can find our documentation [here.](https://swc.saas.ibm.com/en-us/documentation/)\n\n### Getting help\nIf you encounter any issues while using the operators, you can create an issue on our [Github\nrepo](https://github.com/redhat-marketplace/redhat-marketplace-operator) for bugs, enhancements, or other requests. You can also visit our main page and\nreview our [support](https://swc.saas.ibm.com/en-us/support) and [documentation](https://swc.saas.ibm.com/en-us/documentation/).\n\n### Readme\nYou can find our readme [here.](https://github.com/redhat-marketplace/redhat-marketplace-operator/blob/develop/README.md)\n\n### License information\nYou can find our license information [here.](https://github.com/redhat-marketplace/redhat-marketplace-operator/blob/develop/LICENSE)\n" + displayName: IBM Metrics Operator + icon: + - base64data: PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MS44IiBoZWlnaHQ9IjE5LjMzIiB2aWV3Qm94PSIwIDAgNTEuOCAxOS4zMyI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiM0MjZhYjM7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTM4Ljc2LDkuMiwzOC4zLDcuODZIMzAuNjFWOS4yWm0uOSwyLjU3LS40Ny0xLjM1SDMwLjYxdjEuMzVabTUuNzEsMTUuMzdoNi43MVYyNS44SDQ1LjM3djEuMzRabTAtMi41Nmg2LjcxVjIzLjIzSDQ1LjM3djEuMzVabTAtMi41N2g0VjIwLjY3aC00VjIyWm00LTMuOWgtNHYxLjM0aDRWMTguMTFabS00LTEuMjJoNFYxNS41NUg0MS43M2wtLjM4LDEuMDhMNDEsMTUuNTVIMzMuM3YxLjM0aDRWMTUuNjZsLjQ0LDEuMjNoNy4xOGwuNDMtMS4yM3YxLjIzWm00LTMuOUg0Mi42MmwtLjQ3LDEuMzRINDkuNFYxM1pNMzMuMywxOS40NWg0VjE4LjExaC00djEuMzRabTAsMi41Nmg0VjIwLjY3aC00VjIyWm0tMi42OSwyLjU3aDYuNzFWMjMuMjNIMzAuNjF2MS4zNVptMCwyLjU2aDYuNzFWMjUuOEgzMC42MXYxLjM0Wk00NC40LDcuODYsNDMuOTMsOS4yaDguMTVWNy44NlpNNDMsMTEuNzdoOVYxMC40Mkg0My41MUw0MywxMS43N1pNMzMuMywxNC4zM2g3LjI1TDQwLjA4LDEzSDMzLjN2MS4zNFptNS4zNSw1LjEySDQ0bC40Ny0xLjM0SDM4LjE4bC40NywxLjM0Wm0uOSwyLjU2aDMuNTlsLjQ3LTEuMzRIMzkuMDhMMzkuNTUsMjJabS45LDIuNTdoMS43OWwuNDctMS4zNUg0MGwuNDcsMS4zNVptLjksMi41Ni40Ni0xLjM0aC0uOTNsLjQ3LDEuMzRabS0yNi44NCwwaDkuODhhNS4xMSw1LjExLDAsMCwwLDMuNDYtMS4zNEgxNC41MXYxLjM0Wk0yNSwyMC42N1YyMmg0LjUxYTUuNDEsNS40MSwwLDAsMC0uMTctMS4zNFpNMTcuMTksMjJoNFYyMC42N2gtNFYyMlpNMjUsMTQuMzNoNC4zNEE1LjQxLDUuNDEsMCwwLDAsMjkuNTEsMTNIMjV2MS4zNFptLTcuODEsMGg0VjEzaC00djEuMzRabTcuMi02LjQ3SDE0LjUxVjkuMkgyNy44NWE1LjEzLDUuMTMsMCwwLDAtMy40Ni0xLjM0Wm00LjQ0LDIuNTZIMTQuNTF2MS4zNUgyOS4zN2E1LjMsNS4zLDAsMCwwLS41NC0xLjM1Wk0xNy4xOSwxNS41NXYxLjM0SDI3LjcxYTUuMzYsNS4zNiwwLDAsMCwxLjEyLTEuMzRabTEwLjUyLDIuNTZIMTcuMTl2MS4zNEgyOC44M2E1LjM2LDUuMzYsMCwwLDAtMS4xMi0xLjM0Wm0tMTMuMiw2LjQ3SDI4LjgzYTUuMyw1LjMsMCwwLDAsLjU0LTEuMzVIMTQuNTF2MS4zNVpNMy43Nyw5LjJoOS40VjcuODZIMy43N1Y5LjJabTAsMi41N2g5LjRWMTAuNDJIMy43N3YxLjM1Wk0xMC40OCwxM2gtNHYxLjM0aDRWMTNabS00LDMuOWg0VjE1LjU1aC00djEuMzRabTAsMi41Nmg0VjE4LjExaC00djEuMzRabTAsMi41Nmg0VjIwLjY3aC00VjIyWk0zLjc3LDI0LjU4aDkuNFYyMy4yM0gzLjc3djEuMzVabTAsMS4yMmg5LjR2MS4zNEgzLjc3VjI1LjhabTUwLjgyLjMyYy4wOSwwLC4xMywwLC4xMy0uMTJ2LS4wN2MwLS4wOCwwLS4xMi0uMTMtLjEySDU0LjR2LjMxWm0tLjE5LjU2aC0uMjZWMjUuNjFoLjQ5QS4zMi4zMiwwLDAsMSw1NSwyNmEuMzIuMzIsMCwwLDEtLjIuMzJsLjI1LjQxaC0uMjlsLS4yLS4zN0g1NC40di4zN1ptLjk0LS40OHYtLjEzYS43OS43OSwwLDAsMC0xLjU3LDB2LjEzYS43OS43OSwwLDAsMCwxLjU3LDBabS0xLjgxLS4wNmExLDEsMCwxLDEsMSwxLjA1LDEsMSwwLDAsMS0xLTEuMDVaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMy43NyAtNy44NikiLz48L3N2Zz4= + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - nonResourceURLs: + - /api/v1/query + - /api/v1/query_range + - /api/v1/targets + verbs: + - create + - get + - nonResourceURLs: + - /metrics + verbs: + - get + - apiGroups: + - "" + resources: + - configmaps + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - nodes/metrics + verbs: + - get + - apiGroups: + - "" + resources: + - services + verbs: + - get + - list + - watch + - apiGroups: + - apps + resources: + - statefulsets + verbs: + - get + - list + - watch + - apiGroups: + - config.openshift.io + resources: + - clusterversions + verbs: + - get + - list + - watch + - apiGroups: + - marketplace.redhat.com + resources: + - meterdefinitions + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - marketplace.redhat.com + resources: + - meterdefinitions + - meterdefinitions/status + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - marketplace.redhat.com + resources: + - meterdefinitions/status + verbs: + - get + - list + - patch + - update + - apiGroups: + - operators.coreos.com + resources: + - catalogsources + verbs: + - create + - get + - list + - watch + - apiGroups: + - operators.coreos.com + resourceNames: + - ibm-operator-catalog + - opencloud-operators + resources: + - catalogsources + verbs: + - delete + - apiGroups: + - operators.coreos.com + resources: + - clusterserviceversions + verbs: + - get + - list + - watch + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - get + - list + - watch + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + serviceAccountName: ibm-metrics-operator-controller-manager + - rules: + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + serviceAccountName: ibm-metrics-operator-data-service + - rules: + - apiGroups: + - marketplace.redhat.com + resources: + - meterreports + verbs: + - get + - list + - watch + - update + - apiGroups: + - marketplace.redhat.com + resources: + - meterdefinitions + - meterdefinitions/status + verbs: + - get + - list + - watch + - update + - apiGroups: + - operators.coreos.com + resources: + - operatorgroups + verbs: + - get + - list + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - get + - list + - watch + - update + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + serviceAccountName: ibm-metrics-operator-metric-state + - rules: + - apiGroups: + - "" + resources: + - services + verbs: + - get + - watch + - list + - nonResourceURLs: + - /api/v1/query + - /api/v1/query_range + - /api/v1/targets + verbs: + - create + - get + - nonResourceURLs: + - /dataservice.v1.fileserver.FileServer/* + verbs: + - create + serviceAccountName: ibm-metrics-operator-reporter + - rules: + - nonResourceURLs: + - /metrics + verbs: + - get + serviceAccountName: ibm-metrics-operator-servicemonitor-metrics-reader + - rules: + - apiGroups: + - "" + resources: + - configmaps + - namespaces + - nodes + - pods + verbs: + - get + - list + - watch + - apiGroups: + - apps + resources: + - deployments + - replicasets + verbs: + - get + - list + - watch + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - list + - watch + - apiGroups: + - operators.coreos.com + resources: + - clusterserviceversions + - subscriptions + verbs: + - get + - list + - watch + - apiGroups: + - config.openshift.io + resources: + - clusterversions + - infrastructures + - consoles + verbs: + - get + - list + - watch + - apiGroups: + - marketplace.redhat.com + resources: + - marketplaceconfigs + verbs: + - get + - list + - watch + - nonResourceURLs: + - '*' + verbs: + - get + - list + - watch + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + serviceAccountName: ibm-metrics-operator-watch-keeper + deployments: + - label: + redhat.marketplace.com/name: ibm-metrics-operator + name: ibm-metrics-operator-controller-manager + spec: + replicas: 1 + selector: + matchLabels: + redhat.marketplace.com/name: ibm-metrics-operator + strategy: {} + template: + metadata: + annotations: + authcheckImage: quay.io/rh-marketplace/redhat-marketplace-authcheck@sha256:48004d451348abb4f6dd7758fd10d1427e5632014f313d43334a807acae7b0b7 + dqLiteImage: quay.io/rh-marketplace/redhat-marketplace-data-service@sha256:55516a0643732212e9d2499bd9cc8900a16ab9fb4a3b401a0c95ce741209657f + metricStateImage: quay.io/rh-marketplace/redhat-marketplace-metric-state@sha256:69ea6b34f7047fd1ef98a704294ccca7e6a3c9aeb13ed30ce20302dbac9eaf36 + operatorImage: quay.io/rh-marketplace/ibm-metrics-operator@sha256:fd9fede0e93c634d16106f56750d90e3971aa9f6242f729711bb72893bf89fcf + productID: 36cdaba810c348c096b85800dd62bcf1 + productMetric: FREE + productName: Red Hat Marketplace Operator + rbacProxyImage: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:3fcd8e2bf0bcb8ff8c93a87af2c59a3bcae7be8792f9d3236c9b5bbd9b6db3b2 + reporterImage: quay.io/rh-marketplace/redhat-marketplace-reporter@sha256:e383aaac89104bea1e50d30edc745b244ecd5d75f5ea77c47e3c37e94e292692 + labels: + app.kubernetes.io/instance: controller-manager + app.kubernetes.io/managed-by: operator + app.kubernetes.io/name: controller-manager + app.kubernetes.io/part-of: ibm-metrics-operator + control-plane: controller-manager + redhat.marketplace.com/name: ibm-metrics-operator + spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/arch + operator: In + values: + - amd64 + - ppc64le + - s390x + - key: kubernetes.io/os + operator: In + values: + - linux + containers: + - args: + - --health-probe-bind-address=:8081 + - --metrics-addr=:8443 + - --enable-leader-election + env: + - name: OPERATOR_NAME + value: redhat-marketplace-operator + - name: RELATED_IMAGE_AUTHCHECK + value: quay.io/rh-marketplace/redhat-marketplace-authcheck@sha256:48004d451348abb4f6dd7758fd10d1427e5632014f313d43334a807acae7b0b7 + - name: RELATED_IMAGE_DQLITE + value: quay.io/rh-marketplace/redhat-marketplace-data-service@sha256:55516a0643732212e9d2499bd9cc8900a16ab9fb4a3b401a0c95ce741209657f + - name: RELATED_IMAGE_KUBE_RBAC_PROXY + value: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:3fcd8e2bf0bcb8ff8c93a87af2c59a3bcae7be8792f9d3236c9b5bbd9b6db3b2 + - name: RELATED_IMAGE_METRIC_STATE + value: quay.io/rh-marketplace/redhat-marketplace-metric-state@sha256:69ea6b34f7047fd1ef98a704294ccca7e6a3c9aeb13ed30ce20302dbac9eaf36 + - name: RELATED_IMAGE_REPORTER + value: quay.io/rh-marketplace/redhat-marketplace-reporter@sha256:e383aaac89104bea1e50d30edc745b244ecd5d75f5ea77c47e3c37e94e292692 + - name: IBMCATALOGSOURCE + value: "true" + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OLM_OWNER_NAME + valueFrom: + fieldRef: + fieldPath: metadata.labels['olm.owner'] + - name: OLM_OWNER_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.labels['olm.owner.namespace'] + - name: OLM_OWNER_KIND + valueFrom: + fieldRef: + fieldPath: metadata.labels['olm.owner.kind'] + - name: OPERATOR_GROUP + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.operatorGroup'] + - name: GOMEMLIMIT + valueFrom: + resourceFieldRef: + containerName: manager + divisor: "0" + resource: limits.memory + image: quay.io/rh-marketplace/ibm-metrics-operator@sha256:fd9fede0e93c634d16106f56750d90e3971aa9f6242f729711bb72893bf89fcf + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: manager + ports: + - containerPort: 8443 + name: https + protocol: TCP + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + limits: + cpu: 400m + memory: 700Mi + requests: + cpu: 100m + memory: 225Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + volumeMounts: + - mountPath: /etc/tls/private + name: ibm-metrics-operator-controller-manager-metrics-service-tls + securityContext: + runAsNonRoot: true + serviceAccountName: ibm-metrics-operator-controller-manager + terminationGracePeriodSeconds: 10 + volumes: + - name: ibm-metrics-operator-controller-manager-metrics-service-tls + secret: + secretName: ibm-metrics-operator-controller-manager-metrics-service-tls + 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 + - apiGroups: + - "" + resources: + - configmaps + verbs: + - create + - get + - list + - watch + - apiGroups: + - "" + resourceNames: + - kubelet-serving-ca-bundle + - ibm-metrics-operator-serving-certs-ca-bundle + resources: + - configmaps + verbs: + - delete + - patch + - update + - apiGroups: + - "" + resourceNames: + - razee-cluster-metadata + - watch-keeper-config + - watch-keeper-limit-poll + - watch-keeper-non-namespaced + resources: + - configmaps + verbs: + - delete + - patch + - update + - apiGroups: + - "" + resources: + - configmaps + - secrets + - services + verbs: + - create + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - pods + verbs: + - delete + - get + - list + - watch + - apiGroups: + - "" + resources: + - secrets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resourceNames: + - clustersubscription + - rhm-cos-reader-key + - rhm-operator-secret + - watch-keeper-secret + resources: + - secrets + verbs: + - delete + - patch + - update + - apiGroups: + - "" + resourceNames: + - rhm-data-service-mtls + resources: + - secrets + verbs: + - delete + - patch + - update + - apiGroups: + - "" + resourceNames: + - ibm-entitlement-key + - redhat-marketplace-pull-secret + - rhm-operator-secret + resources: + - secrets + - secrets/finalizers + verbs: + - patch + - update + - apiGroups: + - "" + resources: + - serviceaccounts/token + verbs: + - create + - get + - list + - update + - apiGroups: + - "" + resources: + - services + verbs: + - create + - get + - list + - watch + - apiGroups: + - "" + resourceNames: + - kube-state-metrics + - rhm-metric-state-service + resources: + - services + verbs: + - delete + - patch + - update + - apiGroups: + - "" + resourceNames: + - rhm-data-service + resources: + - services + verbs: + - delete + - patch + - update + - apiGroups: + - apps + resources: + - deployments + verbs: + - create + - get + - list + - watch + - apiGroups: + - apps + resourceNames: + - rhm-metric-state + resources: + - deployments + verbs: + - delete + - patch + - update + - apiGroups: + - apps + resources: + - deployments + - deployments/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resourceNames: + - ibm-metrics-operator-controller-manager + resources: + - deployments/finalizers + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resourceNames: + - redhat-marketplace-controller-manager + resources: + - deployments/finalizers + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - replicasets + verbs: + - get + - list + - watch + - apiGroups: + - apps + resources: + - statefulsets + verbs: + - create + - get + - list + - watch + - apiGroups: + - apps + resourceNames: + - rhm-data-service + resources: + - statefulsets + verbs: + - delete + - patch + - update + - apiGroups: + - batch + - extensions + resources: + - cronjobs + verbs: + - create + - get + - list + - watch + - apiGroups: + - batch + - extensions + resourceNames: + - rhm-meter-report-upload + resources: + - cronjobs + verbs: + - delete + - patch + - update + - apiGroups: + - batch + - extensions + resources: + - jobs + verbs: + - delete + - get + - list + - watch + - apiGroups: + - deploy.razee.io + resources: + - remoteresources + verbs: + - create + - get + - list + - watch + - apiGroups: + - deploy.razee.io + resourceNames: + - child + - parent + resources: + - remoteresources + verbs: + - delete + - patch + - update + - apiGroups: + - marketplace.redhat.com + resources: + - events + verbs: + - create + - patch + - apiGroups: + - marketplace.redhat.com + resources: + - marketplaceconfigs + - marketplaceconfigs/finalizers + - marketplaceconfigs/status + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - marketplace.redhat.com + resources: + - meterbases + verbs: + - create + - get + - list + - watch + - apiGroups: + - marketplace.redhat.com + resourceNames: + - rhm-marketplaceconfig-meterbase + resources: + - meterbases + verbs: + - delete + - patch + - update + - apiGroups: + - marketplace.redhat.com + resources: + - meterbases + - meterbases/finalizers + - meterbases/status + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - marketplace.redhat.com + resources: + - meterreports + verbs: + - create + - delete + - get + - list + - watch + - apiGroups: + - marketplace.redhat.com + resources: + - meterreports + - meterreports/finalizers + - meterreports/status + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - marketplace.redhat.com + resources: + - razeedeployments + verbs: + - create + - get + - list + - watch + - apiGroups: + - marketplace.redhat.com + resourceNames: + - rhm-marketplaceconfig-razeedeployment + resources: + - razeedeployments + verbs: + - delete + - patch + - update + - apiGroups: + - marketplace.redhat.com + resources: + - razeedeployments + - razeedeployments/finalizers + - razeedeployments/status + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - monitoring.coreos.com + resourceNames: + - rhm-marketplaceconfig-meterbase + resources: + - prometheuses + verbs: + - delete + - patch + - update + - apiGroups: + - monitoring.coreos.com + resources: + - prometheuses + - servicemonitors + verbs: + - create + - get + - list + - watch + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - create + - get + - list + - patch + - update + - watch + - apiGroups: + - monitoring.coreos.com + resourceNames: + - kube-state-metrics + - prometheus-user-workload + - redhat-marketplace-kube-state-metrics + - redhat-marketplace-kubelet + - rhm-metric-state + resources: + - servicemonitors + verbs: + - delete + - patch + - update + - apiGroups: + - operators.coreos.com + resources: + - clusterserviceversions + verbs: + - get + - list + - watch + - apiGroups: + - operators.coreos.com + resources: + - subscriptions + verbs: + - get + - list + - watch + - apiGroups: + - route.openshift.io + resources: + - routes + verbs: + - create + - get + - list + - watch + - apiGroups: + - route.openshift.io + resourceNames: + - rhm-data-service + resources: + - routes + verbs: + - delete + - patch + - update + serviceAccountName: ibm-metrics-operator-controller-manager + - rules: + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - watch + - list + - apiGroups: + - "" + resources: + - events + verbs: + - get + - watch + - list + - create + - update + - patch + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - watch + - list + - apiGroups: + - marketplace.redhat.com + resources: + - meterreports + - marketplaceconfigs + verbs: + - get + - list + - watch + - apiGroups: + - marketplace.redhat.com + resources: + - meterreports + - meterreports/status + verbs: + - update + - patch + serviceAccountName: ibm-metrics-operator-reporter + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - red hat marketplace + - operators + - buy + links: + - name: Visit the marketplace! + url: https://marketplace.redhat.com + - name: About + url: https://marketplace.redhat.com/en-us/about + - name: Support + url: https://marketplace.redhat.com/en-us/support + maintainers: + - email: rhmoper@us.ibm.com + name: RHM Operator Team + maturity: stable + provider: + name: Red Hat Marketplace + relatedImages: + - image: quay.io/rh-marketplace/redhat-marketplace-authcheck@sha256:48004d451348abb4f6dd7758fd10d1427e5632014f313d43334a807acae7b0b7 + name: authcheck + - image: quay.io/rh-marketplace/redhat-marketplace-data-service@sha256:55516a0643732212e9d2499bd9cc8900a16ab9fb4a3b401a0c95ce741209657f + name: redhat-marketplace-data-service-55516a0643732212e9d2499bd9cc8900a16ab9fb4a3b401a0c95ce741209657f-annotation + - image: quay.io/rh-marketplace/redhat-marketplace-metric-state@sha256:69ea6b34f7047fd1ef98a704294ccca7e6a3c9aeb13ed30ce20302dbac9eaf36 + name: redhat-marketplace-metric-state-69ea6b34f7047fd1ef98a704294ccca7e6a3c9aeb13ed30ce20302dbac9eaf36-annotation + - image: quay.io/rh-marketplace/redhat-marketplace-authcheck@sha256:48004d451348abb4f6dd7758fd10d1427e5632014f313d43334a807acae7b0b7 + name: redhat-marketplace-authcheck-48004d451348abb4f6dd7758fd10d1427e5632014f313d43334a807acae7b0b7-annotation + - image: quay.io/rh-marketplace/redhat-marketplace-data-service@sha256:55516a0643732212e9d2499bd9cc8900a16ab9fb4a3b401a0c95ce741209657f + name: dqlite + - image: quay.io/rh-marketplace/redhat-marketplace-metric-state@sha256:69ea6b34f7047fd1ef98a704294ccca7e6a3c9aeb13ed30ce20302dbac9eaf36 + name: metric-state + - image: quay.io/rh-marketplace/redhat-marketplace-reporter@sha256:e383aaac89104bea1e50d30edc745b244ecd5d75f5ea77c47e3c37e94e292692 + name: reporter + - image: quay.io/rh-marketplace/ibm-metrics-operator@sha256:fd9fede0e93c634d16106f56750d90e3971aa9f6242f729711bb72893bf89fcf + name: manager + - image: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:3fcd8e2bf0bcb8ff8c93a87af2c59a3bcae7be8792f9d3236c9b5bbd9b6db3b2 + name: kube-rbac-proxy + - image: quay.io/rh-marketplace/redhat-marketplace-metric-state@sha256:69ea6b34f7047fd1ef98a704294ccca7e6a3c9aeb13ed30ce20302dbac9eaf36 + name: metric_state + - image: quay.io/rh-marketplace/ibm-metrics-operator@sha256:fd9fede0e93c634d16106f56750d90e3971aa9f6242f729711bb72893bf89fcf + name: ibm-metrics-operator-fd9fede0e93c634d16106f56750d90e3971aa9f6242f729711bb72893bf89fcf-annotation + - image: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:3fcd8e2bf0bcb8ff8c93a87af2c59a3bcae7be8792f9d3236c9b5bbd9b6db3b2 + name: kube_rbac_proxy + - image: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:3fcd8e2bf0bcb8ff8c93a87af2c59a3bcae7be8792f9d3236c9b5bbd9b6db3b2 + name: ose-kube-rbac-proxy-rhel9-3fcd8e2bf0bcb8ff8c93a87af2c59a3bcae7be8792f9d3236c9b5bbd9b6db3b2-annotation + - image: quay.io/rh-marketplace/redhat-marketplace-reporter@sha256:e383aaac89104bea1e50d30edc745b244ecd5d75f5ea77c47e3c37e94e292692 + name: redhat-marketplace-reporter-e383aaac89104bea1e50d30edc745b244ecd5d75f5ea77c47e3c37e94e292692-annotation + version: 2.18.0 diff --git a/operators/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_marketplaceconfigs.yaml b/operators/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_marketplaceconfigs.yaml new file mode 100644 index 00000000000..11805f23bbc --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_marketplaceconfigs.yaml @@ -0,0 +1,313 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null + labels: + redhat.marketplace.com/name: ibm-metrics-operator + name: marketplaceconfigs.marketplace.redhat.com +spec: + group: marketplace.redhat.com + names: + kind: MarketplaceConfig + listKind: MarketplaceConfigList + plural: marketplaceconfigs + singular: marketplaceconfig + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type == "Installing")].status + name: INSTALLING + type: string + - jsonPath: .status.conditions[?(@.type == "Installing")].reason + name: STEP + type: string + - jsonPath: .status.conditions[?(@.type == "Registered")].status + name: REGISTERED + type: string + - jsonPath: .status.conditions[?(@.type == "Registered")].message + name: REGISTERED_MSG + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: |- + MarketplaceConfig is configuration manager for our Red Hat Marketplace controllers + By installing this product you accept the license terms https://ibm.biz/BdfaAY. + 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: MarketplaceConfigSpec defines the desired state of MarketplaceConfig + properties: + authorizeAccountCreation: + description: AuthorizeAccountCreation authorizes IBM Software Central + to automatically create an account when usage data is submitted + with an ibm-entitlement-key + type: boolean + clusterName: + description: |- + ClusterName is the name that will be assigned to your cluster in the Red Hat Marketplace UI. + If you have set the name in the UI first, this name will be ignored. + type: string + clusterUUID: + description: ClusterUUID is the Red Hat Marketplace cluster identifier + type: string + deploySecretName: + description: DeploySecretName is the secret name that contains the + deployment information + type: string + enableMetering: + description: EnableMetering enables the Marketplace Metering components + type: boolean + features: + description: The features that can be enabled or disabled + properties: + deployment: + description: Deployment represents the enablement of the razee + deployment, defaults to true when not set + type: boolean + meterDefinitionCatalogServer: + description: '[DEPRECATED] EnableMeterDefinitionCatalogServer + represents the enablement of the meterdefinition catalog server, + defaults to true when not set' + type: boolean + registration: + description: Registration represents the enablement of the registration + watchkeeper deployment, defaults to true when not set + type: boolean + type: object + installIBMCatalogSource: + description: InstallIBMCatalogSource is the flag that indicates if + the IBM Catalog Source is installed + type: boolean + isDisconnected: + description: IsDisconnected represents the installation of operator + in disconnected mode + type: boolean + license: + description: License information is required + properties: + accept: + description: By installing this product you accept the license + terms https://ibm.biz/BdfaAY + type: boolean + type: object + namespaceLabelSelector: + description: NamespaceLabelSelector is a LabelSelector that overrides + the default LabelSelector used to build the OperatorGroup Namespace + list + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + rhmAccountID: + description: RhmAccountID is the Red Hat Marketplace Account identifier + type: string + type: object + status: + description: MarketplaceConfigStatus defines the observed state of MarketplaceConfig + properties: + conditions: + description: Conditions represent the latest available observations + of an object's stateonfig + items: + description: |- + Condition represents an observation of an object's state. Conditions are an + extension mechanism intended to be used when the details of an observation + are not a priori known or would not apply to all instances of a given Kind. + + + Conditions should be added to explicitly convey properties that users and + components care about rather than requiring those properties to be inferred + from other observations. Once defined, the meaning of a Condition can not be + changed arbitrarily - it becomes part of the API, and has the same + backwards- and forwards-compatibility concerns of any other part of the API. + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + description: |- + ConditionReason is intended to be a one-word, CamelCase representation of + the category of cause of the current status. It is intended to be used in + concise output, such as one-line kubectl get output, and in summarizing + occurrences of causes. + type: string + status: + type: string + type: + description: |- + ConditionType is the type of the condition and is typically a CamelCased + word or short phrase. + + + Condition types should indicate state in the "abnormal-true" polarity. For + example, if the condition indicates when a policy is invalid, the "is valid" + case is probably the norm, so the condition should be called "Invalid". + type: string + required: + - status + - type + type: object + type: array + meterBaseSubConditions: + description: MeterBaseSubConditions represent the latest available + observations of the meterbase object's state + items: + description: |- + Condition represents an observation of an object's state. Conditions are an + extension mechanism intended to be used when the details of an observation + are not a priori known or would not apply to all instances of a given Kind. + + + Conditions should be added to explicitly convey properties that users and + components care about rather than requiring those properties to be inferred + from other observations. Once defined, the meaning of a Condition can not be + changed arbitrarily - it becomes part of the API, and has the same + backwards- and forwards-compatibility concerns of any other part of the API. + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + description: |- + ConditionReason is intended to be a one-word, CamelCase representation of + the category of cause of the current status. It is intended to be used in + concise output, such as one-line kubectl get output, and in summarizing + occurrences of causes. + type: string + status: + type: string + type: + description: |- + ConditionType is the type of the condition and is typically a CamelCased + word or short phrase. + + + Condition types should indicate state in the "abnormal-true" polarity. For + example, if the condition indicates when a policy is invalid, the "is valid" + case is probably the norm, so the condition should be called "Invalid". + type: string + required: + - status + - type + type: object + type: array + razeeSubConditions: + description: RazeeSubConditions represent the latest available observations + of the razee object's state + items: + description: |- + Condition represents an observation of an object's state. Conditions are an + extension mechanism intended to be used when the details of an observation + are not a priori known or would not apply to all instances of a given Kind. + + + Conditions should be added to explicitly convey properties that users and + components care about rather than requiring those properties to be inferred + from other observations. Once defined, the meaning of a Condition can not be + changed arbitrarily - it becomes part of the API, and has the same + backwards- and forwards-compatibility concerns of any other part of the API. + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + description: |- + ConditionReason is intended to be a one-word, CamelCase representation of + the category of cause of the current status. It is intended to be used in + concise output, such as one-line kubectl get output, and in summarizing + occurrences of causes. + type: string + status: + type: string + type: + description: |- + ConditionType is the type of the condition and is typically a CamelCased + word or short phrase. + + + Condition types should indicate state in the "abnormal-true" polarity. For + example, if the condition indicates when a policy is invalid, the "is valid" + case is probably the norm, so the condition should be called "Invalid". + type: string + required: + - 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/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_meterbases.yaml b/operators/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_meterbases.yaml new file mode 100644 index 00000000000..e621cb8b121 --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_meterbases.yaml @@ -0,0 +1,541 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null + labels: + redhat.marketplace.com/name: ibm-metrics-operator + name: meterbases.marketplace.redhat.com +spec: + group: marketplace.redhat.com + names: + kind: MeterBase + listKind: MeterBaseList + plural: meterbases + singular: meterbase + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type == "Installing")].status + name: INSTALLING + type: string + - jsonPath: .status.conditions[?(@.type == "Installing")].reason + name: STEP + type: string + - jsonPath: .status.availableReplicas + name: AvailableReplicas + type: integer + - jsonPath: .status.replicas + name: Replicas + type: integer + - jsonPath: .status.updatedReplicas + name: UpdatedReplicas + type: integer + - jsonPath: .status.unavailableReplicas + name: UnavailableReplicas + type: integer + name: v1alpha1 + schema: + openAPIV3Schema: + description: |- + MeterBase is the resource that sets up Metering for Red Hat Marketplace. + This is an internal resource not meant to be modified directly. + 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: MeterBaseSpec defines the desired state of MeterBase + properties: + additionalScrapeConfigs: + description: |- + AdditionalConfigs are set by meter definitions and meterbase to what is available on the + system. + properties: + key: + description: The key of the secret to select from. Must be a + valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + dataServiceEnabled: + description: |- + DataServiceEnabled is the flag that controls if the DataService will be created. + Setting enabled to "true" will install DataService components. + False will delete the DataServicecomponents. + type: boolean + enabled: + description: |- + Enabled is the flag that controls if the controller does work. Setting + enabled to "true" will install metering components. False will suspend controller + operations for metering components. + type: boolean + meterdefinitionCatalogServerConfig: + description: '[DEPRECATED] MeterdefinitionCatalogServerConfig holds + configuration for the Meterdefinition Catalog Server.' + properties: + deployMeterDefinitionCatalogServer: + description: |- + DeployMeterDefinitionCatalogServer controls whether the deploymentconfig controller will deploy the resources needed + to create the Meterdefinition Catalog Server. + Setting DeployMeterDefinitionCatalogServer to "true" wil install a DeploymentConfig, ImageStream, and Service. + type: boolean + syncCommunityMeterDefinitions: + description: SyncCommunityMeterDefinitions represents the enablement + of logic that will sync community meterdefinitions from the + meterdefinition catalog, defaults to true when not set + type: boolean + syncSystemMeterDefinitions: + description: SyncSystemMeterDefinitions represents the enablement + of logic that will sync system meterdefinitions from the meterdefinition + catalog, defaults to true when not set + type: boolean + type: object + prometheus: + description: Prometheus deployment configuration. + properties: + replicas: + description: Replicas defines the number of desired replicas for + the prometheus deployment. Used primarily when running metering + on CRC + format: int32 + type: integer + resources: + description: Resource requirements for the deployment. Default + is not defined. + properties: + claims: + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object + selector: + additionalProperties: + type: string + description: Selector for the pods in the Prometheus deployment + type: object + storage: + description: Storage for the deployment. + properties: + class: + description: Storage class for the prometheus stateful set. + Default is "" i.e. default. + type: string + emptyDir: + description: EmptyDir is a temporary storage type that gets + created on the prometheus pod. When this is defined metering + will run on CRC. + properties: + medium: + description: |- + medium represents what type of storage medium should back this directory. + The default is "" which means to use the node's default medium. + Must be an empty string (default) or Memory. + More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + description: |- + sizeLimit is the total amount of local storage required for this EmptyDir volume. + The size limit is also applicable for memory medium. + The maximum usage on memory medium EmptyDir would be the minimum value between + the SizeLimit specified here and the sum of memory limits of all containers in a pod. + The default is nil which means that the limit is undefined. + More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + size: + anyOf: + - type: integer + - type: string + description: Storage size for the prometheus deployment. Default + is 40Gi. + format: quantity + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + type: string + x-kubernetes-int-or-string: true + type: object + required: + - storage + type: object + userWorkloadMonitoringEnabled: + description: |- + UserWorkloadMonitoringEnabled controls whether to attempt to use + Openshift user-defined workload monitoring as the Prometheus provider + type: boolean + required: + - enabled + type: object + status: + description: MeterBaseStatus defines the observed state of MeterBase. + properties: + availableReplicas: + description: |- + Total number of available pods (ready for at least minReadySeconds) + targeted by this Prometheus deployment. + format: int32 + type: integer + conditions: + description: MeterBaseConditions represent the latest available observations + of an object's stateonfig + items: + description: |- + Condition represents an observation of an object's state. Conditions are an + extension mechanism intended to be used when the details of an observation + are not a priori known or would not apply to all instances of a given Kind. + + + Conditions should be added to explicitly convey properties that users and + components care about rather than requiring those properties to be inferred + from other observations. Once defined, the meaning of a Condition can not be + changed arbitrarily - it becomes part of the API, and has the same + backwards- and forwards-compatibility concerns of any other part of the API. + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + description: |- + ConditionReason is intended to be a one-word, CamelCase representation of + the category of cause of the current status. It is intended to be used in + concise output, such as one-line kubectl get output, and in summarizing + occurrences of causes. + type: string + status: + type: string + type: + description: |- + ConditionType is the type of the condition and is typically a CamelCased + word or short phrase. + + + Condition types should indicate state in the "abnormal-true" polarity. For + example, if the condition indicates when a policy is invalid, the "is valid" + case is probably the norm, so the condition should be called "Invalid". + type: string + required: + - status + - type + type: object + type: array + meterdefinitionCatalogServerStatus: + description: |- + [DEPRECATED] MeterdefinitionCatalogServerStatus is the most recent observed status of the Meterdefinition Catalog Server. Read-only. Not + included when requesting from the apiserver, only from the Prometheus + properties: + conditions: + description: MeterdefinitionCatalogServerConditions represent + the latest available observations of an object's stateonfig + items: + description: |- + Condition represents an observation of an object's state. Conditions are an + extension mechanism intended to be used when the details of an observation + are not a priori known or would not apply to all instances of a given Kind. + + + Conditions should be added to explicitly convey properties that users and + components care about rather than requiring those properties to be inferred + from other observations. Once defined, the meaning of a Condition can not be + changed arbitrarily - it becomes part of the API, and has the same + backwards- and forwards-compatibility concerns of any other part of the API. + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + description: |- + ConditionReason is intended to be a one-word, CamelCase representation of + the category of cause of the current status. It is intended to be used in + concise output, such as one-line kubectl get output, and in summarizing + occurrences of causes. + type: string + status: + type: string + type: + description: |- + ConditionType is the type of the condition and is typically a CamelCased + word or short phrase. + + + Condition types should indicate state in the "abnormal-true" polarity. For + example, if the condition indicates when a policy is invalid, the "is valid" + case is probably the norm, so the condition should be called "Invalid". + type: string + required: + - status + - type + type: object + type: array + type: object + prometheusStatus: + description: |- + PrometheusStatus is the most recent observed status of the Prometheus cluster. Read-only. Not + included when requesting from the apiserver, only from the Prometheus + properties: + availableReplicas: + description: |- + Total number of available pods (ready for at least minReadySeconds) + targeted by this Prometheus deployment. + format: int32 + type: integer + conditions: + description: The current state of the Prometheus deployment. + items: + description: |- + Condition represents the state of the resources associated with the + Prometheus, Alertmanager or ThanosRuler resource. + properties: + lastTransitionTime: + description: lastTransitionTime is the time of the last + update to the current status property. + format: date-time + type: string + message: + description: Human-readable message indicating details for + the condition's last transition. + 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[].observedGeneration` is 9, the + condition is out of date with respect to the current state of the + instance. + format: int64 + type: integer + reason: + description: Reason for the condition's last transition. + type: string + status: + description: Status of the condition. + type: string + type: + description: Type of the condition being reported. + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + paused: + description: |- + Represents whether any actions on the underlying managed objects are + being performed. Only delete actions will be performed. + type: boolean + replicas: + description: |- + Total number of non-terminated pods targeted by this Prometheus deployment + (their labels match the selector). + format: int32 + type: integer + shardStatuses: + description: The list has one entry per shard. Each entry provides + a summary of the shard status. + items: + properties: + availableReplicas: + description: |- + Total number of available pods (ready for at least minReadySeconds) + targeted by this shard. + format: int32 + type: integer + replicas: + description: Total number of pods targeted by this shard. + format: int32 + type: integer + shardID: + description: Identifier of the shard. + type: string + unavailableReplicas: + description: Total number of unavailable pods targeted by + this shard. + format: int32 + type: integer + updatedReplicas: + description: |- + Total number of non-terminated pods targeted by this shard + that have the desired spec. + format: int32 + type: integer + required: + - availableReplicas + - replicas + - shardID + - unavailableReplicas + - updatedReplicas + type: object + type: array + x-kubernetes-list-map-keys: + - shardID + x-kubernetes-list-type: map + unavailableReplicas: + description: Total number of unavailable pods targeted by this + Prometheus deployment. + format: int32 + type: integer + updatedReplicas: + description: |- + Total number of non-terminated pods targeted by this Prometheus deployment + that have the desired version spec. + format: int32 + type: integer + required: + - availableReplicas + - paused + - replicas + - unavailableReplicas + - updatedReplicas + type: object + replicas: + description: |- + Total number of non-terminated pods targeted by this Prometheus deployment + (their labels match the selector). + format: int32 + type: integer + targets: + description: Targets is a list of prometheus activeTargets + items: + description: Target is used by meterbase as a list of prometheus + activeTargets with failed health, without DiscoveredLabels + properties: + health: + description: HealthStatus models the health status of a scrape + target. + type: string + labels: + additionalProperties: + description: A LabelValue is an associated value for a LabelName. + type: string + description: |- + A LabelSet is a collection of LabelName and LabelValue pairs. The LabelSet + may be fully-qualified down to the point where it may resolve to a single + Metric in the data store or not. All operations that occur within the realm + of a LabelSet can emit a vector of Metric entities to which the LabelSet may + match. + type: object + lastError: + type: string + lastScrape: + type: string + scrapeUrl: + type: string + required: + - health + - labels + - lastError + - lastScrape + - scrapeUrl + type: object + type: array + unavailableReplicas: + description: Total number of unavailable pods targeted by this Prometheus + deployment. + format: int32 + type: integer + updatedReplicas: + description: |- + Total number of non-terminated pods targeted by this Prometheus deployment + that have the desired version spec. + format: int32 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_meterdefinitions.yaml b/operators/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_meterdefinitions.yaml new file mode 100644 index 00000000000..ea254daa87e --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_meterdefinitions.yaml @@ -0,0 +1,956 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null + labels: + redhat.marketplace.com/name: ibm-metrics-operator + name: meterdefinitions.marketplace.redhat.com +spec: + group: marketplace.redhat.com + names: + kind: MeterDefinition + listKind: MeterDefinitionList + plural: meterdefinitions + singular: meterdefinition + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: |- + MeterDefinition defines the meter workloads used to enable pay for + use billing. + 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: MeterDefinitionSpec defines the desired metering spec + properties: + installedBy: + description: |- + InstalledBy is a reference to the CSV that install the meter + definition. This is used to determine an operator group. + properties: + groupVersionKind: + description: GroupVersionKind of the resource + properties: + apiVersion: + description: APIVersion of the CRD + type: string + kind: + description: Kind of the CRD + type: string + required: + - apiVersion + - kind + type: object + name: + description: |- + Name of the resource + Required + type: string + namespace: + description: |- + Namespace of the resource + Required + type: string + uid: + description: Namespace of the resource + type: string + required: + - name + - namespace + type: object + meterGroup: + description: Group defines the operator group of the meter + type: string + meterKind: + description: Kind defines the primary CRD kind of the meter + type: string + meterVersion: + description: Version defines the primary CRD version of the meter. + This field is no longer used. + type: string + podMeterLabels: + description: PodMeterLabels name of the prometheus metrics you want + to track. User workloads instead. + items: + type: string + type: array + serviceMeterLabels: + description: ServiceMeterLabels name of the meterics you want to track. + Use workloads instead. + items: + type: string + type: array + workloadVertexLabelSelectors: + description: |- + VertexFilters are used when Namespace is selected. Can be omitted + if you select OperatorGroup + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + workloadVertexType: + description: |- + WorkloadVertexType is the top most object of a workload. It allows + you to identify the upper bounds of your workloads. + enum: + - Namespace + - OperatorGroup + type: string + workloads: + description: Workloads identify the workloads to meter. + items: + description: Workload helps identify what to target for metering. + properties: + annotationSelector: + description: AnnotationSelector are used to filter to the correct + workload. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + labelSelector: + description: LabelSelector are used to filter to the correct + workload. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + metricLabels: + description: MetricLabels are the labels to collect + items: + description: MeterLabelQuery helps define a meter label to + build and search for + properties: + aggregation: + description: Aggregation to use with the query + enum: + - sum + - min + - max + - avg + - group + type: string + label: + description: Label is the name of the meter + type: string + query: + description: Query to use for the label + type: string + required: + - label + type: object + minItems: 1 + type: array + name: + description: Name of the workload, must be unique in a meter + definition. + type: string + ownerCRD: + description: |- + OwnerCRD is the name of the GVK to look for as the owner of all the + meterable assets. If omitted, the labels and annotations are used instead. + properties: + apiVersion: + description: APIVersion of the CRD + type: string + kind: + description: Kind of the CRD + type: string + required: + - apiVersion + - kind + type: object + type: + description: |- + WorkloadType identifies the type of workload to look for. This can be + pod or service right now. + enum: + - Pod + - Service + - PersistentVolumeClaim + type: string + required: + - name + - type + type: object + minItems: 1 + type: array + required: + - meterGroup + - meterKind + type: object + status: + description: MeterDefinitionStatus defines the observed state of MeterDefinition + properties: + conditions: + description: Conditions represent the latest available observations + of an object's state + items: + description: |- + Condition represents an observation of an object's state. Conditions are an + extension mechanism intended to be used when the details of an observation + are not a priori known or would not apply to all instances of a given Kind. + + + Conditions should be added to explicitly convey properties that users and + components care about rather than requiring those properties to be inferred + from other observations. Once defined, the meaning of a Condition can not be + changed arbitrarily - it becomes part of the API, and has the same + backwards- and forwards-compatibility concerns of any other part of the API. + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + description: |- + ConditionReason is intended to be a one-word, CamelCase representation of + the category of cause of the current status. It is intended to be used in + concise output, such as one-line kubectl get output, and in summarizing + occurrences of causes. + type: string + status: + type: string + type: + description: |- + ConditionType is the type of the condition and is typically a CamelCased + word or short phrase. + + + Condition types should indicate state in the "abnormal-true" polarity. For + example, if the condition indicates when a policy is invalid, the "is valid" + case is probably the norm, so the condition should be called "Invalid". + type: string + required: + - status + - type + type: object + type: array + results: + description: Results is a list of Results that get returned from a + query to prometheus + items: + description: |- + Result is a result of a query defined on the meterdefinition. + This will generate data for the previous hour on whichever workload you specify. + This will allow you to check whether a query is working as intended. + properties: + metricName: + description: MetricName is the identifier that you will use + to identify your query + type: string + query: + description: Query is the compiled query that is given to Prometheus + type: string + values: + description: Values are the results of the query + items: + description: ResultValues will hold the results of the prometheus + query + properties: + labels: + additionalProperties: + type: string + type: object + timestamp: + format: int64 + type: integer + value: + type: string + required: + - timestamp + - value + type: object + type: array + type: object + type: array + workloadResource: + description: |- + WorkloadResources is the list of resources discovered by + this meter definition + items: + description: WorkloadResource represents the resources associated + to a workload + properties: + groupVersionKind: + description: GroupVersionKind of the resource + properties: + apiVersion: + description: APIVersion of the CRD + type: string + kind: + description: Kind of the CRD + type: string + required: + - apiVersion + - kind + type: object + name: + description: |- + Name of the resource + Required + type: string + namespace: + description: |- + Namespace of the resource + Required + type: string + referencedWorkloadName: + description: ReferencedWorkloadName is the name of the workload + type: string + uid: + description: Namespace of the resource + type: string + required: + - name + - namespace + type: object + type: array + type: object + type: object + served: false + storage: false + subresources: + status: {} + - name: v1beta1 + schema: + openAPIV3Schema: + description: |- + MeterDefinition defines the meter workloads used to enable pay for + use billing. + 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: MeterDefinitionSpec defines the desired metering spec + properties: + group: + description: Group defines the operator group of the meter + type: string + installedBy: + description: |- + InstalledBy is a reference to the CSV that install the meter + definition. This is used to determine an operator group. + properties: + groupVersionKind: + description: GroupVersionKind of the resource + properties: + apiVersion: + description: APIVersion of the CRD + type: string + kind: + description: Kind of the CRD + type: string + required: + - apiVersion + - kind + type: object + name: + description: |- + Name of the resource + Required + type: string + namespace: + description: |- + Namespace of the resource + Required + type: string + uid: + description: Namespace of the resource + type: string + required: + - name + - namespace + type: object + kind: + description: Kind defines the primary CRD kind of the meter + type: string + meters: + description: Meters are the definitions related to the metrics that + you would like to monitor. + items: + properties: + aggregation: + description: Aggregation to use with the query + enum: + - sum + - min + - max + - avg + - group + type: string + dateLabelOverride: + description: |- + DateLabelOverride provides a means of overriding the date returned for the metric using a label. + This is to handle cases where the metric is a constant that is calculated. + type: string + description: + description: Description is the overview of what the metric + is providing for humans to read. + type: string + groupBy: + description: Group is the set of label fields returned by query + to aggregate on. + items: + type: string + type: array + x-kubernetes-list-type: set + label: + description: |- + Label is the usage metrics key field on the report. + Defaults to the metricId field if not provided + type: string + metricId: + description: Metric is the id of the meter + type: string + metricType: + description: MetricType identifies the type of metric this meter + definition reports. Currently "billable", "license", "adoption", + or "infrastructure". + enum: + - billable + - license + - adoption + - infrastructure + type: string + name: + description: Name of the metric for humans to read. + type: string + period: + description: Period is the amount of time to segment the data + into. Default is 1h. + type: string + query: + description: Query to use for prometheus to find the metrics + type: string + unit: + description: |- + Unit is the unit of the metrics. + Defaults to the metricId field if not provided + type: string + valueLabelOverride: + description: |- + ValueLabelOverride provides a means of overriding the value returned for the metric using a label. + This is to handle cases where the metric is a constant that is calculated. + type: string + without: + description: Labels to filter out automatically. + items: + type: string + type: array + x-kubernetes-list-type: set + workloadType: + description: |- + WorkloadType identifies the type of workload to look for. This can be + pod or service right now. + enum: + - Pod + - Service + - PersistentVolumeClaim + type: string + required: + - aggregation + - metricId + - query + - workloadType + type: object + type: array + resourceFilters: + description: |- + ResourceFilters provide filters that will be used to find the workload objects. + This is to find the exact resources the query is interested in. At least one must + be provided. + items: + properties: + annotation: + description: Annotation uses the resource annotations to find + resources to monitor. + properties: + annotationSelector: + description: AnnotationSelector are used to filter to the + correct workload. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + label: + description: Label uses the resource annotations to find resources + to monitor. + properties: + labelSelector: + description: LabelSelector are used to filter to the correct + workload. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + namespace: + description: |- + Namespace is the filter to control which namespaces to look for your resources. + Default is always Operator Group (supported by OLM) + properties: + labelSelector: + description: LabelSelector are used to filter to the correct + workload. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + useOperatorGroup: + description: UseOperatorGroup use your operator group for + namespace filtering + type: boolean + required: + - useOperatorGroup + type: object + ownerCRD: + description: OwnerCRD uses the owning CRD to filter resources. + properties: + apiVersion: + description: APIVersion of the CRD + type: string + kind: + description: Kind of the CRD + type: string + required: + - apiVersion + - kind + type: object + workloadType: + description: |- + WorkloadType identifies the type of workload to look for. This can be + pod or service right now. + enum: + - Pod + - Service + - PersistentVolumeClaim + type: string + required: + - workloadType + type: object + minItems: 1 + type: array + required: + - group + - kind + - meters + - resourceFilters + type: object + status: + description: MeterDefinitionStatus defines the observed state of MeterDefinition + properties: + conditions: + description: Conditions represent the latest available observations + of an object's state + items: + description: |- + Condition represents an observation of an object's state. Conditions are an + extension mechanism intended to be used when the details of an observation + are not a priori known or would not apply to all instances of a given Kind. + + + Conditions should be added to explicitly convey properties that users and + components care about rather than requiring those properties to be inferred + from other observations. Once defined, the meaning of a Condition can not be + changed arbitrarily - it becomes part of the API, and has the same + backwards- and forwards-compatibility concerns of any other part of the API. + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + description: |- + ConditionReason is intended to be a one-word, CamelCase representation of + the category of cause of the current status. It is intended to be used in + concise output, such as one-line kubectl get output, and in summarizing + occurrences of causes. + type: string + status: + type: string + type: + description: |- + ConditionType is the type of the condition and is typically a CamelCased + word or short phrase. + + + Condition types should indicate state in the "abnormal-true" polarity. For + example, if the condition indicates when a policy is invalid, the "is valid" + case is probably the norm, so the condition should be called "Invalid". + type: string + required: + - status + - type + type: object + type: array + results: + description: Results is a list of Results that get returned from a + query to prometheus + items: + description: |- + Result is a result of a query defined on the meterdefinition. + This will generate data for the previous hour on whichever workload you specify. + This will allow you to check whether a query is working as intended. + properties: + metricName: + description: MetricName is the identifier that you will use + to identify your query + type: string + query: + description: Query is the compiled query that is given to Prometheus + type: string + values: + description: Values are the results of the query + items: + description: ResultValues will hold the results of the prometheus + query + properties: + labels: + additionalProperties: + type: string + type: object + timestamp: + format: int64 + type: integer + value: + type: string + required: + - timestamp + - value + type: object + type: array + type: object + type: array + workloadResource: + description: |- + WorkloadResources is the list of resources discovered by + this meter definition + items: + description: WorkloadResource represents the resources associated + to a workload + properties: + groupVersionKind: + description: GroupVersionKind of the resource + properties: + apiVersion: + description: APIVersion of the CRD + type: string + kind: + description: Kind of the CRD + type: string + required: + - apiVersion + - kind + type: object + name: + description: |- + Name of the resource + Required + type: string + namespace: + description: |- + Namespace of the resource + Required + type: string + referencedWorkloadName: + description: ReferencedWorkloadName is the name of the workload + type: string + uid: + description: Namespace of the resource + type: string + required: + - name + - namespace + 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/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_meterreports.yaml b/operators/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_meterreports.yaml new file mode 100644 index 00000000000..873d7acb2a9 --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_meterreports.yaml @@ -0,0 +1,1539 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null + labels: + redhat.marketplace.com/name: ibm-metrics-operator + name: meterreports.marketplace.redhat.com +spec: + group: marketplace.redhat.com + names: + kind: MeterReport + listKind: MeterReportList + plural: meterreports + singular: meterreport + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.metricUploadCount + name: METRICS + type: string + - jsonPath: .status.conditions[?(@.type == "Stored")].status + name: STORED + type: string + - jsonPath: .status.conditions[?(@.type == "Stored")].reason + name: STORED_REASON + type: string + - jsonPath: .status.conditions[?(@.type == "Uploaded")].status + name: UPLOADED + type: string + - jsonPath: .status.conditions[?(@.type == "Uploaded")].reason + name: UPLOADED_REASON + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: MeterReport is the Schema for the meterreports 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: MeterReportSpec defines the desired state of MeterReport + properties: + endTime: + description: EndTime of the job + format: date-time + type: string + extraJobArgs: + description: ExtraArgs is a set of arguments to pass to the job + items: + type: string + type: array + labelSelector: + description: |- + LabelSelectors are used to filter to the correct workload. + DEPRECATED + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + meterDefinitionReferences: + description: MeterDefinitionReferences are used as the first meter + definition source. Prometheus data is used to supplement. + items: + description: |- + MeterDefinitionReference is a more friendly form to set on the MeterReport providing + the default meter definitions to use for the day. + properties: + name: + description: Name is the name of the MeterDefinition + type: string + namespace: + description: Namespace is the namespace of the MeterDefinition + type: string + resourceVersion: + description: ResourceVersion + type: string + spec: + description: |- + Spec is a copy of the meter definition spec, this can be left empty and later filled in by + the report tool. + properties: + group: + description: Group defines the operator group of the meter + type: string + installedBy: + description: |- + InstalledBy is a reference to the CSV that install the meter + definition. This is used to determine an operator group. + properties: + groupVersionKind: + description: GroupVersionKind of the resource + properties: + apiVersion: + description: APIVersion of the CRD + type: string + kind: + description: Kind of the CRD + type: string + required: + - apiVersion + - kind + type: object + name: + description: |- + Name of the resource + Required + type: string + namespace: + description: |- + Namespace of the resource + Required + type: string + uid: + description: Namespace of the resource + type: string + required: + - name + - namespace + type: object + kind: + description: Kind defines the primary CRD kind of the meter + type: string + meters: + description: Meters are the definitions related to the metrics + that you would like to monitor. + items: + properties: + aggregation: + description: Aggregation to use with the query + enum: + - sum + - min + - max + - avg + - group + type: string + dateLabelOverride: + description: |- + DateLabelOverride provides a means of overriding the date returned for the metric using a label. + This is to handle cases where the metric is a constant that is calculated. + type: string + description: + description: Description is the overview of what the + metric is providing for humans to read. + type: string + groupBy: + description: Group is the set of label fields returned + by query to aggregate on. + items: + type: string + type: array + x-kubernetes-list-type: set + label: + description: |- + Label is the usage metrics key field on the report. + Defaults to the metricId field if not provided + type: string + metricId: + description: Metric is the id of the meter + type: string + metricType: + description: MetricType identifies the type of metric + this meter definition reports. Currently "billable", + "license", "adoption", or "infrastructure". + enum: + - billable + - license + - adoption + - infrastructure + type: string + name: + description: Name of the metric for humans to read. + type: string + period: + description: Period is the amount of time to segment + the data into. Default is 1h. + type: string + query: + description: Query to use for prometheus to find the + metrics + type: string + unit: + description: |- + Unit is the unit of the metrics. + Defaults to the metricId field if not provided + type: string + valueLabelOverride: + description: |- + ValueLabelOverride provides a means of overriding the value returned for the metric using a label. + This is to handle cases where the metric is a constant that is calculated. + type: string + without: + description: Labels to filter out automatically. + items: + type: string + type: array + x-kubernetes-list-type: set + workloadType: + description: |- + WorkloadType identifies the type of workload to look for. This can be + pod or service right now. + enum: + - Pod + - Service + - PersistentVolumeClaim + type: string + required: + - aggregation + - metricId + - query + - workloadType + type: object + type: array + resourceFilters: + description: |- + ResourceFilters provide filters that will be used to find the workload objects. + This is to find the exact resources the query is interested in. At least one must + be provided. + items: + properties: + annotation: + description: Annotation uses the resource annotations + to find resources to monitor. + properties: + annotationSelector: + description: AnnotationSelector are used to filter + to the correct workload. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + label: + description: Label uses the resource annotations to + find resources to monitor. + properties: + labelSelector: + description: LabelSelector are used to filter + to the correct workload. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + namespace: + description: |- + Namespace is the filter to control which namespaces to look for your resources. + Default is always Operator Group (supported by OLM) + properties: + labelSelector: + description: LabelSelector are used to filter + to the correct workload. + properties: + matchExpressions: + description: matchExpressions is a list of + label selector requirements. The requirements + are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + useOperatorGroup: + description: UseOperatorGroup use your operator + group for namespace filtering + type: boolean + required: + - useOperatorGroup + type: object + ownerCRD: + description: OwnerCRD uses the owning CRD to filter + resources. + properties: + apiVersion: + description: APIVersion of the CRD + type: string + kind: + description: Kind of the CRD + type: string + required: + - apiVersion + - kind + type: object + workloadType: + description: |- + WorkloadType identifies the type of workload to look for. This can be + pod or service right now. + enum: + - Pod + - Service + - PersistentVolumeClaim + type: string + required: + - workloadType + type: object + minItems: 1 + type: array + required: + - group + - kind + - meters + - resourceFilters + type: object + uid: + description: UID is the UID of the MeterDefinition + type: string + required: + - name + - namespace + type: object + type: array + x-kubernetes-list-map-keys: + - name + - namespace + x-kubernetes-list-type: map + meterDefinitions: + description: |- + MeterDefinitions is the list of meterDefinitions included in the report + DEPRECATED + items: + description: |- + MeterDefinition defines the meter workloads used to enable pay for + use billing. + 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: MeterDefinitionSpec defines the desired metering + spec + properties: + installedBy: + description: |- + InstalledBy is a reference to the CSV that install the meter + definition. This is used to determine an operator group. + properties: + groupVersionKind: + description: GroupVersionKind of the resource + properties: + apiVersion: + description: APIVersion of the CRD + type: string + kind: + description: Kind of the CRD + type: string + required: + - apiVersion + - kind + type: object + name: + description: |- + Name of the resource + Required + type: string + namespace: + description: |- + Namespace of the resource + Required + type: string + uid: + description: Namespace of the resource + type: string + required: + - name + - namespace + type: object + meterGroup: + description: Group defines the operator group of the meter + type: string + meterKind: + description: Kind defines the primary CRD kind of the meter + type: string + meterVersion: + description: Version defines the primary CRD version of + the meter. This field is no longer used. + type: string + podMeterLabels: + description: PodMeterLabels name of the prometheus metrics + you want to track. User workloads instead. + items: + type: string + type: array + serviceMeterLabels: + description: ServiceMeterLabels name of the meterics you + want to track. Use workloads instead. + items: + type: string + type: array + workloadVertexLabelSelectors: + description: |- + VertexFilters are used when Namespace is selected. Can be omitted + if you select OperatorGroup + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + workloadVertexType: + description: |- + WorkloadVertexType is the top most object of a workload. It allows + you to identify the upper bounds of your workloads. + enum: + - Namespace + - OperatorGroup + type: string + workloads: + description: Workloads identify the workloads to meter. + items: + description: Workload helps identify what to target for + metering. + properties: + annotationSelector: + description: AnnotationSelector are used to filter + to the correct workload. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + labelSelector: + description: LabelSelector are used to filter to the + correct workload. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + metricLabels: + description: MetricLabels are the labels to collect + items: + description: MeterLabelQuery helps define a meter + label to build and search for + properties: + aggregation: + description: Aggregation to use with the query + enum: + - sum + - min + - max + - avg + - group + type: string + label: + description: Label is the name of the meter + type: string + query: + description: Query to use for the label + type: string + required: + - label + type: object + minItems: 1 + type: array + name: + description: Name of the workload, must be unique + in a meter definition. + type: string + ownerCRD: + description: |- + OwnerCRD is the name of the GVK to look for as the owner of all the + meterable assets. If omitted, the labels and annotations are used instead. + properties: + apiVersion: + description: APIVersion of the CRD + type: string + kind: + description: Kind of the CRD + type: string + required: + - apiVersion + - kind + type: object + type: + description: |- + WorkloadType identifies the type of workload to look for. This can be + pod or service right now. + enum: + - Pod + - Service + - PersistentVolumeClaim + type: string + required: + - name + - type + type: object + minItems: 1 + type: array + required: + - meterGroup + - meterKind + type: object + status: + description: MeterDefinitionStatus defines the observed state + of MeterDefinition + properties: + conditions: + description: Conditions represent the latest available observations + of an object's state + items: + description: |- + Condition represents an observation of an object's state. Conditions are an + extension mechanism intended to be used when the details of an observation + are not a priori known or would not apply to all instances of a given Kind. + + + Conditions should be added to explicitly convey properties that users and + components care about rather than requiring those properties to be inferred + from other observations. Once defined, the meaning of a Condition can not be + changed arbitrarily - it becomes part of the API, and has the same + backwards- and forwards-compatibility concerns of any other part of the API. + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + description: |- + ConditionReason is intended to be a one-word, CamelCase representation of + the category of cause of the current status. It is intended to be used in + concise output, such as one-line kubectl get output, and in summarizing + occurrences of causes. + type: string + status: + type: string + type: + description: |- + ConditionType is the type of the condition and is typically a CamelCased + word or short phrase. + + + Condition types should indicate state in the "abnormal-true" polarity. For + example, if the condition indicates when a policy is invalid, the "is valid" + case is probably the norm, so the condition should be called "Invalid". + type: string + required: + - status + - type + type: object + type: array + results: + description: Results is a list of Results that get returned + from a query to prometheus + items: + description: |- + Result is a result of a query defined on the meterdefinition. + This will generate data for the previous hour on whichever workload you specify. + This will allow you to check whether a query is working as intended. + properties: + metricName: + description: MetricName is the identifier that you + will use to identify your query + type: string + query: + description: Query is the compiled query that is given + to Prometheus + type: string + values: + description: Values are the results of the query + items: + description: ResultValues will hold the results + of the prometheus query + properties: + labels: + additionalProperties: + type: string + type: object + timestamp: + format: int64 + type: integer + value: + type: string + required: + - timestamp + - value + type: object + type: array + type: object + type: array + workloadResource: + description: |- + WorkloadResources is the list of resources discovered by + this meter definition + items: + description: WorkloadResource represents the resources + associated to a workload + properties: + groupVersionKind: + description: GroupVersionKind of the resource + properties: + apiVersion: + description: APIVersion of the CRD + type: string + kind: + description: Kind of the CRD + type: string + required: + - apiVersion + - kind + type: object + name: + description: |- + Name of the resource + Required + type: string + namespace: + description: |- + Namespace of the resource + Required + type: string + referencedWorkloadName: + description: ReferencedWorkloadName is the name of + the workload + type: string + uid: + description: Namespace of the resource + type: string + required: + - name + - namespace + type: object + type: array + type: object + type: object + type: array + prometheusService: + description: |- + PrometheusService is the definition for the service labels. + DEPRECATED + properties: + basicAuth: + description: |- + BasicAuth allow an endpoint to authenticate over basic authentication + Optional + properties: + ca: + description: Certificate authority used when verifying server + certificates. + properties: + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + caFile: + description: Path to the CA cert in the Prometheus container + to use for the targets. + type: string + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + certFile: + description: Path to the client cert file in the Prometheus + container for the targets. + type: string + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keyFile: + description: Path to the client key file in the Prometheus + container for the targets. + type: string + keySecret: + description: Secret containing the client key file for the + targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object + bearerTokenFile: + description: File to read bearer token for scraping targets. + type: string + bearerTokenSecret: + description: |- + Secret to mount to read bearer token for scraping targets. The secret + needs to be in the same namespace as the service monitor and accessible by + the Prometheus Operator. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + name: + description: |- + Name of the job + Required + type: string + namespace: + description: |- + Namespace of the job + Required + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: |- + Port name is the name of the part to select + Required + x-kubernetes-int-or-string: true + tlsConfig: + description: |- + TLS configuration to use when scraping the endpoint + Optional + properties: + ca: + description: Certificate authority used when verifying server + certificates. + properties: + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + caFile: + description: Path to the CA cert in the Prometheus container + to use for the targets. + type: string + cert: + description: Client certificate to present when doing client-authentication. + properties: + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + certFile: + description: Path to the client cert file in the Prometheus + container for the targets. + type: string + insecureSkipVerify: + description: Disable target certificate validation. + type: boolean + keyFile: + description: Path to the client key file in the Prometheus + container for the targets. + type: string + keySecret: + description: Secret containing the client key file for the + targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + serverName: + description: Used to verify the hostname for the targets. + type: string + type: object + required: + - name + - namespace + - targetPort + type: object + reportUUID: + description: ReportUUID is the generated ID for the report. + type: string + startTime: + description: StartTime of the job + format: date-time + type: string + required: + - endTime + - startTime + type: object + status: + description: MeterReportStatus defines the observed state of MeterReport + properties: + conditions: + description: Conditions represent the latest available observations + of an object's stateonfig + items: + description: |- + Condition represents an observation of an object's state. Conditions are an + extension mechanism intended to be used when the details of an observation + are not a priori known or would not apply to all instances of a given Kind. + + + Conditions should be added to explicitly convey properties that users and + components care about rather than requiring those properties to be inferred + from other observations. Once defined, the meaning of a Condition can not be + changed arbitrarily - it becomes part of the API, and has the same + backwards- and forwards-compatibility concerns of any other part of the API. + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + description: |- + ConditionReason is intended to be a one-word, CamelCase representation of + the category of cause of the current status. It is intended to be used in + concise output, such as one-line kubectl get output, and in summarizing + occurrences of causes. + type: string + status: + type: string + type: + description: |- + ConditionType is the type of the condition and is typically a CamelCased + word or short phrase. + + + Condition types should indicate state in the "abnormal-true" polarity. For + example, if the condition indicates when a policy is invalid, the "is valid" + case is probably the norm, so the condition should be called "Invalid". + type: string + required: + - status + - type + type: object + type: array + dataServiceStatus: + description: DataServiceStatus is the status of the report stored + in data service + properties: + error: + description: Error is present if an error occurred on upload + type: string + id: + description: ID is the upload id + type: string + status: + description: Status is the current status + type: string + target: + description: Target is the upload target + type: string + required: + - status + - target + type: object + errors: + description: |- + Errors shows if there were any errors from queries + for the report. + items: + description: ErrorDetails provides details about errors that happen + in the job + properties: + details: + additionalProperties: + type: string + description: Details of the error + type: object + reason: + description: Reason the error occurred + type: string + type: object + type: array + jobReference: + description: |- + A list of pointers to currently running jobs. + DEPRECATED + properties: + active: + description: The number of actively running pods. + format: int32 + type: integer + backoffLimit: + description: |- + Specifies the number of retries before marking this job failed. + Defaults to 6 + format: int32 + type: integer + completionTime: + description: |- + Represents time when the job was completed. It is not guaranteed to + be set in happens-before order across separate operations. + It is represented in RFC3339 form and is in UTC. + format: date-time + type: string + failed: + description: The number of pods which reached phase Failed. + format: int32 + type: integer + jobFailed: + description: JobFailed is the boolean value set if the job failed + type: boolean + jobSuccess: + description: JobSuccess is the boolean value set if the job succeeded + type: boolean + name: + description: |- + Name of the job + Required + type: string + namespace: + description: |- + Namespace of the job + Required + type: string + startTime: + description: |- + Represents time when the job was acknowledged by the job controller. + It is not guaranteed to be set in happens-before order across separate operations. + It is represented in RFC3339 form and is in UTC. + format: date-time + type: string + succeeded: + description: The number of pods which reached phase Succeeded. + format: int32 + type: integer + required: + - name + - namespace + type: object + metricUploadCount: + description: MetricUploadCount is the number of metrics in the report + type: integer + uploadAttempts: + description: |- + UploadAttempts track the number of times a file has failed due to + unrecoverable errors + type: integer + uploadStatus: + description: UploadStatus displays the last status for upload targets. + items: + description: UploadDetails provides details about uploads for the + meterreport + properties: + error: + description: Error is present if an error occurred on upload + type: string + id: + description: ID is the upload id + type: string + status: + description: Status is the current status + type: string + target: + description: Target is the upload target + type: string + required: + - status + - target + type: object + type: array + uploadUID: + description: UploadID is the ID associated with the upload + type: string + warnings: + description: Warnings from the job + items: + description: ErrorDetails provides details about errors that happen + in the job + properties: + details: + additionalProperties: + type: string + description: Details of the error + type: object + reason: + description: Reason the error occurred + type: string + type: object + type: array + workloadCount: + description: WorkloadCount is the number of workloads reported on + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_razeedeployments.yaml b/operators/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_razeedeployments.yaml new file mode 100644 index 00000000000..39935b11cf1 --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/manifests/marketplace.redhat.com_razeedeployments.yaml @@ -0,0 +1,503 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null + labels: + redhat.marketplace.com/name: ibm-metrics-operator + name: razeedeployments.marketplace.redhat.com +spec: + group: marketplace.redhat.com + names: + kind: RazeeDeployment + listKind: RazeeDeploymentList + plural: razeedeployments + singular: razeedeployment + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.installConditions[?(@.type == "Installing")].status + name: INSTALLING + type: string + - jsonPath: .status.installConditions[?(@.type == "Installing")].reason + name: STEP + type: string + - jsonPath: .status.nodesFromRazeeDeploymentsCount + name: APPS + type: integer + name: v1alpha1 + schema: + openAPIV3Schema: + description: |- + RazeeDeployment is the resources that deploys Razee for the Red Hat Marketplace. + This is an internal resource not meant to be modified directly. + 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: RazeeDeploymentSpec defines the desired state of RazeeDeployment + properties: + childUrl: + description: |- + Location of your IBM Cloud Object Storage resources + Used internally by the Operator + type: string + clusterDisplayName: + description: The ClusterDisplayName is a unique name of for a cluster + specified by the admin during registration + type: string + clusterUUID: + description: ClusterUUID is the cluster identifier, used for installing + razee. + type: string + deployConfig: + description: |- + Configuration values provided from redhat marketplace + These are used internally by the Operator + properties: + bucketName: + description: BucketName is the name of the bucket in Cloud Object + Storage and correlates to your accountID + type: string + childRRS3FileName: + description: The file name of the child RemoteResourecS3 + type: string + fileSourceUrl: + description: 'FileSourceURL DEPRECATED: The url of the filesource + arg that gets passed into the razeedeploy-job' + type: string + ibmCosReaderKey: + description: Api key used to access the bucket IBM COS + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + ibmCosUrl: + description: Base url for the instance of IBM COS + type: string + razeeDashOrgKey: + description: Key used to identify a particular razee instance + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + TODO: Add other useful fields. apiVersion, kind, uid? + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + razeeDashUrl: + description: Url used by the razee install to post data + type: string + type: object + deploySecretName: + description: |- + DeploySecretName is the name of our secret where Razee + variables are stored. + type: string + enabled: + description: |- + Enabled is the flag that controls if the controller does work. Setting + enabled to true will create a Razee namespace and deploy it's components. Set to false to bypass Razee installation + type: boolean + features: + description: The features that can be enabled or disabled + properties: + deployment: + description: Deployment represents the enablement of the razee + deployment, defaults to true when not set + type: boolean + meterDefinitionCatalogServer: + description: '[DEPRECATED] EnableMeterDefinitionCatalogServer + represents the enablement of the meterdefinition catalog server, + defaults to true when not set' + type: boolean + registration: + description: Registration represents the enablement of the registration + watchkeeper deployment, defaults to true when not set + type: boolean + type: object + installIBMCatalogSource: + description: InstallIBMCatalogSource is the flag that indicates if + the IBM Catalog Source is installed + type: boolean + legacyUninstallHasRun: + description: |- + Flag used by the RazeeDeployment Controller to decide whether to run legacy uninstall job + Used internally by the Operator + type: boolean + targetNamespace: + description: |- + TargetNamespace is configurable target of the razee namespace + This is to support legancy installs. Please do not edit. + type: string + required: + - clusterUUID + - enabled + type: object + status: + description: RazeeDeploymentStatus defines the observed state of RazeeDeployment + properties: + conditions: + description: 'JobConditions DEPRECATED: represent the latest available + observations of an object''s stateonfig' + properties: + lastProbeTime: + description: Last time the condition was checked. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transit from one status to + another. + format: date-time + type: string + message: + description: Human readable message indicating details about last + transition. + type: string + reason: + description: (brief) reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of job condition, Complete or Failed. + type: string + required: + - status + - type + type: object + installConditions: + description: RazeeConditions represent the latest available observations + of an object's stateonfig + items: + description: |- + Condition represents an observation of an object's state. Conditions are an + extension mechanism intended to be used when the details of an observation + are not a priori known or would not apply to all instances of a given Kind. + + + Conditions should be added to explicitly convey properties that users and + components care about rather than requiring those properties to be inferred + from other observations. Once defined, the meaning of a Condition can not be + changed arbitrarily - it becomes part of the API, and has the same + backwards- and forwards-compatibility concerns of any other part of the API. + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + description: |- + ConditionReason is intended to be a one-word, CamelCase representation of + the category of cause of the current status. It is intended to be used in + concise output, such as one-line kubectl get output, and in summarizing + occurrences of causes. + type: string + status: + type: string + type: + description: |- + ConditionType is the type of the condition and is typically a CamelCased + word or short phrase. + + + Condition types should indicate state in the "abnormal-true" polarity. For + example, if the condition indicates when a policy is invalid, the "is valid" + case is probably the norm, so the condition should be called "Invalid". + type: string + required: + - status + - type + type: object + type: array + jobState: + description: 'JobState DEPRECATED: is the status of the Razee Install + Job' + properties: + active: + description: |- + The number of pending and running pods which are not terminating (without + a deletionTimestamp). + The value is zero for finished jobs. + format: int32 + type: integer + completedIndexes: + description: |- + completedIndexes holds the completed indexes when .spec.completionMode = + "Indexed" in a text format. The indexes are represented as decimal integers + separated by commas. The numbers are listed in increasing order. Three or + more consecutive numbers are compressed and represented by the first and + last element of the series, separated by a hyphen. + For example, if the completed indexes are 1, 3, 4, 5 and 7, they are + represented as "1,3-5,7". + type: string + completionTime: + description: |- + Represents time when the job was completed. It is not guaranteed to + be set in happens-before order across separate operations. + It is represented in RFC3339 form and is in UTC. + The completion time is set when the job finishes successfully, and only then. + The value cannot be updated or removed. The value indicates the same or + later point in time as the startTime field. + format: date-time + type: string + conditions: + description: |- + The latest available observations of an object's current state. When a Job + fails, one of the conditions will have type "Failed" and status true. When + a Job is suspended, one of the conditions will have type "Suspended" and + status true; when the Job is resumed, the status of this condition will + become false. When a Job is completed, one of the conditions will have + type "Complete" and status true. + + + A job is considered finished when it is in a terminal condition, either + "Complete" or "Failed". A Job cannot have both the "Complete" and "Failed" conditions. + Additionally, it cannot be in the "Complete" and "FailureTarget" conditions. + The "Complete", "Failed" and "FailureTarget" conditions cannot be disabled. + + + More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ + items: + description: JobCondition describes current state of a job. + properties: + lastProbeTime: + description: Last time the condition was checked. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transit from one status + to another. + format: date-time + type: string + message: + description: Human readable message indicating details about + last transition. + type: string + reason: + description: (brief) reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, + Unknown. + type: string + type: + description: Type of job condition, Complete or Failed. + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-type: atomic + failed: + description: |- + The number of pods which reached phase Failed. + The value increases monotonically. + format: int32 + type: integer + failedIndexes: + description: |- + FailedIndexes holds the failed indexes when spec.backoffLimitPerIndex is set. + The indexes are represented in the text format analogous as for the + `completedIndexes` field, ie. they are kept as decimal integers + separated by commas. The numbers are listed in increasing order. Three or + more consecutive numbers are compressed and represented by the first and + last element of the series, separated by a hyphen. + For example, if the failed indexes are 1, 3, 4, 5 and 7, they are + represented as "1,3-5,7". + The set of failed indexes cannot overlap with the set of completed indexes. + + + This field is beta-level. It can be used when the `JobBackoffLimitPerIndex` + feature gate is enabled (enabled by default). + type: string + ready: + description: The number of pods which have a Ready condition. + format: int32 + type: integer + startTime: + description: |- + Represents time when the job controller started processing a job. When a + Job is created in the suspended state, this field is not set until the + first time it is resumed. This field is reset every time a Job is resumed + from suspension. It is represented in RFC3339 form and is in UTC. + + + Once set, the field can only be removed when the job is suspended. + The field cannot be modified while the job is unsuspended or finished. + format: date-time + type: string + succeeded: + description: |- + The number of pods which reached phase Succeeded. + The value increases monotonically for a given spec. However, it may + decrease in reaction to scale down of elastic indexed jobs. + format: int32 + type: integer + terminating: + description: |- + The number of pods which are terminating (in phase Pending or Running + and have a deletionTimestamp). + + + This field is beta-level. The job controller populates the field when + the feature gate JobPodReplacementPolicy is enabled (enabled by default). + format: int32 + type: integer + uncountedTerminatedPods: + description: |- + uncountedTerminatedPods holds the UIDs of Pods that have terminated but + the job controller hasn't yet accounted for in the status counters. + + + The job controller creates pods with a finalizer. When a pod terminates + (succeeded or failed), the controller does three steps to account for it + in the job status: + + + 1. Add the pod UID to the arrays in this field. + 2. Remove the pod finalizer. + 3. Remove the pod UID from the arrays while increasing the corresponding + counter. + + + Old jobs might not be tracked using this field, in which case the field + remains null. + The structure is empty for finished jobs. + properties: + failed: + description: failed holds UIDs of failed Pods. + items: + description: |- + UID is a type that holds unique ID values, including UUIDs. Because we + don't ONLY use UUIDs, this is an alias to string. Being a type captures + intent and helps make sure that UIDs and names do not get conflated. + type: string + type: array + x-kubernetes-list-type: set + succeeded: + description: succeeded holds UIDs of succeeded Pods. + items: + description: |- + UID is a type that holds unique ID values, including UUIDs. Because we + don't ONLY use UUIDs, this is an alias to string. Being a type captures + intent and helps make sure that UIDs and names do not get conflated. + type: string + type: array + x-kubernetes-list-type: set + type: object + type: object + localSecretVarsPopulated: + description: 'LocalSecretVarsPopulated DEPRECATED: informs if the + correct local variables are correct set.' + type: boolean + missingValuesFromSecret: + description: MissingValuesFromSecret validates the secret provided + has all the correct fields + items: + type: string + type: array + nodesFromRazeeDeployments: + description: NodesFromRazeeDeployments contains the pods names created + by the rhm-watch-keeper and rhm-remote-resources3-controller deployments + items: + type: string + type: array + nodesFromRazeeDeploymentsCount: + description: NodesFromRazeeDeploymentsCount contains the pods names + created by the rhm-watch-keeper and rhm-remote-resources3-controller + deployments + type: integer + razee_job_install: + description: RazeeJobInstall contains information regarding the install + job so it can be removed + properties: + razee_install_url: + description: RazeeInstallURL is the url used to install the Razee + resources + type: string + razee_namespace: + description: RazeeNamespace is the namespace targeted for the + Razee install + type: string + required: + - razee_install_url + - razee_namespace + type: object + razeePrerequisitesCreated: + description: RazeePrerequestesCreated is the list of configmaps and + secrets required to be installed + items: + type: string + type: array + redHatMarketplaceSecretFound: + description: 'RedHatMarketplaceSecretFound DEPRECATED: is the status + of finding the secret in the cluster' + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/ibm-metrics-operator/2.18.0/metadata/annotations.yaml b/operators/ibm-metrics-operator/2.18.0/metadata/annotations.yaml new file mode 100644 index 00000000000..fb72e4518f0 --- /dev/null +++ b/operators/ibm-metrics-operator/2.18.0/metadata/annotations.yaml @@ -0,0 +1,15 @@ +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: ibm-metrics-operator + operators.operatorframework.io.bundle.channels.v1: beta,stable + operators.operatorframework.io.bundle.channel.default.v1: stable + operators.operatorframework.io.metrics.builder: operator-sdk-v1.28.1 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3 + # Annotations for testing. + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 + operators.operatorframework.io.test.config.v1: tests/scorecard/ + com.redhat.openshift.versions: v4.12-v4.17