You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
helm: delete ephemeral admin keys when uninstalling
When use `secrets.useEphemeralGeneratedKeys`, an admin token and
asymmetric key pair is generated for auth. Thus commit will
automatically delete the auth secrets via a post-delete job.
Assisted-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Xynnn007 <xynnn@linux.alibaba.com>
Copy file name to clipboardExpand all lines: deployment/helm-chart/README.md
+23-20Lines changed: 23 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,6 +28,9 @@ Uninstall the release:
28
28
helm uninstall trustee -n coco-trustee
29
29
```
30
30
31
+
> [!NOTE]
32
+
> When `secrets.useEphemeralGeneratedKeys` is `true` (default), a **post-delete** Helm hook removes the release-scoped `*-bootstrap-user-keys` Secret automatically.
33
+
31
34
## Typical scenarios
32
35
33
36
### Default: LocalFs storage
@@ -68,7 +71,7 @@ When `storageBackend.postgres.mode=external`, the chart does **NOT** deploy the
68
71
69
72
Key material is controlled only by **`secrets.useEphemeralGeneratedKeys`**:
70
73
71
-
-**`true` (default):** a Helm **pre-install / pre-upgrade hook** Job generates ephemeral demo keys into a release-scoped Secret (name ends with **`bootstrap-user-keys`**).
74
+
-**`true` (default):** a Helm **pre-install / pre-upgrade hook** Job generates ephemeral demo keys into a release-scoped Secret (name ends with **`bootstrap-user-keys`**).**`helm uninstall`** runs a **post-delete** hook that removes that Secret.
72
75
-**`false`:** you must **pre-create** a Kubernetes **`Secret`** in the target namespace, then set **`secrets.existingSecretName`** to that name. The bootstrap hook is **not** rendered.
73
76
74
77
When ephemeral generation is enabled, the hook uses:
@@ -158,26 +161,26 @@ Default **`values.yaml`** is intentionally small. Fixed on-disk paths for **Loca
158
161
159
162
| Key | Type | Default | Description |
160
163
|-----|------|---------|-------------|
161
-
| as.affinity |string|`nil`| Affinity and anti-affinity scheduling rules for AS Pods. |
164
+
| as.affinity |object|`{}`| Affinity and anti-affinity scheduling rules for AS Pods. |
162
165
| as.extraEnvVars | list |`[]`| Extra environment variables for the AS container (for example `HTTP(S)_PROXY` and `NO_PROXY`). |
@@ -187,13 +190,13 @@ Default **`values.yaml`** is intentionally small. Fixed on-disk paths for **Loca
187
190
| bootstrapUserKeysJob.resources | object |`{"limits":{"cpu":"200m","memory":"256Mi"},"requests":{"cpu":"50m","memory":"64Mi"}}`| CPU/memory requests and limits for the bootstrap hook Job. |
188
191
| dnsHostAliasWorkaround | bool |`false`| When `true`, templates use Helm `lookup` to write Service `clusterIP` entries into `hostAliases` for clusters that cannot resolve `*.svc.cluster.local`. If Services are missing on first render, rerun `helm upgrade`. |
189
192
| fullnameOverride | string |`""`| Override the fully qualified release name (truncated to 63 characters). |
190
-
| ingress | object |`{"annotations":null,"className":"","enabled":false,"host":"","tls":[]}`| Optional Kubernetes Ingress for the KBS Service. |
| ingress.enabled | bool |`false`| Enable Ingress for KBS. |
194
197
| ingress.host | string |`""`| Host-based routing. Leave empty to match all hosts (IP-only access). |
195
198
| ingress.tls | list |`[]`| TLS configuration entries. |
196
-
| kbs.affinity |string|`nil`| Affinity and anti-affinity scheduling rules for KBS Pods. |
199
+
| kbs.affinity |object|`{}`| Affinity and anti-affinity scheduling rules for KBS Pods. |
197
200
| kbs.config.admin.audience | string |`"KBS"`| JWT `audience` claim for the bootstrap-generated admin token. |
198
201
| kbs.config.admin.issuer | string |`"TrusteeInHelm"`| JWT `issuer` claim for the bootstrap-generated admin token; must match `[admin.authentication.bearer_jwt]`. |
| kbs.replicaCount | int |`1`| Number of KBS Pod replicas. |
213
216
| kbs.resourceRepository | list |`[]`| KBS resource repository configuration (passed through to KBS config). |
214
217
| kbs.resources | object |`{"limits":{"cpu":"2","memory":"2Gi"},"requests":{"cpu":"250m","memory":"256Mi"}}`| Container CPU/memory requests and limits for KBS. |
215
218
| kbs.service.exposeLoadBalancer | bool |`false`| When `true`, create an additional external `LoadBalancer` Service (`<fullname>-kbs-lb`). The primary KBS Service (`<fullname>-kbs`) is always internal `ClusterIP`. |
216
-
| kbs.service.loadBalancerAnnotations |string|`nil`| Annotations applied to the optional KBS `LoadBalancer` Service when `exposeLoadBalancer=true`. |
219
+
| kbs.service.loadBalancerAnnotations |object|`{}`| Annotations applied to the optional KBS `LoadBalancer` Service when `exposeLoadBalancer=true`. |
217
220
| kbs.service.port | int |`8080`| Service port for KBS; used by both the internal `ClusterIP` Service and the optional external `LoadBalancer` Service. |
218
221
| kbs.tolerations | list |`[]`| Tolerations for scheduling KBS Pods onto tainted nodes. |
219
222
| log_level | string |`"info"`| Container `RUST_LOG` for KBS, AS, and RVPS (`info`, `debug`, `warn`, `error`). |
@@ -234,21 +237,21 @@ Default **`values.yaml`** is intentionally small. Fixed on-disk paths for **Loca
234
237
| postgresql.primary.persistence.storageClass | string |`""`| StorageClass for the auto-created bundled Postgres PVC; empty uses the cluster default. |
235
238
| postgresql.primary.resources | object |`{"limits":{"cpu":"1","memory":"1Gi"},"requests":{"cpu":"250m","memory":"256Mi"}}`| CPU/memory requests and limits for bundled Postgres. |
236
239
| postgresql.service.ports.postgresql | int |`5432`| Bundled Postgres Service port (used in `POSTGRES_URL`). |
237
-
| rvps.affinity |string|`nil`| Affinity and anti-affinity scheduling rules for RVPS Pods. |
240
+
| rvps.affinity |object|`{}`| Affinity and anti-affinity scheduling rules for RVPS Pods. |
238
241
| rvps.extraEnvVars | list |`[]`| Extra environment variables for the RVPS container (for example `HTTP(S)_PROXY` and `NO_PROXY`). |
| rvps.replicaCount | int |`1`| Number of RVPS Pod replicas. |
247
250
| rvps.resources | object |`{"limits":{"cpu":"1","memory":"1Gi"},"requests":{"cpu":"100m","memory":"128Mi"}}`| Container CPU/memory requests and limits for RVPS. |
248
-
| rvps.service.loadBalancerAnnotations |string|`nil`| Annotations for the internal RVPS LoadBalancer Service. |
251
+
| rvps.service.loadBalancerAnnotations |object|`{}`| Annotations for the internal RVPS LoadBalancer Service. |
249
252
| rvps.service.loadBalancerType | string |`"internal"`| Load balancer kind when `rvps.service.type` is `LoadBalancer`: `internal` or `public`. |
250
253
| rvps.service.port | int |`50003`| RVPS Service port. |
251
-
| rvps.service.publicLoadBalancerAnnotations |string|`nil`| Annotations for the public RVPS LoadBalancer Service when `loadBalancerType=public`. |
254
+
| rvps.service.publicLoadBalancerAnnotations |object|`{}`| Annotations for the public RVPS LoadBalancer Service when `loadBalancerType=public`. |
252
255
| rvps.service.type | string |`"ClusterIP"`| RVPS Service type (`ClusterIP` or `LoadBalancer`). |
253
256
| rvps.tolerations | list |`[]`| Tolerations for scheduling RVPS Pods onto tainted nodes. |
254
257
| secrets.existingSecretName | string |`""`| Required when `useEphemeralGeneratedKeys=false`. Secret must contain `KBS_ADMIN_PRIVATE_KEY`, `KBS_ADMIN_PUBKEY`, `AS_TOKEN_SIGNING_PRIVATE_KEY`, and `AS_TOKEN_VERIFICATION_PUBLIC_KEY_CERT_CHAIN`. Optionally include `KBS_ADMIN_TOKEN` (see `kbs/config/docker-compose/setup.sh` for claim layout). |
Copy file name to clipboardExpand all lines: deployment/helm-chart/README.md.gotmpl
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -28,6 +28,8 @@ Uninstall the release:
28
28
helm uninstall trustee -n coco-trustee
29
29
```
30
30
31
+
> [!NOTE]
32
+
> When `secrets.useEphemeralGeneratedKeys` is `true` (default), a **post-delete** Helm hook removes the release-scoped `*-bootstrap-user-keys` Secret automatically.
31
33
32
34
## Typical scenarios
33
35
@@ -69,7 +71,7 @@ When `storageBackend.postgres.mode=external`, the chart does **NOT** deploy the
69
71
70
72
Key material is controlled only by **`secrets.useEphemeralGeneratedKeys`**:
71
73
72
-
- **`true` (default):** a Helm **pre-install / pre-upgrade hook** Job generates ephemeral demo keys into a release-scoped Secret (name ends with **`bootstrap-user-keys`**).
74
+
- **`true` (default):** a Helm **pre-install / pre-upgrade hook** Job generates ephemeral demo keys into a release-scoped Secret (name ends with **`bootstrap-user-keys`**). **`helm uninstall`** runs a **post-delete** hook that removes that Secret.
73
75
- **`false`:** you must **pre-create** a Kubernetes **`Secret`** in the target namespace, then set **`secrets.existingSecretName`** to that name. The bootstrap hook is **not** rendered.
74
76
75
77
When ephemeral generation is enabled, the hook uses:
0 commit comments