Skip to content

Commit 105e99d

Browse files
authored
feat: externalise the core charts (#62)
* feat: use externalized charts Signed-off-by: Chris Butler <chris.butler@redhat.com> * chore: linting errors Signed-off-by: Chris Butler <chris.butler@redhat.com> * chore: linting errors Signed-off-by: Chris Butler <chris.butler@redhat.com> --------- Signed-off-by: Chris Butler <chris.butler@redhat.com>
1 parent cab900d commit 105e99d

31 files changed

+51
-722
lines changed

README.md

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,30 @@
22

33
This is a validated pattern for deploying confidential containers on OpenShift.
44

5-
The target operating model has two clusters:
5+
There are two topologies for deploying this pattern:
66

7-
- One in a "trusted" zone where the remote attestation, KMS and Key Broker infrastructure are deployed.
8-
- A second where a subset of workloads are deployed in confidential containers.
7+
1. *Default* using a single cluster. This breaks the RACI expected in a remote attestation architecture, however, makes it easier to test. This uses the `simple` `clusterGroup`.
8+
2. A more secure operating model that has two clusters:
9+
- One in a "trusted" zone where the remote attestation, KMS and Key Broker infrastructure are deployed. This is also the Advanced Cluster Manager Hub cluster. It uses the `trusted-hub` `clusterGroup`.
10+
- A second where a subset of workloads are deployed in confidential containers. It uses the `spoke` `clusterGroup`
911

1012
The current version of this application the confidential containers assumes deployment to Azure.
1113

12-
On the platform a sample workload is deployed:
14+
On the cluster where confidential workloads are deployed two sample applications are deployed:
1315

1416
1. Sample hello world applications to allow users to experiment with the policies for CoCo and the KBS (trustee).
1517
2. A sample application `kbs-access` which presents secrets obtained from trustee to a web service. This is designed to allow users to test locked down environments.
1618

1719
Future work includes:
1820

19-
1. Supporting a multiple cluster deployment
20-
2. Supporting multiple infrastructure providers
21-
3. Supporting a more sophisticated workload such as confidential AI inference with protected GPUs.
21+
1. ~~Supporting a multiple cluster deployment~~ Done
22+
2. Supporting multiple infrastructure providers - Work in Progress.
23+
3. Supporting air-gapped deployments - Work in Progress.
24+
4. Supporting a more sophisticated workload such as confidential AI inference with protected GPUs.
2225

2326
## Current constraints and assumptions
2427

2528
- Only currently is known to work with `azure` as the provider of confidential vms via peer-pods.
26-
- Only known to work today with everything on one cluster. The work to expand this is in flight.
2729
- Below version 3.1, if not using ARO you must either provide your own CA signed certs, or use let's encrypt.
2830
- Must be on 4.16.14 or later.
2931

@@ -61,9 +63,6 @@ The pattern has been tested on Azure for two installation methods:
6163
1. Installing onto an ARO cluster
6264
2. Self managed OpenShift install using the `openshift-install` CLI.
6365

64-
> [!IMPORTANT]
65-
> You need an external CA signed certificate for to be added (e.g. with let's encrypt) to a self-managed install
66-
6766
### `1.0.0`
6867

6968
1.0.0 supports OpenShift Sandboxed containers version `1.8.1` along with Trustee version `0.2.0`.
@@ -73,18 +72,15 @@ The pattern has been tested on Azure for one installation method:
7372
1. Self managed OpenShift install using the `openshift-install` CLI
7473
2. Installing on top of an existing Azure Red Hat OpenShift (ARO) cluster
7574

76-
## Validated pattern flavours
75+
## Changing deployment topoloiges
7776

78-
**Today the demo has one flavour**.
79-
A number are planned based on various different hub cluster-groups.
80-
You can change between behaviour by configuring [`global.main.clusterGroupName`](https://validatedpatterns.io/learn/values-files/) key in the `values-global.yaml` file.
77+
**Today the demo has two deployment topologies**
78+
The most important change is what `clusterGroup` is deployed to your main or 'hub' cluster.
8179

82-
`values-simple.yaml`: or the `simple` cluster group is the default for the pattern.
83-
It deploys a hello-openshift application 3 times:
80+
You can change between behaviour by configuring [`global.main.clusterGroupName`](https://validatedpatterns.io/learn/values-files/) key in the `values-global.yaml` file.
8481

85-
- A standard pod
86-
- A kata container with peer-pods
87-
- A confidential kata-container
82+
- `values-simple.yaml`: or the `simple` cluster group is the default for the pattern. It deploys everything in one cluster.
83+
-`values-trusted-hub`: or the `trusted-hub` cluster group can be configured as the main cluster group. A second cluster should be deployed with the `spoke` cluster group. Follow [instructions here](https://validatedpatterns.io/learn/importing-a-cluster/) to add the second cluster.
8884

8985
## Setup instructions
9086

@@ -110,12 +106,12 @@ This only has to be done once.
110106
> [!NOTE]
111107
> Once generated this script will not override secrets. Be careful when doing multiple tests.
112108
113-
#### Configuring let's encrypt
109+
#### Configuring let's encrypt (deprecated)
114110

115111
> [!IMPORTANT]
116112
> Ensure you have password login available to the cluster. Let's encrypt will replace the API certificate in addition to the certificates to user with routes.
117113
118-
Trustee requires a trusted CA issued certificate. Let's Encrypt is included for environments without a trusted cert on OpenShift's routes.
114+
Trustee (guest agents) requires that Trustee uses a Mozilla trusted CA issued certificate, or a specific certificate which is known in advance. Today the pattern uses specific self signed certs. Let's encrypt was an option for getting a trusted certificate onto OpenShift's routes, and therefore Trustee. Ths functionality will be removed at a later date.
119115

120116
If you need a Let's Encrypt certificate to be issued the `letsencrypt` application configuration needs to be changed as below.
121117

ansible/gen-certificate.yaml

Lines changed: 0 additions & 139 deletions
This file was deleted.

ansible/initdata-default.toml.tpl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ version = "0.1.0"
55
"aa.toml" = '''
66
[token_configs]
77
[token_configs.coco_as]
8-
url = "https://kbs-trustee-operator-system.{{ hub_domain }}"
8+
url = "https://kbs.{{ hub_domain }}"
99

1010
[token_configs.kbs]
11-
url = "https://kbs-trustee-operator-system.{{ hub_domain }}"
11+
url = "https://kbs.{{ hub_domain }}"
1212
cert = """
1313
{{ trustee_cert }}
1414
"""
@@ -20,7 +20,7 @@ credentials = []
2020

2121
[kbc]
2222
name = "cc_kbc"
23-
url = "https://kbs-trustee-operator-system.{{ hub_domain }}"
23+
url = "https://kbs.{{ hub_domain }}"
2424
kbs_cert = """
2525
{{ trustee_cert }}
2626
"""

charts/coco-supported/sandbox/Chart.yaml

Lines changed: 0 additions & 8 deletions
This file was deleted.

charts/coco-supported/sandbox/templates/feature-gate.yaml

Lines changed: 0 additions & 9 deletions
This file was deleted.

charts/coco-supported/sandbox/templates/kata-config.yaml

Lines changed: 0 additions & 8 deletions
This file was deleted.

charts/coco-supported/sandbox/templates/ssh-key-eso.yaml

Lines changed: 0 additions & 22 deletions
This file was deleted.

charts/coco-supported/sandbox/values.yaml

Lines changed: 0 additions & 18 deletions
This file was deleted.

charts/hub/sandbox-policies/Chart.yaml

Lines changed: 0 additions & 6 deletions
This file was deleted.

charts/hub/sandbox-policies/README.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)