Skip to content

Commit 4701ac2

Browse files
butler54claude
andcommitted
feat: Improve CoCo pattern docs - vendor parity, accuracy, and completeness
- Add AMD SEV-SNP support section (equal coverage with Intel TDX) - Broaden NVIDIA GPU support from H100-only to H100/H200/B100/B200 - Clarify Azure VM families are configurable (not just Standard_DCas_v5) - Add Intel TDX and AMD SEV vendor documentation links - Add Technology Preview designation for GPU support - Note GPU topology supports both Intel TDX and AMD SEV-SNP - Fix bare metal storage references: HPP not LVMS - Add 5 new troubleshooting entries: * Vault secrets timing out due to MCO reboots * ArgoCD apps in per-clusterGroup namespaces * CoCo pods starting before initdata annotations ready * SGX registration reset needed for TDX cluster rebuilds * TEE firmware misconfiguration detection - Clarify "CoCo pods" terminology throughout troubleshooting - Add MCO reboot notes to bare metal deployment sections - Update wordlist: blackwell, epyc, genoa, hpp, milan Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 4278f25 commit 4701ac2

6 files changed

Lines changed: 208 additions & 42 deletions

File tree

.wordlist.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ bh
9191
bitnami
9292
bj
9393
bjp
94+
blackwell
9495
bls
9596
bluegreen
9697
bluegreenpause
@@ -297,6 +298,7 @@ env
297298
envi
298299
envs
299300
ep
301+
epyc
300302
erp
301303
eso
302304
eso's
@@ -347,6 +349,7 @@ gcp
347349
gcqna
348350
genai
349351
genaiexamples
352+
genoa
350353
genrsa
351354
gf
352355
gh
@@ -406,6 +409,7 @@ hostingcluster
406409
hostname
407410
howto
408411
hpc
412+
hpp
409413
htpasswd
410414
httpbin
411415
httpd
@@ -617,6 +621,7 @@ microcontrollers
617621
microservice
618622
microservices
619623
middleware
624+
milan
620625
militaries
621626
millicore
622627
mins

content/patterns/coco-pattern/_index.adoc

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -174,26 +174,45 @@ Intel Trusted Domain Extensions (TDX) is a hardware-based TEE technology that is
174174

175175
The pattern's Intel DCAP chart deploys PCCS as a centralized caching service and QGS as a DaemonSet on TDX nodes. Quote generation happens within the TEE, with PCCS providing attestation collateral to Trustee for verification.
176176

177-
== NVIDIA confidential GPU support
177+
== AMD SEV-SNP support
178178

179-
NVIDIA H100 GPUs with confidential computing firmware enable GPU-accelerated workloads to run inside TEEs with hardware-enforced memory encryption and attestation. The pattern's `baremetal-gpu` topology provides full support for NVIDIA confidential GPUs on bare metal.
179+
AMD Secure Encrypted Virtualization - Secure Nested Paging (SEV-SNP) is a hardware-based TEE technology that provides VM isolation through memory encryption and integrity protection. SEV-SNP extends AMD's SEV technology with secure nested paging to protect against additional attack vectors. The pattern provides full AMD SEV-SNP support on bare metal deployments.
180+
181+
**Key features:**
182+
183+
- **Automatic hardware detection**: Node Feature Discovery (NFD) detects SEV-SNP-capable processors and labels nodes with `amd.feature.node.kubernetes.io/snp=true`
184+
- **Certificate chain-based attestation**: AMD SEV-SNP uses a certificate chain model for attestation verification, eliminating the need for a collateral caching service like Intel's PCCS
185+
- **Transparent runtime selection**: The `kata-cc` RuntimeClass automatically uses the SEV-SNP handler (`kata-snp`) on labeled nodes
186+
- **MachineConfig automation**: Kernel parameters for SEV-SNP enablement and vsock modules are applied automatically
187+
188+
**Deployment requirements:**
189+
190+
- AMD EPYC processors with SEV-SNP support (3rd Gen Milan or newer)
191+
- BIOS/firmware with SEV-SNP enabled
192+
- No external attestation service required (certificate chain-based model)
193+
194+
AMD SEV-SNP's certificate chain approach simplifies the attestation infrastructure compared to Intel TDX, as the full certificate chain is embedded in the attestation evidence sent to Trustee for verification.
195+
196+
== NVIDIA confidential GPU support (**Technology Preview**)
197+
198+
NVIDIA confidential GPUs with confidential computing firmware enable GPU-accelerated workloads to run inside TEEs with hardware-enforced memory encryption and attestation. The pattern's `baremetal-gpu` topology provides support for NVIDIA confidential GPUs (H100, H200, B100, B200) on bare metal with either Intel TDX or AMD SEV-SNP as the host TEE platform.
180199

181200
**Key features:**
182201

183202
- **GPU passthrough via VFIO**: GPUs are passed through to Kata confidential VMs using IOMMU and VFIO, providing native GPU performance
184203
- **Confidential Computing Manager**: NVIDIA CC Manager enforces confidential mode at the GPU firmware level
185204
- **GPU attestation**: The GPU's attestation evidence is included in the TEE's attestation report to Trustee
186205
- **Kata device plugin**: The NVIDIA Kata sandbox device plugin exposes GPUs as schedulable resources (`nvidia.com/pgpu`)
206+
- **Multi-platform support**: Works with both Intel TDX and AMD SEV-SNP host TEE platforms
187207

188208
**Deployment requirements:**
189209

190-
- NVIDIA H100 GPUs with confidential computing firmware
191-
- IOMMU-capable system (kernel parameters applied via MachineConfig)
210+
- NVIDIA GPUs with confidential computing firmware (H100, H200, B100, B200)
211+
- Intel TDX or AMD SEV-SNP enabled bare metal host
212+
- IOMMU-capable system (kernel parameters applied via MachineConfig: `intel_iommu=on` or `amd_iommu=on`)
192213
- NVIDIA GPU Operator v26.3.0+
193214

194-
The pattern includes a sample CUDA workload (`gpu-vectoradd`) that demonstrates GPU-accelerated computation within a confidential container, verifying both GPU functionality and attestation integration.
195-
196-
**Note**: AMD SEV-SNP is also supported on bare metal as an alternative TEE technology. SEV-SNP uses AMD EPYC processors with encrypted memory and secure nested paging. However, additional enhancements and testing are planned for future releases, so Intel TDX and NVIDIA confidential GPUs are currently the primary focus for bare metal deployments.
215+
The pattern includes a sample CUDA workload (`gpu-vectoradd`) that demonstrates GPU-accelerated computation within a confidential container, verifying both GPU functionality and attestation integration. Testing has been performed with Intel TDX + H100; AMD SEV-SNP + GPU configurations are expected to work but have not been fully validated.
197216

198217
== References
199218

@@ -213,9 +232,16 @@ The pattern includes a sample CUDA workload (`gpu-vectoradd`) that demonstrates
213232
**Intel TDX:**
214233

215234
- https://www.intel.com/content/www/us/en/developer/tools/trust-domain-extensions/overview.html[Intel TDX overview]
235+
- https://cc-enabling.trustedservices.intel.com/intel-tdx-enabling-guide/03/hardware_selection/[Intel TDX hardware selection guide]
236+
- https://cc-enabling.trustedservices.intel.com/intel-tdx-enabling-guide/04/hardware_setup/#install-intel-tdx-enabled-bios[Intel TDX BIOS setup guide]
216237
- https://docs.redhat.com/en/documentation/openshift_sandboxed_containers/1.12/html/deploying_confidential_containers/deploying-confidential-containers-on-bare-metal[Deploying confidential containers on bare metal]
217238
- https://api.portal.trustedservices.intel.com[Intel Provisioning Certificate Service]
218239

240+
**AMD SEV-SNP:**
241+
242+
- https://www.amd.com/en/developer/sev.html[AMD SEV developer page]
243+
- https://docs.redhat.com/en/documentation/openshift_sandboxed_containers/1.12/html/deploying_confidential_containers/deploying-confidential-containers-on-bare-metal[Deploying confidential containers on bare metal]
244+
219245
**NVIDIA Confidential Computing:**
220246

221247
- https://docs.nvidia.com/confidential-computing/[NVIDIA Confidential Computing documentation]

content/patterns/coco-pattern/coco-pattern-azure-requirements.adoc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,11 @@ This can be done by using `openshift-install create install-config` first and ad
3333
----
3434

3535
On a cloud provider the virtual machines for the kata containers use "peer pods" which are running directly on the cloud provider's hypervisor (see the diagram below).
36-
This means that access is required to the "confidential computing" virtual machine class. On Azure the `Standard_DCas_v5` class of virtual machines are used.
37-
These virtual machines are *NOT* available in all regions. Check https://azure.microsoft.com/en-us/explore/global-infrastructure/products-by-region/[Azure products by region] to confirm availability in your target region.
36+
This means that access is required to Azure https://learn.microsoft.com/en-us/azure/confidential-computing/virtual-machine-options[confidential VM families]. Azure offers multiple confidential computing VM families including `Standard_DCas_v5` (AMD SEV-SNP), `Standard_DCes_v5` (Intel TDX), `Standard_ECas_v5` (AMD SEV-SNP, memory-optimized), and others. **This pattern defaults to `Standard_DCas_v5`** but can be configured to use other confidential VM families by modifying the VM size parameters in `values-global.yaml`.
3837

39-
Users will also need to request quota increases for the `Standard_DC2as_v5` (and optionally `Standard_DC4as_v5`, `Standard_DC8as_v5`, `Standard_DC16as_v5`) virtual machine families in their target region. By default, Azure subscriptions may have zero quota for confidential computing VM sizes.
38+
These confidential VMs are *NOT* available in all regions. Check https://azure.microsoft.com/en-us/explore/global-infrastructure/products-by-region/[Azure products by region] to confirm availability of your chosen VM family in your target region.
39+
40+
Users will also need to request quota increases for their chosen confidential VM family (e.g., `Standard_DC2as_v5`, `Standard_DC4as_v5`, `Standard_DC8as_v5`, `Standard_DC16as_v5` for the DCas_v5 family) in their target region. By default, Azure subscriptions may have zero quota for confidential computing VM sizes.
4041

4142
image::coco-pattern/peer_pods.png[Schematic diagram of peer pods vs standard kata containers]
4243

content/patterns/coco-pattern/coco-pattern-getting-started.adoc

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ include::modules/comm-attributes.adoc[]
3232

3333
1. Install OpenShift 4.19.28+ on bare metal with Intel TDX or AMD SEV-SNP hardware
3434

35-
2. Ensure BIOS/firmware is configured to enable TDX or SEV-SNP. Consult your hardware vendor's documentation for TEE enablement procedures.
35+
2. Ensure BIOS/firmware is configured to enable TDX or SEV-SNP. For Intel TDX, consult the https://cc-enabling.trustedservices.intel.com/intel-tdx-enabling-guide/04/hardware_setup/#install-intel-tdx-enabled-bios[Intel TDX BIOS setup guide]. For AMD SEV-SNP, consult the https://www.amd.com/en/developer/sev.html[AMD SEV developer documentation] and your hardware vendor's TEE enablement procedures.
3636

3737
3. For Intel TDX: Obtain an Intel PCS API key from https://api.portal.trustedservices.intel.com[Intel Trusted Services]
3838

@@ -87,11 +87,13 @@ The bare metal topology uses the `baremetal` clusterGroup for Intel TDX or AMD S
8787
5. `./pattern.sh make install`
8888

8989
6. Wait for the cluster to reboot nodes. The pattern applies MachineConfig updates for:
90-
- TDX/SEV-SNP kernel parameters (e.g., `kvm_intel.tdx=1` for Intel)
90+
- TDX/SEV-SNP kernel parameters (e.g., `kvm_intel.tdx=1` for Intel TDX, `kvm_amd.sev=1` for AMD SEV-SNP)
9191
- `nohibernate` kernel argument
9292
- vsock-loopback kernel module configuration
9393
+
9494
Monitor node reboot progress: `oc get nodes` or `oc get mcp`
95+
+
96+
**Note**: MCO-driven reboots during initial deployment may cause Vault secret loading to time out. If secrets fail to load after nodes finish rebooting (`oc get mcp` shows `UPDATED=True`), manually re-trigger secret loading by running `./pattern.sh make upgrade`.
9597

9698
[NOTE]
9799
====
@@ -105,16 +107,16 @@ The pattern automatically detects and configures your TEE hardware:
105107
- **Node Feature Discovery (NFD)** labels nodes based on detected capabilities:
106108
- Intel TDX: `intel.feature.node.kubernetes.io/tdx=true`
107109
- AMD SEV-SNP: `amd.feature.node.kubernetes.io/snp=true`
108-
- **LVMS** discovers available block devices for persistent storage
110+
- **HostPath Provisioner (HPP)** provides persistent storage for bare metal deployments
109111
- **RuntimeClass**: The `kata-cc` RuntimeClass is created automatically, using `kata-tdx` or `kata-snp` handler based on detected hardware
110112
- Both `kata-tdx` and `kata-snp` RuntimeClasses are deployed; only the one matching your hardware will have schedulable nodes
111113
- **Intel DCAP components** (PCCS and QGS) deploy unconditionally but DaemonSets only schedule on Intel TDX nodes via NFD label selectors
112114

113115
**Optional PCCS node pinning:** For Intel TDX deployments, you can pin the PCCS service to a specific node by running `bash scripts/get-pccs-node.sh` and setting `baremetal.pccs.nodeSelector` in the baremetal chart values.
114116

115-
=== Bare metal GPU deployment
117+
=== Bare metal GPU deployment (**Technology Preview**)
116118

117-
The `baremetal-gpu` topology extends the bare metal deployment with NVIDIA H100 confidential GPU support.
119+
The `baremetal-gpu` topology extends the bare metal deployment with NVIDIA confidential GPU support (H100, H200, B100, B200). This topology works with both Intel TDX and AMD SEV-SNP as the host TEE platform.
118120

119121
1. Set `main.clusterGroupName: baremetal-gpu` in `values-global.yaml`
120122

@@ -129,6 +131,8 @@ The `baremetal-gpu` topology extends the bare metal deployment with NVIDIA H100
129131
- AMD: `amd_iommu=on`
130132
+
131133
All nodes will reboot to apply these kernel parameters.
134+
+
135+
**Note**: MCO-driven reboots may cause Vault secret loading to time out. If needed, re-run `./pattern.sh make upgrade` after nodes finish rebooting.
132136

133137
6. Approve the GPU Operator install plan when it appears. The pattern uses `installPlanApproval: Manual` to ensure version control. Check for pending install plans:
134138
+

content/patterns/coco-pattern/coco-pattern-tested-environments.adoc

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ include::modules/comm-attributes.adoc[]
1414

1515
== Current version (5.*)
1616

17-
Version 5 introduces Kyverno-based `cc_init_data` injection, bare metal support (Intel TDX, AMD SEV-SNP), and NVIDIA H100 confidential GPU support.
17+
Version 5 introduces Kyverno-based `cc_init_data` injection, bare metal support (Intel TDX, AMD SEV-SNP), and **Technology Preview** NVIDIA confidential GPU support (H100, H200, B100, B200).
1818

1919
=== Supported components
2020
- OpenShift Sandboxed Containers Operator 1.12
@@ -31,7 +31,7 @@ Version 5 introduces Kyverno-based `cc_init_data` injection, bare metal support
3131
=== Azure single cluster
3232
Tested on Azure with the `simple` clusterGroup using self-managed OpenShift 4.19.28+ provisioned via `openshift-install`. In this topology all components — Trustee, Vault, ACM, sandboxed containers operator, Kyverno, and sample workloads — are deployed on a single cluster.
3333

34-
Worker nodes use `Standard_D8s_v5` or larger. Peer-pod VMs for confidential containers use `Standard_DC2as_v5` from the Azure confidential computing VM family. Azure DNS is required for the cluster's hosted zone.
34+
Worker nodes use `Standard_D8s_v5` or larger. Peer-pod VMs for confidential containers default to `Standard_DC2as_v5` from the Azure confidential computing VM family, but other Azure https://learn.microsoft.com/en-us/azure/confidential-computing/virtual-machine-options[confidential VM families] can be configured in `values-global.yaml`. Azure DNS is required for the cluster's hosted zone.
3535

3636
**Important**: Azure confidential VM availability varies by region. Before deploying, verify that your target region supports `Standard_DCas_v5` VMs and that your subscription has sufficient quota. See the link:../coco-pattern-azure-requirements/[Azure requirements] page for regional availability details.
3737

@@ -48,7 +48,7 @@ Tested on Single Node OpenShift (SNO) with Intel TDX hardware using the `baremet
4848

4949
**Hardware configuration:**
5050
- Intel Xeon Sapphire Rapids processors (4th Gen) with TDX enabled in BIOS
51-
- LVMS for storage (auto-discovers available block devices)
51+
- HPP (HostPath Provisioner) for storage
5252
- NFD detects TDX capability and labels the node with `intel.feature.node.kubernetes.io/tdx=true`
5353

5454
**Deployed components:**
@@ -63,27 +63,25 @@ Tested on Single Node OpenShift (SNO) with AMD SEV-SNP hardware using the `barem
6363

6464
**Hardware configuration:**
6565
- AMD EPYC Genoa processors with SEV-SNP enabled in BIOS
66-
- LVMS for storage (auto-discovers available block devices)
66+
- HPP (HostPath Provisioner) for storage
6767
- NFD detects SEV-SNP capability and labels the node with `amd.feature.node.kubernetes.io/snp=true`
6868

6969
**Deployed components:**
7070
- Trustee, Vault, Kyverno, sandboxed containers operator, NFD
7171
- Sample workloads use `runtimeClassName: kata-cc` with the `kata-snp` handler
7272
- No PCCS required (AMD uses certificate chain-based attestation)
7373

74-
**Note**: Additional enhancements for AMD SEV-SNP are planned for future releases.
75-
76-
=== Bare metal GPU single cluster (Intel TDX + NVIDIA H100)
77-
Tested on Single Node OpenShift (SNO) with Intel TDX and NVIDIA H100 confidential GPUs using the `baremetal-gpu` clusterGroup.
74+
=== Bare metal GPU single cluster (**Technology Preview**)
75+
Tested on Single Node OpenShift (SNO) with Intel TDX and NVIDIA confidential GPUs using the `baremetal-gpu` clusterGroup. This topology supports both Intel TDX and AMD SEV-SNP as the host TEE platform.
7876

7977
**Hardware configuration:**
80-
- Intel Xeon Sapphire Rapids processors with TDX enabled in BIOS
81-
- NVIDIA H100 GPUs with confidential computing firmware
78+
- Intel Xeon Sapphire Rapids processors with TDX enabled in BIOS (tested) or AMD EPYC Milan/Genoa processors with SEV-SNP (expected to work)
79+
- NVIDIA confidential GPUs with confidential computing firmware (tested with H100; H200, B100, B200 supported)
8280
- IOMMU enabled for GPU passthrough
83-
- LVMS for storage
81+
- HPP (HostPath Provisioner) for storage
8482

8583
**Deployed components:**
86-
- All components from bare metal Intel TDX configuration
84+
- All components from bare metal Intel TDX or AMD SEV-SNP configuration
8785
- NVIDIA GPU Operator with CC Manager, VFIO manager, and Kata device plugin
8886
- GPU workload (`gpu-vectoradd`) uses `runtimeClassName: kata-cc-nvidia-gpu`
8987
- GPU attestation integrated with Trustee KBS
@@ -99,7 +97,7 @@ All pattern versions prior to v4 used Technology Preview (pre-GA) releases of Tr
9997
| 1.1 (GA)
10098
| 1.12
10199
| 4.19.28+
102-
| Kyverno-based cc_init_data injection. Bare metal support (Intel TDX, AMD SEV-SNP). NVIDIA H100 confidential GPU support.
100+
| Kyverno-based cc_init_data injection. Bare metal support (Intel TDX, AMD SEV-SNP). NVIDIA confidential GPU support (Technology Preview: H100, H200, B100, B200).
103101

104102
| 4.*
105103
| 1.0 (GA)

0 commit comments

Comments
 (0)