Operators
About Operators
The collection of operators are used for reporting workload metrics and integrating product install lifecycle
IBM Metrics Operator
The IBM Metrics Operator is used to meter workloads and report usage from Prometheus on an OpenShift cluster, and reports it to IBM Software Central. It enables pay for what you use pricing options, and consolidates billing and reporting.
IBM Data Reporter Operator
The IBM Data Reporter Operator is used as a push event interface into the IBM Metrics Operator’s data-service, for reporting to IBM Software Central.
Red Hat Marketplace Deployment Operator
The Red Hat Marketplace Deployment Operator is deprecated. The automated install functionality has been removed. Software may be installed using your OpenShift cluster’s OperatorHub, or by applying the appropriate Subscription yaml.
How the Operators work
IBM Metrics Operator
The IBM Metrics Operator builds reports from the OpenShift cluster’s Prometheus data, as defined by a MeterDefinition, and uploads the report to IBM Software Central. Metrics may be viewed on the usage dashboard.
IBM Data Reporter Operator
The IBM Data Reporter Operator accepts authenticated push events on a REST endpoint, builds a report and forwards it to the IBM Metrics Operator data-service. The IBM Metrics Operator uploads the report to IBM Software Central.
Installing the Operators
The operators may be installed from the OpenShift console’s OperatorHub. The operators are published in the Certified Operators catalog.
Alternatively, this yaml may be applied by the OpenShift cluster administrator to create the operator Subscriptions.
Cluster requirements
The Operators and Prometheus instances require the following cluster resources. Note: To help ensure high availability, multiple nodes are required to provide pod scheduling across RedHat Marketplace Data Service and Prometheus.
Memory (GB) | CPU (cores) | Disk (GB) | Nodes | |
---|---|---|---|---|
IBM Metrics Operator | 0.8 | 0.7 | 3x1 | 3 |
IBM Data Reporter Operator | 0.3 | 0.7 | 1 | |
Prometheus via OpenShift Container Platform monitoring | 1 | 0.1 | 2x40 | 2 |
For additional details on resource requirements and storage configuration, refer to the documentation in the operator github repository.
The IBM Metrics Operator creates 3 x 1GB PersistentVolumeClaims to store reports as part of the data service, with ReadWriteOnce access mode.
Supported Storage Providers
- OpenShift Container Storage / OpenShift Data Foundation version 4.x, from version 4.2 or higher
- IBM Cloud Block storage and IBM Cloud File storage
- IBM Storage Suite for IBM Cloud Paks:
- File storage from IBM Spectrum Fusion/Scale
- Block storage from IBM Spectrum Virtualize, FlashSystem or DS8K
- Portworx Storage, version 2.5.5 or above
- Amazon Elastic File Storage
Access Modes required
- ReadWriteOnce (RWO)
Provisioning Options supported
- Dynamic provisioning using a default StorageClass
- Manually create PersistentVolumeClaims
- Manually create PersistentVolumes
Integration with OpenShift Container Platform monitoring
When using monitoring, available with OpenShift Container Platform, IBM Metrics Operator must be configured to reuse the user workload Prometheus instance. Configuring the operator to reuse the Prometheus instance helps reduce resource requirements necessary to maintain performance.
Enable OpenShift user workload monitoring
The task enables Openshift User Workload Monitoring for OpenShift Container Platform.
Prerequisites
- Access cluster as
cluster-admin
role. - Install
OpenShift CLI (
oc
). - Create the
cluster-monitoring-config
ConfigMap
object.
Steps
-
Create the
user-workload-monitoring-config
ConfigMap
object with the following default values:retention: 168h
andstorage: 40Gi
.For example:
apiVersion: v1kind: ConfigMapmetadata:name: user-workload-monitoring-confignamespace: openshift-user-workload-monitoringdata:config.yaml: |prometheus:retention: 168hvolumeClaimTemplate:spec:resources:requests:storage: 40Gi -
Edit the
cluster-monitoring-config
ConfigMap
object by running the following command:oc -n openshift-monitoring edit configmap cluster-monitoring-config -
Under
data/config.yaml
, setenableUserWorkload
totrue
. Note: When set totrue
, theenableUserWorkload
parameter enables monitoring for user-defined projects in a cluster.For example:
apiVersion: v1kind: ConfigMapmetadata:name: cluster-monitoring-confignamespace: openshift-monitoringdata:config.yaml: |enableUserWorkload: true -
Save the file.
Result
Changes are applied and monitoring for user-defined projects is enabled automatically.
Next steps
-
To verify the
prometheus-operator
,prometheus-user-workload
andthanos-ruler-user-workload
pods are running in theopenshift-user-workload-monitoring
project, run the following command. Note: It may take a few minutes for the pods to start.$ oc -n openshift-user-workload-monitoring get podExample response:
NAME READY STATUS RESTARTS AGEprometheus-operator-6f7b748d5b-t7nbg 2/2 Running 0 3hprometheus-user-workload-0 4/4 Running 1 3hprometheus-user-workload-1 4/4 Running 1 3hthanos-ruler-user-workload-0 3/3 Running 0 3hthanos-ruler-user-workload-1 3/3 Running 0 3h
Additional Resources
For more information on user workload monitoring installation and configuration, refer to the following OpenShift guide:
Artifacts under the installation namespace
Once on your cluster, the operators create and manage the following artifacts under the installation namespace (default: ibm-software-central
)
- Custom Resource Definitions
- MarketplaceConfig - configuration object for the ibm-metrics-operator controller-manager
- MeterBase - configuration object for ibm-metrics-operator metering
- MeterReport - controller generated object representing the daily report
- MeterDefinition - configuration object defining prometheus workload query
- DataReporterConfig - configuration object for the ibm-data-reporter-operator
- RazeeDeployment - configuration object for the ibm-metrics-operator
- Deployments & Services
- ibm-metrics-operator - controller-manager
- metric-state - workload association service
- data-service - storage service
- ibm-data-reporter-operator - controller-manager
- watch-keeper - telemetry
- Secrets & ConfigMaps
- redhat-marketplace-pull-secret - user created pull secret for authenticating for Red Hat Marketplace customers
- ibm-entitlement-key - user created pull secret for authenticating for IBM Software Central customers
Data passed from your clusters to IBM Software Central
To enable product deployments and billing, the operator sends the following information to IBM Software Central
- Heartbeat — to maintain cluster state data, the IBM Metrics Operator sends cluster metadata once per minute.
- Resource list — to synch information about your cluster and products installed, the IBM Metrics Operator sends a summarized list of select resourcess including:
Subscription
,ClusterServiceVersion
,ClusterVersion
,Console
,Infrastructure
,Namespace
,Node
. - Usage data - to bill for application usage, when selected, the IBM Metrics Operator sends reports with usage data as described in the metering API documentation.
Configure your firewall for OpenShift and IBM Software Central
To access services, grant access to the following URL:
URL | Function |
---|---|
swc.saas.ibm.com | Required for api communication |
Uninstalling the Operators
- Delete
MarketplaceConfig
oc delete marketplaceconfig marketplaceconfig -n ibm-software-central
- Uninstall the operator from your OpenShift cluster using OperatorHub