Chapter 12. Integrations 12.1. Integrating Serverless with the cost management service Cost management is an OpenShift Container Platform service that enables you to better understand and track costs for clouds and containers. It is based on the open source Koku project. 12.1.1. Prerequisites You have cluster administrator permissions. You have set up cost management and added an OpenShift Container Platform source . 12.1.2. Using labels for cost management queries Labels, also known as tags in cost management, can be applied for nodes, namespaces or pods. Each label is a key and value pair. You can use a combination of multiple labels to generate reports. You can access reports about costs by using the Red Hat hybrid console . Labels are inherited from nodes to namespaces, and from namespaces to pods. However, labels are not overridden if they already exist on a resource. For example, Knative services have a default app=<revision_name> label: Example Knative service default label apiVersion: serving.knative.dev/v1 kind: Service metadata: name: example-service spec: ... labels: app: <revision_name> ... If you define a label for a namespace, such as app=my-domain , the cost management service does not take into account costs coming from a Knative service with the tag app=<revision_name> when querying the application using the app=my-domain tag. Costs for Knative services that have this tag must be queried under the app=<revision_name> tag. 12.1.3. Additional resources Configure tagging for your sources Use the Cost Explorer to visualize your costs 12.2. Using NVIDIA GPU resources with serverless applications NVIDIA supports experimental use of GPU resources on OpenShift Container Platform. See OpenShift Container Platform on NVIDIA GPU accelerated clusters for more information about setting up GPU resources on OpenShift Container Platform. 12.2.1. Specifying GPU requirements for a service After GPU resources are enabled for your OpenShift Container Platform cluster, you can specify GPU requirements for a Knative service using the Knative ( kn ) CLI. Prerequisites The OpenShift Serverless Operator, Knative Serving and Knative Eventing are installed on the cluster. You have installed the Knative ( kn ) CLI. GPU resources are enabled for your OpenShift Container Platform cluster. You have created a project or have access to a project with the appropriate roles and permissions to create applications and other workloads in OpenShift Container Platform. Note Using NVIDIA GPU resources is not supported for IBM Z and IBM Power Systems. Procedure Create a Knative service and set the GPU resource requirement limit to 1 by using the --limit nvidia.com/gpu=1 flag: USD kn service create hello --image <service-image> --limit nvidia.com/gpu=1 A GPU resource requirement limit of 1 means that the service has 1 GPU resource dedicated. Services do not share GPU resources. Any other services that require GPU resources must wait until the GPU resource is no longer in use. A limit of 1 GPU also means that applications exceeding usage of 1 GPU resource are restricted. If a service requests more than 1 GPU resource, it is deployed on a node where the GPU resource requirements can be met. Optional. For an existing service, you can change the GPU resource requirement limit to 3 by using the --limit nvidia.com/gpu=3 flag: USD kn service update hello --limit nvidia.com/gpu=3 12.2.2. Additional resources Setting resource quotas for extended resources

Commands:
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: example-service spec: labels: app: <revision_name>
kn service create hello --image <service-image> --limit nvidia.com/gpu=1
kn service update hello --limit nvidia.com/gpu=3