Chapter 1. Creating an OpenShift Container Platform integration
1.1. Installation tasks summary
The Cost Management Metrics Operator gathers data from OpenShift Container Platform for cost management. Install the Cost Management Metrics Operator on your OpenShift Container Platform instance as part of installing cost management. When you have finished installing cost management, visit cost management to view your cost data.
Operator installation, configuration, and integration management can all be performed from the OpenShift Container Platform web console.
To install and configure Cost Management Metrics Operator from the OpenShift Container Platform web console, you must use an account with cluster administrator privileges.
Prerequisites
- The OpenShift Container Platform cluster is installed.
- You can access the OpenShift Container Platform web console using an account that has cluster administrator privileges.
- You can access Red Hat Hybrid Cloud Console with the correct privileges for the cost management service. See, Limiting access to cost management resources for more information.
Perform the following tasks to install the Cost Management Metrics Operator and begin using the cost management application in OpenShift Container Platform:
Task summary
-
Install the Cost Management Metrics Operator (
costmanagement-metrics-operator
) and use the default token authentication. -
Create a CostManagementMetricsConfig YAML file that configures
costmanagement-metrics-operator
- Create a cost management OpenShift Container Platform integration with a new installation, or confirm an existing integration with a replacement installation.
If you do not use token authentication, you must take additional steps to configure the secret that holds the client_id
and client_secret
credentials for your service account from Red Hat Hybrid Cloud Console.
1.2. Installing the cost operator by using OperatorHub
Learn how to install the Cost Management Metrics Operator from the OpenShift Container Platform web console.
Prerequisites
- You logged in to the OpenShift Container Platform web console and have cluster administrator privileges.
Procedure
-
Log in to the OpenShift Container Platform web console and click
. - Click Cost Management Metrics Operator.
-
When the Install Operator window appears, select the
costmanagement-metrics-operator
namespace. If the namespace does not exist, we create it for you. - Click Cost Management Metrics Operator appears in the Installed Operators tab under Project: all projects or Project: costmanagement-metrics-operator. . After a short wait,
If a proxy with a custom CA certificate, you must create additional configurations to inject this certificate into Cost Management Metrics Operator. For more details, see Injecting a custom CA certificate in the OpenShift Container Platform documentation.
1.3. Optional: Installing the cost management operator by using the CLI
If you are automating cluster creation, you can optionally install the Cost Management Metrics Operator by using the OpenShift CLI instead of OperatorHub. In the OpenShift Container Platform CLI, you can create an integration for your OpenShift Container Platform cluster in cost management. If you use service authentication, you must configure your Operator to use it.
Prerequisites
-
You installed the OpenShift CLI,
oc
. - You have cluster administrator privileges for your OpenShift Container Platform cluster.
Procedure
To verify the package manifests have the supported install modes and available channels, enter the following command:
oc describe packagemanifests costmanagement-metrics-operator -n openshift-marketplace
Create an
OperatorGroup
object and a subscription object.- To create a subscription object, see the OpenShift documentation Installing from OperatorHub using the CLI.
If you are not using token authentication, configure your Operator to use service account authorization. To use this method, add your service account to a User Access Group that has a Cloud Administrator role. Ensure the service account inherits the permissions of the user group.
For more information, see Limiting access to cost managment resources.
-
Retrieve your
client_id
andclient_secret
from the Red Hat Hybrid Cloud Console service account. Encode the value of your service account’s
client_id
in base64. In your terminal, enter:echo -n "<red_hat_service_account_client_id>" | base64
Encode the value of your service account’s `client_secret`in base64. In your terminal, enter:
echo -n "<red_hat_service_account_client_secret>" | base64
-
Retrieve your
Create a YAML file to store your secrets. Paste the
client_id
andclient_secret
in thedata.client_id
anddata.client_secret
fields.Example.yaml
kind: Secret apiVersion: v1 metadata: name: service-account-auth-secret namespace: costmanagement-metrics-operator data: client_id: <base64_encoded_red_hat_service_account_client_id> client_secret: <base64_encoded_red_hat_service_account_client_secret>
Deploy your secret YAML file with the following command:
oc apply -f example.yaml
To use service authentication for the cost management Operator, edit the custom resource definition for the Operator. You must edit the custom resource example YAML so that
authentication.type
is set toservice-account
. You must also add a line so thatauthentication.secret_name
is set to the name of your secret. In this earlier example, the name of the secret isservice-account-auth-secret
.Custom resource example
kind: CostManagementMetricsConfig apiVersion: costmanagement-metrics-cfg.openshift.io/v1beta1 metadata: name: costmanagementmetricscfg-sample-v1beta1 namespace: costmanagement-metrics-operator spec: authentication: type: service-account secret_name: service-account-auth-secret packaging: max_reports_to_store: 30 max_size_MB: 100 prometheus_config: collect_previous_data: true context_timeout: 120 disable_metrics_collection_cost_management: false disable_metrics_collection_resource_optimization: false source: check_cycle: 1440 create_source: false name: '' upload: upload_cycle: 360 upload_toggle: true
To create an integration automatically without using the wizard in Red Hat Hybrid Cloud Console, edit the custom resource example YAML so that
source.create_source
is set totrue
andsource.name
is set to a name. In this example, the name is set tocluster2
.Source creation example
kind: CostManagementMetricsConfig apiVersion: costmanagement-metrics-cfg.openshift.io/v1beta1 metadata: name: costmanagementmetricscfg-sample-v1beta1 namespace: costmanagement-metrics-operator spec: authentication: type: service-account secret_name: service-account-auth-secret packaging: max_reports_to_store: 30 max_size_MB: 100 prometheus_config: collect_previous_data: true context_timeout: 120 disable_metrics_collection_cost_management: false disable_metrics_collection_resource_optimization: false source: check_cycle: 1440 create_source: true name: 'cluster2' upload: upload_cycle: 360 upload_toggle: true
If a proxy with a custom CA certificate, you must create additional configurations to inject this certificate into Cost Management Metrics Operator. For more details, see Injecting a custom CA certificate in the OpenShift Container Platform documentation.
1.4. Configuring the operator instance
After you install the costmanagement-metrics-operator
instance, you can configure it in the OpenShift Container Platform web console.
Prerequisites
- You logged in to the OpenShift Container Platform web console and have cluster administrator privileges.
- Cost Management Metrics Operator appears in the Installed Operators tab.
Procedure
-
From Name in the list of installed operators, click Cost Management Metrics Operator. An
window appears. -
From Details, click + Create Instance. An
window appears. - Select YAML view to view and modify the contents of the YAML configuration file.
Create a cost management instance for the Cost Management Metrics Operator by editing the following two lines in the YAML file:
create_source: false name: ''
Change
false
totrue
.- If you want to edit other configurations, see Configurable parameters.
Change
''
to the name of your integration. If you do not provide a name, the operator defaults to the cluster ID.Example
create_source: true name: my-openshift-cost-source
- Click .
1.5. Troubleshooting issues with your Cost Management Operator
Troubleshoot problems that might occur when you install the Cost Management Operator.
1.5.1. Verify the YAML file is propery configured
To verify that the cost management operator is functioning correctly, check that your YAML file is properly configured.
Prerequisites
- You have access to the OpenShift Container Platform web console.
- You can view the content in the Installed Operators tab.
Procedure
- Click the Installed Operators tab.
- In the list of installed operators, click Cost Management Metrics Operator.A metrics operator window opens.
- Click the CostManagementMetricsConfig tab to show a list of the configuration file names.
-
In the file name list, click the configuration file that you want to verify. In the default installation, the file name is
costmanagementmetricscfg-sample
. A Details window opens. Click
and check the following items:prometheus_configured
andprometheus_connected
should be set totrue
:prometheus: last_query_start_time: '2021-01-25T20:59:06Z' last_query_success_time: '2021-01-25T20:59:06Z' prometheus_configured: true prometheus_connected: true service_address: 'https://thanos-querier.openshift-monitoring.svc:9091' skip_tls_verification: false
ingress_path
,last_successful_upload_time
,last_upload_status
, andlast_upload_time
should all have content:upload: ingress_path: /api/ingress/v1/upload last_successful_upload_time: '2021-01-25T20:59:35Z' last_upload_status: 202 Accepted last_upload_time: '2021-01-25T20:59:35Z' upload: true upload_cycle: 360 upload_wait: 28 validate_cert: true
To collect data, cost management uses Prometheus queries that you can find in the source code.
1.5.2. Large OpenShift deployment issues
If your deployment is large, the pod might be stopped with an ``OOMkilled`` message using the default resource requests. Increase the pod memory to 2GiB or more for the initial data ingestion. After the initial data ingestion completes, pod memory can be reduced. The exact memory requirements for the pod vary based on the size of the OpenShift cluster.
1.6. Configuring basic authentication for cost operator
You can configure the cost operator to use basic authentication. By default, the cost operator uses token authentication.
Basic authentication is deprecated and will be removed December 31, 2024. Red Hat will provide bug fixes and support for this feature during the current release lifecycle, but this feature will no longer receive enhancements.
There are two procedures required when you configure basic authentication.
1.6.1. Creating the secret key/value pair for basic authentication
Prerequisites
- You are logged into the OpenShift Container Platform web console with cluster administrator privileges.
- The Cost Management Metrics Operator appears in the Installed Operators tab.
- You have a username and password for your Red Hat Hybrid Cloud Console account.
Procedure
This procedure describes setting up basic authentication using the OpenShift Container Platform web console.
-
In the OpenShift Container Platform web console, click the
tab. - In the Secrets window, select Project:costmanagement-metrics-operator from the dropdown.
- Click the Create > Key/Value Secret selection.
In the Create Key/Value Secret window enter the following information to create a new secret that contains a username key and a password key and a value for each key.
Enter a name for your secret in the Secret Name field.
basic-auth-secret
In the Key field, enter
username
.username
In the Value field for the key
username
, enter the actual username for your authorized Red Hat Hybrid Cloud Console user account.Value for username key
your_red_hat_username
-
Click the
Add Key/Value
link to add the required password key name and value. In the Key field, enter
password
.password
In the Value field for the key
password
, enter the actual password for your authorized Red Hat Hybrid Cloud Console user account.Value for password key
your_red_hat_password
- Click the Create button to complete the creation of your basic authorization secret.
- After you click the Create button, you can verify the key/value details for the secret.
1.6.2. Modifying the YAML file
Modify the Cost Management Metrics Operator API YAML file to use basic authentication with a secret username and password key/value pair.
Prerequisites
- You are logged into the OpenShift Container Platform web console with cluster administrator privileges.
- You created a secret name for the username and password key/value pair.
- The Cost Management Metrics Operator is installed.
Procedure
-
Click on the
tab. - Locate the row that contains Cost Management Metrics Operator and click the Cost Management Metrics Operator link that is under the Provided APIs heading.
When the CostManagementMetricsConfig window appears, click the configuration file in the Name column.
The default name is
costmanagementmetricscfg-sample
.-
When the
costmanagementmetricscfg-sample
window appears, click in the YAML tab to open an edit and view window. Locate the following lines in the YAML view.
authentication: type: token
-
Change
type: token
totype: basic
. Insert a new line for
secret_name
. Enter the value forsecret_name
, which is the name you previously created.Example
authentication: secret_name: basic-auth-secret type: basic
- Click the Save button. A confirmation message appears.
1.7. Configuring service account authentication for the cost operator
To configure service account authentication, complete the following two tasks:
1.7.1. Creating the secret key/value pair for service account authentication
Prerequisites
- You are logged into the OpenShift Container Platform web console and have cluster administrator privileges.
- The Cost Management Metrics Operator appears in the Installed Operators tab.
-
You have a
client_id
andclient_secret
for your Red Hat Hybrid Cloud Console Service Account.
Procedure
The following procedure outlines how to set up service account authentication with the OpenShift Container Platform web console:
-
In the OpenShift Container Platform web console, click
. - In the Secrets window, select Project:costmanagement-metrics-operator from the drop-down.
- Click Create > Key/Value Secret.
To create a new secret with a
client_id
key and aclient_secret
key, enter the following information in the Create Key/Value Secret window:In Secret Name, enter a name for your secret:
service-account-auth-secret
In Key, enter
client_id
.client_id
In the Value field for the key
client_id
, enter the Client ID for your authorized Red Hat Hybrid Cloud Console user account.red_hat_service_account_client_id
-
Click
Add Key/Value
to add theclient_secret
for the key name and value. In Key, enter
client_secret
:client_secret
In the Value field for the key
client_secret
, enter the Client secret for your authorized Red Hat Hybrid Cloud Console user account.red_hat_service_account_client_secret
- Click to complete the creation of your service account authorization secret.
- Verify that the key/value details for the secret are correct.
1.7.2. Modifying the YAML file
To use authentication with a Client ID and Client secret key/value pair, you must modify the Cost Management Metrics Operator API YAML file.
Prerequisites
- You are logged into the OpenShift Container Platform web console and have cluster administrator privileges.
- You created a secret name for the Client ID and Client secret key/value pair.
- The Cost Management Metrics Operator is installed.
Procedure
-
Click
. - Locate the row that contains Cost Management Metrics Operator and click the Cost Management Metrics Operator link that is under the Provided APIs heading.
When the CostManagementMetricsConfig window appears, click the configuration file in Name.
The default name is
costmanagementmetricscfg-sample
.-
When the
costmanagementmetricscfg-sample
window appears, click the YAML tab to edit and view the content. Locate the following lines in the YAML window that you opened in the previous step:
authentication: type: token
-
Change
type: token
totype: service-account
. Insert a new line for
secret_name
. Enter the value forsecret_name
, which is the name you previously created.Example
authentication: secret_name: service-account-auth-secret type: service-account
- Click . A confirmation message appears.
1.8. Manually creating an Openshift Container Platform integration
You can automatically create your OpenShift Container Platform integration by following the steps in Installing a cost operator. However, some situations, such as restricted network installations, require that you create an OpenShift Container Platform integration manually on Red Hat Hybrid Cloud Console.
Prerequisites
- You have an OpenShift Container Platform cluster installed.
- You are logged into the OpenShift Container Platform web console and have cluster administrator privileges.
Procedure
- From Red Hat Hybrid Cloud Console, click Settings Menu > Integrations.
- Click the Red Hat tab.
- Click Add a cloud integration wizard. , which opens the
- In Select your integration type, click .
- In Application, click cost management. Then click .
- Enter a name in Integration name. Then click .
-
In a new tab, access the OpenShift Container Platform web console. Go to
and copy your Cluster Identifier. - Back in cost management, enter your Cluster Identifier. Then click .
- Review the details and click to create the integration.
1.9. Updating operator resources
The Cost Management Metrics Operator comes with a finite amount of resources. On larger clusters, the Cost Management Metrics Operator might run out of memory when it processes all of the metric data from Prometheus.
1.9.1. Default resources
The Cost Management Metrics Operator has the following resources by default:
Limits:
- CPU: 500m
- memory: 500Mi
Requests:
- CPU: 100m
- memory: 20Mi
1.9.2. Increasing resources
If the standard resources do not meet your needs, complete the following steps to increase the resources that are available to the operator:
- Go to the OpenShift Container Platform web console.
- From Installed Operators, click .
- Click the Subscription tab. Then click the Actions drop-down and select Edit Subscription.
- In the YAML file that appears, edit the deployment resources with values that meet the CPU and memory needs of your cluster:
kind: Subscription metadata: ... spec: ... config: resources: <<<<< limits: cpu: 500m memory: 500Mi requests: cpu: 200m memory: 100Mi
The operator is now redeployed and Deployment shows the new resources.
For more information about .spec.config.resources
, see the API documentation.
1.10. Adding a restricted network integration
You can install OpenShift Container Platform on a restricted network that does not have access to the internet.
The procedure to add an OpenShift Container Platform cluster operating on a restricted network as a cost management integration is different in the following ways:
- Operator Lifecycle Manager is configured to install and run local integrations.
-
The
costmanagement-metrics-operator
is configured to store cost report CSV files locally using a persistent volume claim (PVC). - Cost reports stored in the PVC are downloaded to a workstation.
- An OpenShift Container Platform integration is created manually.
- Cost reports are uploaded to Red Hat Hybrid Cloud Console from your workstation.
1.10.1. Installing the cost management operator on a restricted network
Operator Lifecycle Manager (OLM) cannot access the OpenShift Container Platform clusters that are installed on restricted networks because remote integrations require full Internet connectivity. In these situations, you must install and configure OLM to run locally.
Prerequisites
- You installed an OpenShift Container Platform cluster.
- You have a workstation with unrestricted network access.
- You logged in to the OpenShift Container Platform web console and have cluster administrator privileges.
Procedure
Complete the following OpenShift Container Platform procedure to create a local mirror of the
costmanagement-metrics-operator
: Using Operator Lifecycle Manager on restricted networks.NoteThe
costmanagement-metrics-operator
is in theredhat-operators
catalog in theregistry.redhat.io/redhat/redhat-operator-index:v4.11
index.Prune unwanted objects from the index before you push to the mirrored registry, but do not delete the
costmanagement-metrics-operator
package.-
Log in to the OpenShift Container Platform web console and click
. - Click Cost Management Metrics Operator.
-
The Install Operator window should open. Select the
costmanagement-metrics-operator
namespace that you want to install. If the namespace does not exist, it gets created. - Click .
Verification steps
- After a short wait, Cost Management Metrics Operator appears in the Installed Operators tab in Project: all projects or Project: costmanagement-metrics-operator.
Additional resources
- For more details on the Operator Lifecycle Manager, see What is Operator Lifecycle Manager?
1.10.2. Configuring the Cost Operator on a restricted network
Learn how to run the costmanagement-metrics-operator
on a restricted network.
Prerequisites
-
You installed
costmanagement-metrics-operator
. - You logged into the OpenShift Container Platform web console and have cluster administrator privileges.
Procedure
-
From the OpenShift Container Platform web console, select Operators > Installed Operators >
costmanagement-metrics-operator
> CostManagementMetricsConfig > Create Instance. Set a storage amount. If you do not specify an amount, the operator creates a default persistent volume claim (PVC) called
costmanagement-metrics-operator-data
with 10Gi of storage.NoteTo configure the
costmanagement-metrics-operator
to use a different PVC, editvolume_claim_template
in YAML view.- Select YAML view.
-
Enter a value in
max_reports_to_store
to set the maximum number of reports that you want to store. Enter a value in
upload_cycle
to set how many minutes you want to pass between each report generation.packaging: max_reports_to_store: 30 max_size_MB: 100
upload: upload_cycle: 360
ImportantThe
costmanagement-metrics-operator
creates one report every 360 minutes by default. The default value of 30 reports and 360 minutes gives you 7.5 days of reports.After the maximum number of reports generate, any subsequent reports replace the oldest report in storage. To avoid losing reports, download them from your PVC.
Set
upload_toggle
tofalse
:upload: upload_cycle: 360 upload_toggle: false
Set
source
to empty braces:source: {}
Set
authentication
to empty braces:authentication: {}
- Click .
Verification steps
- Select the CostManagementMetricsConfig that you created.
- Click .
Verify that a report was created by viewing the data in
packaging
:packaging: last_successful_packaging_time: `current date and time` max_reports_to_store: 30 max_size_MB: 100 number_of_reports_stored: 1 packaged_files: - >- /tmp/costmanagement-metrics-operator-reports/upload/YYYYMMDDTHHMMSS-cost-mgmt.tar.gz
NoteAfter configuration,
costmanagement-metrics-operator
generates an initial report. These reports are inpackaged_files
.
1.10.3. Downloading cost reports
If you configured the costmanagement-metrics-operator
to run on a restricted network, the reports from the persistent volume claims (PVC) are temporarily stored in a workstation. Copy the reports to an unrestricted network.
The default configuration saves one week of reports. To avoid losing metrics data, download the reports locally and upload them to Red Hat Hybrid Cloud Console weekly.
You can configure any PVC, but by default, most PVCs are ReadWriteOnce
. For ReadWriteOnce
PVCs, the volume-shell
must be attached to the same node as the operator pod.
Prerequisites
- You have a workstation with unrestricted network access.
-
costmanagement-metrics-operator
reports in your PVC.
Procedure
Create the following pod and set
claimName
to the PVC with the report data:kind: Pod apiVersion: v1 metadata: name: volume-shell namespace: costmanagement-metrics-operator spec: volumes: - name: costmanagement-metrics-operator-reports persistentVolumeClaim: claimName: costmanagement-metrics-operator-data containers: - name: volume-shell image: busybox command: ['sleep', '3600'] volumeMounts: - name: costmanagement-metrics-operator-reports mountPath: /tmp/costmanagement-metrics-operator-reports
Run
rsync
to copy all of the files from the PVC to a local folder:$ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder
- Confirm that the files were copied.
Run the following command to connect to the pod and delete the contents of the upload folder:
$ oc rsh volume-shell $ rm /tmp/costmanagement-metrics-operator-reports/upload/*
(Optional) Run the following command to delete the pod that you used to connect to the PVC:
$ oc delete -f volume-shell.yaml
Viewing your PVC usage
In the OpenShift tab in Red Hat Hybrid Cloud Console, your PVCs with the highest usage automatically populate under Persistent Volume Claims. To view all PVCs, click at the end of the section.
You can filter your PVC data by the following fields: * Persistent volume claim * Cluster * StorageClass
Additional resources
- For more information about PVCs, see Understanding persistent storage.
1.10.4. Uploading cost reports to console.redhat.com
You must manually upload locally stored cost reports from a restricted network to Red Hat Hybrid Cloud Console.
The default configuration saves one week of reports. Download the reports locally and upload them to Red Hat Hybrid Cloud Console weekly to avoid losing metrics data.
Prerequisites
-
You have
costmanagement-metrics-operator
reports downloaded locally. - You created an integration on Red Hat Hybrid Cloud Console. For more information, see Manually creating an Openshift Container Platform integration.
- You are a Red Hat account user with Organization Administrator entitlements.
- You have a workstation with unrestricted network access.
Procedure
To upload your reports to Red Hat Hybrid Cloud Console, make the following edit:
Set
USERNAME
andPASSWORD
to your Red Hat Hybrid Cloud Console login credentials and setFILE_NAME
to the report that you want to upload:$ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz" https://cloud.redhat.com/api/ingress/v1/upload -u USERNAME:PASS
Verification steps
- From cost management, click .
- On the OpenShift details page, confirm that you have OpenShift usage data for your cluster.