Deploying Red Hat build of Trustee
Secure management and attestation of confidential containers workloads
Abstract
Preface Copy linkLink copied to clipboard!
Providing feedback on Red Hat documentation
You can provide feedback or report an error by submitting the Create Issue form in Jira:
- Ensure that you are logged in to Jira. If you do not have a Jira account, you must create a Red Hat Jira account.
- Launch the Create Issue form.
Complete the Summary, Description, and Reporter fields.
In the Description field, include the documentation URL, chapter or section number, and a detailed description of the issue.
- Click Create.
Chapter 1. About Red Hat build of Trustee Copy linkLink copied to clipboard!
Red Hat build of Trustee is a critical component of the confidential containers solution for OpenShift sandboxed containers. Red Hat build of Trustee enables secure management and attestation of confidential workloads running within Trusted Execution Environments (TEEs) on a Red Hat OpenShift Container Platform cluster.
Red Hat build of Trustee is a service that facilitates the deployment and management of confidential containers. It provides attestation and key management services to ensure the integrity and confidentiality of workloads running in TEEs.
You deploy Red Hat build of Trustee on a separate OpenShift Container Platform cluster in a trusted environment, not on the cluster that hosts the primary workload. This separation enhances security by isolating sensitive operations from the untrusted cloud infrastructure.
Red Hat build of Trustee performs the following key functions:
- Verifies the integrity of the TEE and the workloads running within it, ensuring that it only executes trusted code and data.
- Securely manages cryptographic keys and secrets required by confidential containers, protecting sensitive data from unauthorized access.
-
Simplifies the configuration of TEEs through the
KbsConfig
custom resource, enabling seamless integration with OpenShift Container Platform workflows.
By leveraging Red Hat build of Trustee, OpenShift Container Platform users can deploy confidential workloads using familiar tools while maintaining strong security guarantees, even on shared or third-party infrastructure.
Chapter 2. Deploying Red Hat build of Trustee for workloads running on Azure Copy linkLink copied to clipboard!
To ensure the confidentiality of confidential containers workloads running in an untrusted infrastructure, you must deploy Red Hat build of Trustee in a trusted environment.
Do not deploy Red Hat build of Trustee on a cloud provider.
You deploy Red Hat build of Trustee by performing the following steps:
- Install the Red Hat build of Trustee Operator.
- Create HTTPS secrets.
- Create the attestation token secret.
-
Create the
kbs-config
config map. -
Create the Reference Value Provider Service (RVPS) config map. Initially, you create an empty config map for the reference values. You update the values after you create
KBSConfig
custom resource (CR). Create the attestation policy config map.
ImportantIn a production environment, you must configure initdata to override the default permissive Kata Agent policy. See About initdata for details.
As a minimum requirement, you must disable
ExecProcessRequest
to prevent a cluster administrator from accessing sensitive data by running theoc exec
command on a confidential containers pod. See Customizing the Kata agent policy.- Create a TDX config map if your TEE is Intel Trust Domain Extensions.
- Optional: Create a secret for custom keys clients.
- Optional: Create a secret for container image signature verification.
- Create the container image signature verification policy. If you prefer not to use container image signature verification, you can create a policy that allows all images without signature verification. For production workloads, you must use signature verification to ensure container images are not tampered with.
- Create the resource policy config map.
-
Create the
KBSConfig
CR. - Create the cluster route.
- Create the authentication secret.
- Update the RVPS config map with the reference values.
- Verify the Red Hat build of Trustee configuration.
2.1. Prerequisites Copy linkLink copied to clipboard!
- You have installed the latest version of Red Hat OpenShift Container Platform in a trusted environment. For more information, see Installing OpenShift Container Platform on bare metal.
2.2. Installing the Red Hat build of Trustee Operator Copy linkLink copied to clipboard!
You install the Red Hat build of Trustee Operator on an OpenShift Container Platform cluster in a trusted environment.
Prerequisites
-
You have access to the cluster as a user with the
cluster-admin
role. -
You have installed the OpenShift CLI tool (
oc
).
Procedure
Create a
trustee-namespace.yaml
manifest file:apiVersion: v1 kind: Namespace metadata: name: trustee-operator-system
apiVersion: v1 kind: Namespace metadata: name: trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
trustee-operator-system
namespace by running the following command:oc create -f trustee-namespace.yaml
$ oc create -f trustee-namespace.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a
trustee-operatorgroup.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the operator group by running the following command:
oc create -f trustee-operatorgroup.yaml
$ oc create -f trustee-operatorgroup.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a
trustee-subscription.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the subscription by running the following command:
oc create -f trustee-subscription.yaml
$ oc create -f trustee-subscription.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify that the Operator is correctly installed by running the following command:
oc get csv -n trustee-operator-system
$ oc get csv -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow This command can take several minutes to complete.
Watch the process by running the following command:
watch oc get csv -n trustee-operator-system
$ watch oc get csv -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
NAME DISPLAY PHASE trustee-operator.v0.4.2 Trustee Operator 0.4.2 Succeeded
NAME DISPLAY PHASE trustee-operator.v0.4.2 Trustee Operator 0.4.2 Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. Creating HTTPS secrets Copy linkLink copied to clipboard!
Generate keys to securely launch Red Hat build of Trustee and enables services to use HTTPS.
Procedure
Set the
DOMAIN
variable for the cluster by running the following command:DOMAIN=$(oc get ingress.config/cluster -o jsonpath='{.spec.domain}')
$ DOMAIN=$(oc get ingress.config/cluster -o jsonpath='{.spec.domain}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set the
NS
variable for the Red Hat build of Trustee namespace by running the following command:NS=trustee-operator-system
$ NS=trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set the
ROUTE_NAME
variable by running the following command:ROUTE_NAME=kbs-service
$ ROUTE_NAME=kbs-service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set the
ROUTE
variable to the full DNS name by running the following command:ROUTE="${ROUTE_NAME}-${NS}.${DOMAIN}"
$ ROUTE="${ROUTE_NAME}-${NS}.${DOMAIN}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Generate a private SSL/TLS key and certificate for Red Hat build of Trustee by running the following command:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<custom_cn>
is a custom CN. For example:kbs-trustee-operator-system
. -
<custom_org>
is a name of your organization.
-
Create the
kbs-https-certificate
secret in thetrustee-operator-system
namespace by running the following command:oc create secret generic kbs-https-certificate --from-file=tls.crt -n trustee-operator-system
$ oc create secret generic kbs-https-certificate --from-file=tls.crt -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
kbs-https-key
secret in thetrustee-operator-system
namespace by running the following command:oc create secret generic kbs-https-key --from-file=tls.key -n trustee-operator-system
$ oc create secret generic kbs-https-key --from-file=tls.key -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4. Creating the attestation token secret Copy linkLink copied to clipboard!
Generate an attestation token key for Red Hat build of Trustee.
Procedure
Generate a private elliptic curve SSL key called
token.key
by running the following command:openssl ecparam -name prime256v1 -genkey -noout -out token.key
$ openssl ecparam -name prime256v1 -genkey -noout -out token.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Generate a self-signed SSL/TLS certificate from the private SSL key by running the following command:
openssl req -new -x509 -key token.key -out token.crt -days 365 \ -subj "/CN=<custom_cn>/O=<custom_org>"
$ openssl req -new -x509 -key token.key -out token.crt -days 365 \ -subj "/CN=<custom_cn>/O=<custom_org>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<custom_cn>
: Specify the Common Name. For example:kbs-trustee-operator-system
. -
<custom_org>
: Specify your organization name.
-
Create the
attestation-token
secret from the SSL/TLS key and certificate in thetrustee-operator-system
namespace:oc create secret generic attestation-token \ --from-file=token.crt \ --from-file=token.key \ -n trustee-operator-system
$ oc create secret generic attestation-token \ --from-file=token.crt \ --from-file=token.key \ -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. Creating the kbs-config config map Copy linkLink copied to clipboard!
You create the kbs-config
config map to configure Red Hat build of Trustee.
Procedure
Create a
kbs-config-cm.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the config map by running the following command:
oc create -f kbs-config-cm.yaml
$ oc create -f kbs-config-cm.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6. Creating the RVPS config map Copy linkLink copied to clipboard!
You create the Reference Value Provider Service (RVPS) config map, which specifies the reference values for your Trusted Execution Environment (TEE).
The client collects measurements from the running software, the TEE hardware and firmware and it submits a quote with the claims to the Attestation Server. These measurements must match the trusted digests registered to Red Hat build of Trustee. This process ensures that the confidential VM (CVM) is running the expected software stack and has not been tampered with.
The data.reference-values.json
stanza must be present, but it can be empty.
Initially, you create an empty RVPS config map. Later, you will update the reference values for your TEE.
Procedure
Create an
rvps-configmap.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the RVPS config map by running the following command:
oc create -f rvps-configmap.yaml
$ oc create -f rvps-configmap.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7. Creating the attestation policy config map Copy linkLink copied to clipboard!
You create an attestation policy config map to define attestation policies for Red Hat build of Trustee.
The attestation policy follows the Open Policy Agent specification.
This policy checks the Platform Configuration Register (PCR) values 03, 08, 09, 11, and 12 values against the reference values to ensure that the confidential containers pod uses the specified restrictive Kata agent policy and that the Red Hat pod VM image has not been altered. For details, see Linux TPM PCR Registry in the UAPI Group Specifications documentation.
Procedure
Create an
attestation-policy.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the attestation policy config map by running the following command:
oc create -f attestation-policy.yaml
$ oc create -f attestation-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.8. Creating a TDX config map Copy linkLink copied to clipboard!
If you use Intel Trust Domain Extensions (TDX), you must create a config map.
Procedure
Create a
tdx-config.yaml
manifest file according to the following example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the TDX config map by running the following command:
oc create -f tdx-config.yaml
$ oc create -f tdx-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.9. Creating a secret with custom keys for clients Copy linkLink copied to clipboard!
You can create a secret that contains one or more custom keys for Red Hat build of Trustee clients.
In this example, the kbsres1
secret has two entries (key1
, key2
), which the clients retrieve. You can add additional secrets according to your requirements by using the same format.
Prerequisites
- You have created one or more custom keys.
Procedure
Create a secret for the custom keys according to the following example:
oc create secret generic kbsres1 \ --from-literal key1=<custom_key1> \ --from-literal key2=<custom_key2> \ -n trustee-operator-system
$ oc create secret generic kbsres1 \ --from-literal key1=<custom_key1> \
1 --from-literal key2=<custom_key2> \ -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Specify a custom key.
The
kbsres1
secret is specified in thespec.kbsSecretResources
key of theKbsConfig
custom resource.
2.10. Creating a secret for container image signature verification Copy linkLink copied to clipboard!
If you use container image signature verification, you must create a secret that contains the public container image signing key.
The Red Hat build of Trustee Operator uses the secret to verify the signature, ensuring that only trusted and authenticated container images are deployed in your environment.
You can use Red Hat Trusted Artifact Signer or other tools to sign container images.
Procedure
Create a secret for container image signature verification by running the following command:
oc create secret generic <type> \ --from-file=<tag>=./<public_key_file> \ -n trustee-operator-system
$ oc create secret generic <type> \
1 --from-file=<tag>=./<public_key_file> \
2 -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Record the
<type>
value. You must add this value to thespec.kbsSecretResources
key when you create theKbsConfig
custom resource.
2.11. Creating the container image signature verification policy Copy linkLink copied to clipboard!
You create the container image signature verification policy.
Signature verification is enabled by default. If this policy is missing, the pods will not start.
If you are not using container image signature verification, you create the policy without signature verification.
For more information, see containers-policy.json 5.
Procedure
Create a
security-policy-config.json
file according to the following examples:Without signature verification:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow With signature verification:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Specify the image repository for
transport
, for example,"docker":
. For more information, see containers-transports 5. - 2
- Specify the container registry and image, for example, "quay.io/my-image".
- 3
- Specify the type and tag of the container image signature verification secret that you created, for example,
img-sig/pub-key
.
Create the security policy by running the following command:
oc create secret generic security-policy \ --from-file=osc=./<security-policy-config.json> \ -n trustee-operator-system
$ oc create secret generic security-policy \ --from-file=osc=./<security-policy-config.json> \ -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Do not alter the secret type,
security-policy
, or the key,osc
.The
security-policy
secret is specified in thespec.kbsSecretResources
key of theKbsConfig
custom resource.
2.12. Creating the resource policy config map Copy linkLink copied to clipboard!
You configure the resource policy config map for the policy engine. This policy determines which resources are accessible to Red Hat build of Trustee.
This policy engine is different from the Attestation Service policy engine, which determines the validity of TEE evidence.
Procedure
Create a
resourcepolicy-configmap.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - policy.rego
-
The name of the resource policy,
policy.rego
, must match the resource policy defined in thekbs-config
config map. - package policy
- The resource policy follows the Open Policy Agent specification.
Create the resource policy config map by running the following command:
oc create -f resourcepolicy-configmap.yaml
$ oc create -f resourcepolicy-configmap.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.13. Creating the cluster route Copy linkLink copied to clipboard!
You create a secure route with edge TLS termination for the cluster where you installed Red Hat build of Trustee.
External ingress traffic reaches the router pods as HTTPS and passes on to the pods running in the trustee-operator-system
namespace as HTTP.
Procedure
Create an edge route by running the following command:
oc create route edge --service=kbs-service --port kbs-port \ -n trustee-operator-system
$ oc create route edge --service=kbs-service --port kbs-port \ -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteCurrently, only a route with a valid CA-signed certificate is supported. You cannot use a route with a self-signed certificate.
Set the
TRUSTEE_HOST
variable by running the following command:TRUSTEE_HOST=$(oc get route -n trustee-operator-system kbs-service \ -o jsonpath={.spec.host})
$ TRUSTEE_HOST=$(oc get route -n trustee-operator-system kbs-service \ -o jsonpath={.spec.host})
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify the route by running the following command:
echo $TRUSTEE_HOST
$ echo $TRUSTEE_HOST
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
kbs-service-trustee-operator-system.apps.memvjias.eastus.aroapp.io
kbs-service-trustee-operator-system.apps.memvjias.eastus.aroapp.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.14. Creating the authentication secret Copy linkLink copied to clipboard!
You create the authentication secret for Red Hat build of Trustee.
Procedure
Create a private key by running the following command:
openssl genpkey -algorithm ed25519 > privateKey
$ openssl genpkey -algorithm ed25519 > privateKey
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a public key by running the following command:
openssl pkey -in privateKey -pubout -out publicKey
$ openssl pkey -in privateKey -pubout -out publicKey
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a secret by running the following command:
oc create secret generic kbs-auth-public-key \ --from-file=publicKey -n trustee-operator-system
$ oc create secret generic kbs-auth-public-key \ --from-file=publicKey -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify the secret by running the following command:
oc get secret -n trustee-operator-system
$ oc get secret -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.15. Creating the KbsConfig custom resource Copy linkLink copied to clipboard!
Create the KbsConfig
custom resource (CR) to launch Red Hat build of Trustee.
Procedure
Create a
kbsconfig-cr.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
kbsSecretResources
. Specify thetype
value of the container image signature verification secret if you created the secret, for example,img-sig
. -
Uncomment
tdxConfigSpec.kbsTdxConfigMapName: tdx-config
for Intel Trust Domain Extensions. -
Uncomment
kbsServiceType: <service_type>
if you create a service type, other than the defaultClusterIP
service, to expose applications within the cluster external traffic. You can specifyNodePort
,LoadBalancer
, orExternalName
.
-
Create the
KbsConfig
CR by running the following command:oc create -f kbsconfig-cr.yaml
$ oc create -f kbsconfig-cr.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.16. Updating the RVPS config map Copy linkLink copied to clipboard!
You update the Reference Value Provider Service (RVPS) config map with expected measurements, including the Platform Configuration Register (PCR) 8 value, for the trusted execution environment. Red Hat build of Trustee uses these measurements to verify the attestation evidence.
The workload cluster administrator calculates the PCR8 value by performing a SHA256 hash on a configuration or policy file such as initdata
:
hash=$(sha256sum <config_file> | cut -d' ' -f1) initial_pcr=0000000000000000000000000000000000000000000000000000000000000000 PCR8_HASH=$(echo -n "$initial_pcr$hash" | xxd -r -p | sha256sum | cut -d' ' -f1)
$ hash=$(sha256sum <config_file> | cut -d' ' -f1)
$ initial_pcr=0000000000000000000000000000000000000000000000000000000000000000
$ PCR8_HASH=$(echo -n "$initial_pcr$hash" | xxd -r -p | sha256sum | cut -d' ' -f1)
Prerequisites
- PCR8 value, expiration, and algorithm, created by the workload cluster administrator
Procedure
Create an
rvps-configmap-update.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - <PCR8_HASH>
-
Specify the
PCR8_HASH
value.
Update the RVPS config map by running the following command:
oc apply -f rvps-configmap-update.yaml
$ oc apply -f rvps-configmap-update.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.17. Verifying the configuration Copy linkLink copied to clipboard!
You verify the Red Hat build of Trustee configuration by checking its pods and logs.
Procedure
Set the default project by running the following command:
oc project trustee-operator-system
$ oc project trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Check the pods by running the following command:
oc get pods -n trustee-operator-system
$ oc get pods -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
NAME READY STATUS RESTARTS AGE trustee-deployment-8585f98449-9bbgl 1/1 Running 0 22m trustee-operator-controller-manager-5fbd44cd97-55dlh 2/2 Running 0 59m
NAME READY STATUS RESTARTS AGE trustee-deployment-8585f98449-9bbgl 1/1 Running 0 22m trustee-operator-controller-manager-5fbd44cd97-55dlh 2/2 Running 0 59m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set the
POD_NAME
environmental variable by running the following command:POD_NAME=$(oc get pods -l app=kbs -o jsonpath='{.items[0].metadata.name}' -n trustee-operator-system)
$ POD_NAME=$(oc get pods -l app=kbs -o jsonpath='{.items[0].metadata.name}' -n trustee-operator-system)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Check the pod logs by running the following command:
oc logs -n trustee-operator-system $POD_NAME
$ oc logs -n trustee-operator-system $POD_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Chapter 3. Deploying Red Hat build of Trustee for workloads running on IBM Z and IBM LinuxONE Copy linkLink copied to clipboard!
To ensure the confidentiality of confidential containers workloads running in an untrusted infrastructure, you must deploy Red Hat build of Trustee in a trusted environment.
You deploy Red Hat build of Trustee by performing the following steps:
- Install the Red Hat build of Trustee Operator.
-
Create the
kbs-config
config map. - Create the Reference Value Provider Service (RVPS) config map.
- Configure the IBM Secure Execution certificates and keys.
- Create the IBM persistent storage components.
Create the attestation policy config map.
ImportantIn a production environment, you must configure initdata to override the default permissive Kata Agent policy. See About initdata for details.
As a minimum requirement, you must disable
ExecProcessRequest
to prevent a cluster administrator from accessing sensitive data by running theoc exec
command on a confidential containers pod. See Customizing the Kata agent policy.- Optional: Create a secret for custom keys clients.
- Optional: Create a secret for container image signature verification.
- Create the container image signature verification policy. If you prefer not to use container image signature verification, you can create a policy that allows all images without signature verification. For production workloads, you must use signature verification to ensure container images are not tampered with.
- Create the resource policy config map.
-
Create the
KBSConfig
CR. - Create the cluster route.
- Create the authentication secret.
- Verify the Red Hat build of Trustee configuration.
3.1. Prerequisites Copy linkLink copied to clipboard!
- You have installed the latest version of Red Hat OpenShift Container Platform in a trusted environment. For more information, see Installing OpenShift Container Platform on bare metal.
- You are using LinuxONE Emperor 4.
- You have enabled Secure Unpack Facility on your Logical Partition (LPAR), which is necessary for the IBM Secure Execution. For more information, see Enabling the KVM host for IBM Secure Execution.
3.2. Installing the Red Hat build of Trustee Operator Copy linkLink copied to clipboard!
You install the Red Hat build of Trustee Operator on an OpenShift Container Platform cluster in a trusted environment.
Prerequisites
-
You have access to the cluster as a user with the
cluster-admin
role. -
You have installed the OpenShift CLI tool (
oc
).
Procedure
Create a
trustee-namespace.yaml
manifest file:apiVersion: v1 kind: Namespace metadata: name: trustee-operator-system
apiVersion: v1 kind: Namespace metadata: name: trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
trustee-operator-system
namespace by running the following command:oc create -f trustee-namespace.yaml
$ oc create -f trustee-namespace.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a
trustee-operatorgroup.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the operator group by running the following command:
oc create -f trustee-operatorgroup.yaml
$ oc create -f trustee-operatorgroup.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a
trustee-subscription.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the subscription by running the following command:
oc create -f trustee-subscription.yaml
$ oc create -f trustee-subscription.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify that the Operator is correctly installed by running the following command:
oc get csv -n trustee-operator-system
$ oc get csv -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow This command can take several minutes to complete.
Watch the process by running the following command:
watch oc get csv -n trustee-operator-system
$ watch oc get csv -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
NAME DISPLAY PHASE trustee-operator.v0.4.2 Trustee Operator 0.4.2 Succeeded
NAME DISPLAY PHASE trustee-operator.v0.4.2 Trustee Operator 0.4.2 Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. Creating the kbs-config config map Copy linkLink copied to clipboard!
You create the kbs-config
config map to configure Red Hat build of Trustee.
The following configuration example turns off security features. It is not meant for a production environment.
Procedure
Create a
kbs-config-cm.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the config map by running the following command:
oc create -f kbs-config-cm.yaml
$ oc create -f kbs-config-cm.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. Creating the RVPS config map Copy linkLink copied to clipboard!
You create the Reference Value Provider Service (RVPS) config map, which specifies the reference values for your Trusted Execution Environment (TEE).
The client collects measurements from the running software, the TEE hardware and firmware and it submits a quote with the claims to the Attestation Server. These measurements must match the trusted digests registered to Red Hat build of Trustee. This process ensures that the confidential VM (CVM) is running the expected software stack and has not been tampered with.
The data.reference-values.json
stanza must be present, but it can be empty.
Procedure
Create an
rvps-configmap.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the RVPS config map by running the following command:
oc create -f rvps-configmap.yaml
$ oc create -f rvps-configmap.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5. Configuring the IBM Secure Execution certificates and keys Copy linkLink copied to clipboard!
You must configure the IBM Secure Execution (SE) certificates and keys for your worker nodes.
Prerequisites
- You have the IP address of the bastion node.
- You have the internal IP addresses of the worker nodes.
Procedure
Generate the Key Broker Service (KBS) certificate and key by performing the following steps:
Create the
kbs.conf
configuration file according to the following example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Generate the KBS key and self-signed certificate by running the following command:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy the KBS key to the
ibmse
directory by running the following command:cp kbs.key /tmp/ibmse/kbs.key
$ cp kbs.key /tmp/ibmse/kbs.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy the KBS certificate to the
ibmse
directory by running the following command:cp kbs.crt /tmp/ibmse/kbs.crt
$ cp kbs.crt /tmp/ibmse/kbs.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Obtain the attestation policy fields by performing the following steps:
Create a directory to download the
GetRvps.sh
script by running the following command:mkdir -p Rvps-Extraction/
$ mkdir -p Rvps-Extraction/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Download the script by running the following command:
wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/GetRvps.sh -O $PWD/GetRvps.sh
$ wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/GetRvps.sh -O $PWD/GetRvps.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a subdirectory by running the following command:
mkdir -p Rvps-Extraction/static-files
$ mkdir -p Rvps-Extraction/static-files
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Go to the
static-files
directory by running the following command:cd Rvps-Extraction/static-files
$ cd Rvps-Extraction/static-files
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Download the
pvextract-hdr
tool by running the following command:wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/static-files/pvextract-hdr -O $PWD/pvextract-hdr
$ wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/static-files/pvextract-hdr -O $PWD/pvextract-hdr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Make the tool executable by running the following command:
chmod +x pvextract-hdr
$ chmod +x pvextract-hdr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Download the
se_parse_hdr.py
script by running the following command:wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/static-files/se_parse_hdr.py -O $PWD/se_parse_hdr.py
$ wget https://github.com/openshift/sandboxed-containers-operator/raw/devel/scripts/rvps-extraction/static-files/se_parse_hdr.py -O $PWD/se_parse_hdr.py
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy your Host Key Document (HKD) certificate to the
static-files
directory by running the following command:cp ~/path/to/<hkd_cert.crt> .
$ cp ~/path/to/<hkd_cert.crt> .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow The
static-files
directory contains the following files:-
HKD.crt
-
pvextract-hdr
-
se_parse_hdr.py
-
Go to the
Rvps-Extraction
directory by running the following command:cd ..
$ cd ..
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Make the
GetRvps.sh
script executable by running the following command:chmod +x GetRvps.sh
$ chmod +x GetRvps.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Run the script:
./GetRvps.sh
$ ./GetRvps.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Enter
2
to generate the Reference Value Provider Service from the volume:Please enter your choice: 2
Please enter your choice: 2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Enter
fa-pp
for the libvirt pool name:Enter the Libvirt Pool Name: fa-pp
Enter the Libvirt Pool Name: fa-pp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Enter the libvirt gateway URI:
Enter the Libvirt URI Name: <libvirt-uri>
Enter the Libvirt URI Name: <libvirt-uri>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Specify the
LIBVIRT_URI
value that you used to create the peer pods secret.
Enter
fa-pp-vol
for the libvirt volume name:Enter the Libvirt Volume Name: fa-pp-vol
Enter the Libvirt Volume Name: fa-pp-vol
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Obtain the certificates and certificate revocation lists (CRLs) by performing the following steps:
Create a temporary directory for certificates by running the following command:
mkdir /tmp/ibmse/certs
$ mkdir /tmp/ibmse/certs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Download the
ibm-z-host-key-signing-gen2.crt
certificate by running the following command:wget https://www.ibm.com/support/resourcelink/api/content/public/ibm-z-host-key-signing-gen2.crt -O /tmp/ibmse/certs/ibm-z-host-key-signing-gen2.crt
$ wget https://www.ibm.com/support/resourcelink/api/content/public/ibm-z-host-key-signing-gen2.crt -O /tmp/ibmse/certs/ibm-z-host-key-signing-gen2.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Download the
DigiCertCA.crt
certificate by running the following command:wget https://www.ibm.com/support/resourcelink/api/content/public/DigiCertCA.crt -O /tmp/ibmse/certs/DigiCertCA.crt
$ wget https://www.ibm.com/support/resourcelink/api/content/public/DigiCertCA.crt -O /tmp/ibmse/certs/DigiCertCA.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a temporary directory for the CRLs by running the following command:
mkdir /tmp/ibmse/crls
$ mkdir /tmp/ibmse/crls
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Download the
ibm-z-host-key-gen2.crl
file by running the following command:wget https://www.ibm.com/support/resourcelink/api/content/public/ibm-z-host-key-gen2.crl -O /tmp/ibmse/crls/ibm-z-host-key-gen2.crl
$ wget https://www.ibm.com/support/resourcelink/api/content/public/ibm-z-host-key-gen2.crl -O /tmp/ibmse/crls/ibm-z-host-key-gen2.crl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Download the
DigiCertTrustedRootG4.crl
file by running the following command:wget http://crl3.digicert.com/DigiCertTrustedRootG4.crl -O /tmp/ibmse/crls/DigiCertTrustedRootG4.crl
$ wget http://crl3.digicert.com/DigiCertTrustedRootG4.crl -O /tmp/ibmse/crls/DigiCertTrustedRootG4.crl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Download the
DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl
file by running the following command:wget http://crl3.digicert.com/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl -O /tmp/ibmse/crls/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl
$ wget http://crl3.digicert.com/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl -O /tmp/ibmse/crls/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a temporary directory for the
hdr.bin
file by running the following command:mkdir -p /tmp/ibmse/hdr/
$ mkdir -p /tmp/ibmse/hdr/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy the
hdr.bin
file to thehdr
directory by running the following command:cp /root/Rvps-Extraction/output-files/hdr.bin /tmp/ibmse/hdr/
$ cp /root/Rvps-Extraction/output-files/hdr.bin /tmp/ibmse/hdr/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a temporary directory for Host Key Document (HKD) certificate by running the following command:
mkdir -p /tmp/ibmse/hkds
$ mkdir -p /tmp/ibmse/hkds
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy your HKD certificate to the
hkds
directory by running the following command:cp ~/path/to/<hkd_cert.crt> /tmp/ibmse/hkds/
$ cp ~/path/to/<hkd_cert.crt> /tmp/ibmse/hkds/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Generate the RSA keys:
Generate an RSA key pair by running the following command:
openssl genrsa -aes256 -passout pass:<password> -out /tmp/encrypt_key-psw.pem 4096
$ openssl genrsa -aes256 -passout pass:<password> -out /tmp/encrypt_key-psw.pem 4096
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Specify the RSA key password.
Create a temporary directory for the RSA keys by running the following command:
mkdir -p /tmp/ibmse/rsa
$ mkdir -p /tmp/ibmse/rsa
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create an
encrypt_key.pub
key by running the following command:openssl rsa -in /tmp/encrypt_key-psw.pem -passin pass:<password> -pubout -out /tmp/ibmse/rsa/encrypt_key.pub
$ openssl rsa -in /tmp/encrypt_key-psw.pem -passin pass:<password> -pubout -out /tmp/ibmse/rsa/encrypt_key.pub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create an
encrypt_key.pem
key by running the following command:openssl rsa -in /tmp/encrypt_key-psw.pem -passin pass:<password> -out /tmp/ibmse/rsa/encrypt_key.pem
$ openssl rsa -in /tmp/encrypt_key-psw.pem -passin pass:<password> -out /tmp/ibmse/rsa/encrypt_key.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Verify the structure of the
/tmp/ibmse
directory by running the following command:tree /tmp/ibmse
$ tree /tmp/ibmse
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy these files to the OpenShift Container Platform worker nodes by performing the following steps:
Create a compressed file from the
/tmp/ibmse
directory by running the following command:tar -czf ibmse.tar.gz -C /tmp/ ibmse
$ tar -czf ibmse.tar.gz -C /tmp/ ibmse
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy the
.tar.gz
file to the bastion node in your cluster by running the following command:scp /tmp/ibmse.tar.gz root@<ocp_bastion_ip>:/tmp
$ scp /tmp/ibmse.tar.gz root@<ocp_bastion_ip>:/tmp
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Specify the IP address of the bastion node.
Connect to the bastion node over SSH by running the following command:
ssh root@<ocp_bastion_ip>
$ ssh root@<ocp_bastion_ip>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy the
.tar.gz
file to each worker node by running the following command:scp /tmp/ibmse.tar.gz core@<worker_node_ip>:/tmp
$ scp /tmp/ibmse.tar.gz core@<worker_node_ip>:/tmp
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Specify the IP address of the worker node.
Extract the
.tar.gz
on each worker node by running the following command:ssh core@<worker_node_ip> 'sudo mkdir -p /opt/confidential-containers/ && sudo tar -xzf /tmp/ibmse.tar.gz -C /opt/confidential-containers/'
$ ssh core@<worker_node_ip> 'sudo mkdir -p /opt/confidential-containers/ && sudo tar -xzf /tmp/ibmse.tar.gz -C /opt/confidential-containers/'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Update the
ibmse
folder permissions by running the following command:ssh core@<worker_node_ip> 'sudo chmod -R 755 /opt/confidential-containers/ibmse/'
$ ssh core@<worker_node_ip> 'sudo chmod -R 755 /opt/confidential-containers/ibmse/'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Create the secrets in the cluster with the KBS key and certificate by performing the following steps:
Create a
kbs-https-certificate.yaml
manifest file according to the following example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the secret with the KBS certificate by running the following command:
oc create -f kbs-https-certificate.yaml
$ oc create -f kbs-https-certificate.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a
kbs-https-key.yaml
manifest file according to the following example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the secret with the KBS key by running the following command:
oc create -f kbs-https-key.yaml
$ oc create -f kbs-https-key.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6. Creating the IBM persistent storage components Copy linkLink copied to clipboard!
You must create the persistent volume (PV) and persistent volume claim (PVC) to mount the ibmse
folder on the trustee-deployment
pod.
Procedure
Create a
persistent-volume.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the persistent volume by running the following command:
oc create -f persistent-volume.yaml
$ oc create -f persistent-volume.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a
persistent-volume-claim.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the persistent volume claim by running the following command:
oc create -f persistent-volume-claim.yaml
$ oc create -f persistent-volume-claim.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7. Creating the attestation policy config map Copy linkLink copied to clipboard!
You create an attestation policy config map to define attestation policies for Red Hat build of Trustee.
The attestation policy follows the Open Policy Agent specification.
Procedure
Create an
attestation-policy.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow default.rego
- Do not modify the policy name.
<se.attestation_phkh>
-
Replace this with the attestation policy fields you obtained by running the
se_parse_hdr.py
script.
Create the attestation policy config map by running the following command:
oc create -f attestation-policy.yaml
$ oc create -f attestation-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.8. Creating a secret with custom keys for clients Copy linkLink copied to clipboard!
You can create a secret that contains one or more custom keys for Red Hat build of Trustee clients.
In this example, the kbsres1
secret has two entries (key1
, key2
), which the clients retrieve. You can add additional secrets according to your requirements by using the same format.
Prerequisites
- You have created one or more custom keys.
Procedure
Create a secret for the custom keys according to the following example:
oc create secret generic kbsres1 \ --from-literal key1=<custom_key1> \ --from-literal key2=<custom_key2> \ -n trustee-operator-system
$ oc create secret generic kbsres1 \ --from-literal key1=<custom_key1> \
1 --from-literal key2=<custom_key2> \ -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Specify a custom key.
The
kbsres1
secret is specified in thespec.kbsSecretResources
key of theKbsConfig
custom resource.
3.9. Creating a secret for container image signature verification Copy linkLink copied to clipboard!
If you use container image signature verification, you must create a secret that contains the public container image signing key.
The Red Hat build of Trustee Operator uses the secret to verify the signature, ensuring that only trusted and authenticated container images are deployed in your environment.
You can use Red Hat Trusted Artifact Signer or other tools to sign container images.
Procedure
Create a secret for container image signature verification by running the following command:
oc create secret generic <type> \ --from-file=<tag>=./<public_key_file> \ -n trustee-operator-system
$ oc create secret generic <type> \
1 --from-file=<tag>=./<public_key_file> \
2 -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Record the
<type>
value. You must add this value to thespec.kbsSecretResources
key when you create theKbsConfig
custom resource.
3.10. Creating the container image signature verification policy Copy linkLink copied to clipboard!
You create the container image signature verification policy.
Signature verification is enabled by default. If this policy is missing, the pods will not start.
If you are not using container image signature verification, you create the policy without signature verification.
For more information, see containers-policy.json 5.
Procedure
Create a
security-policy-config.json
file according to the following examples:Without signature verification:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow With signature verification:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Create the security policy by running the following command:
oc create secret generic security-policy \ --from-file=osc=./<security-policy-config.json> \ -n trustee-operator-system
$ oc create secret generic security-policy \ --from-file=osc=./<security-policy-config.json> \ -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Do not alter the secret type,
security-policy
, or the key,osc
.The
security-policy
secret is specified in thespec.kbsSecretResources
key of theKbsConfig
custom resource.
3.11. Creating the resource policy config map Copy linkLink copied to clipboard!
You configure the resource policy config map for the policy engine. This policy determines which resources are accessible to Red Hat build of Trustee.
This policy engine is different from the Attestation Service policy engine, which determines the validity of TEE evidence.
Procedure
Create a
resourcepolicy-configmap.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - policy.rego
-
The name of the resource policy,
policy.rego
, must match the resource policy defined in thekbs-config
config map. - package policy
- The resource policy follows the Open Policy Agent specification.
Create the resource policy config map by running the following command:
oc create -f resourcepolicy-configmap.yaml
$ oc create -f resourcepolicy-configmap.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.12. Creating the cluster route Copy linkLink copied to clipboard!
You create a secure route with edge TLS termination for the cluster where you installed Red Hat build of Trustee.
External ingress traffic reaches the router pods as HTTPS and passes on to the pods running in the trustee-operator-system
namespace as HTTP.
Procedure
Create an edge route by running the following command:
oc create route edge --service=kbs-service --port kbs-port \ -n trustee-operator-system
$ oc create route edge --service=kbs-service --port kbs-port \ -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteCurrently, only a route with a valid CA-signed certificate is supported. You cannot use a route with a self-signed certificate.
Set the
TRUSTEE_HOST
variable by running the following command:TRUSTEE_HOST=$(oc get route -n trustee-operator-system kbs-service \ -o jsonpath={.spec.host})
$ TRUSTEE_HOST=$(oc get route -n trustee-operator-system kbs-service \ -o jsonpath={.spec.host})
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify the route by running the following command:
echo $TRUSTEE_HOST
$ echo $TRUSTEE_HOST
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
kbs-service-trustee-operator-system.apps.memvjias.eastus.aroapp.io
kbs-service-trustee-operator-system.apps.memvjias.eastus.aroapp.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.13. Creating the authentication secret Copy linkLink copied to clipboard!
You create the authentication secret for Red Hat build of Trustee.
Procedure
Create a private key by running the following command:
openssl genpkey -algorithm ed25519 > privateKey
$ openssl genpkey -algorithm ed25519 > privateKey
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a public key by running the following command:
openssl pkey -in privateKey -pubout -out publicKey
$ openssl pkey -in privateKey -pubout -out publicKey
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a secret by running the following command:
oc create secret generic kbs-auth-public-key \ --from-file=publicKey -n trustee-operator-system
$ oc create secret generic kbs-auth-public-key \ --from-file=publicKey -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify the secret by running the following command:
oc get secret -n trustee-operator-system
$ oc get secret -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.14. Creating the KbsConfig custom resource Copy linkLink copied to clipboard!
Create the KbsConfig
custom resource (CR) to launch Red Hat build of Trustee.
Procedure
Create a
kbsconfig-cr.yaml
manifest file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
kbsSecretResources
. Specify thetype
value of the container image signature verification secret if you created the secret, for example,img-sig
. -
SE_SKIP_CERTS_VERIFICATION: Set to
true
only for testing purposes.
-
Create the
KbsConfig
CR by running the following command:oc create -f kbsconfig-cr.yaml
$ oc create -f kbsconfig-cr.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.15. Verifying the configuration Copy linkLink copied to clipboard!
You verify the Red Hat build of Trustee configuration by checking its pods and logs.
Procedure
Set the default project by running the following command:
oc project trustee-operator-system
$ oc project trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Check the pods by running the following command:
oc get pods -n trustee-operator-system
$ oc get pods -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
NAME READY STATUS RESTARTS AGE trustee-deployment-8585f98449-9bbgl 1/1 Running 0 22m trustee-operator-controller-manager-5fbd44cd97-55dlh 2/2 Running 0 59m
NAME READY STATUS RESTARTS AGE trustee-deployment-8585f98449-9bbgl 1/1 Running 0 22m trustee-operator-controller-manager-5fbd44cd97-55dlh 2/2 Running 0 59m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set the
POD_NAME
environmental variable by running the following command:POD_NAME=$(oc get pods -l app=kbs -o jsonpath='{.items[0].metadata.name}' -n trustee-operator-system)
$ POD_NAME=$(oc get pods -l app=kbs -o jsonpath='{.items[0].metadata.name}' -n trustee-operator-system)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Check the pod logs by running the following command:
oc logs -n trustee-operator-system $POD_NAME
$ oc logs -n trustee-operator-system $POD_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Chapter 4. Uninstalling Copy linkLink copied to clipboard!
You uninstall by performing the following tasks:
-
Delete the
KbsConfig
custom resource. - Uninstall the Red Hat build of Trustee Operator.
-
Delete the
KbsConfig
custom resource definition.
4.1. Deleting the KbsConfig custom resource Copy linkLink copied to clipboard!
You delete the KbsConfig
custom resource (CR) by using the command line.
Procedure
Delete the
KbsConfig
CR by running the following command:oc delete kbsconfig kbsconfig
$ oc delete kbsconfig kbsconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify the CR removal by running the following command:
oc get kbsconfig kbsconfig
$ oc get kbsconfig kbsconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
No kbsconfig instances exist
No kbsconfig instances exist
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
You must ensure that all pods are deleted. Any remaining pod resources might result in an unexpected bill from your cloud provider.
4.2. Uninstalling the Red Hat build of Trustee Operator Copy linkLink copied to clipboard!
You uninstall the Red Hat build of Trustee Operator by using the command line.
Procedure
Delete the subscription by running the following command:
oc delete subscription trustee-operator -n trustee-operator-system
$ oc delete subscription trustee-operator -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Delete the namespace by running the following command:
oc delete namespace trustee-operator-system
$ oc delete namespace trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. Deleting the KbsConfig CRD Copy linkLink copied to clipboard!
You delete the KbsConfig
custom resource definition (CRD) by using the command line.
Prerequisites
-
You have deleted the
KbsConfig
custom resource. - You have uninstalled the Red Hat build of Trustee Operator.
Procedure
Delete the
KbsConfig
CRD by running the following command:oc delete crd kataconfigs.kataconfiguration.openshift.io
$ oc delete crd kataconfigs.kataconfiguration.openshift.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify that the CRD was deleted by running the following command:
oc get crd kataconfigs.kataconfiguration.openshift.io
$ oc get crd kataconfigs.kataconfiguration.openshift.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
Unknown CRD kataconfigs.kataconfiguration.openshift.io
Unknown CRD kataconfigs.kataconfiguration.openshift.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow