为 sandbox 接入 OpenBao External Secrets
This commit is contained in:
@@ -10,14 +10,12 @@ Gateway、Ingress 或 LoadBalancer。sandbox workload 位于 `opensandbox` names
|
||||
默认使用 `kata-clh-runtime-rs`;CI Pool、runner 镜像、动态 SPIFFE registration 均由
|
||||
runner 项目后续声明,本目录不预制。
|
||||
|
||||
## 临时认证边界
|
||||
## API 认证
|
||||
|
||||
当前尚无 sandbox 集群内的 Secret 分发链路。为避免把长期凭据提交到 Git,server 暂时
|
||||
通过 `OPENSANDBOX_INSECURE_SERVER=YES` 显式确认无认证模式;其网络边界严格保持为
|
||||
ClusterIP。这不是最终认证方案。
|
||||
|
||||
runner 接入前必须先创建 `opensandbox-api-key` Secret,并把 Helm values 中的环境变量
|
||||
改为:
|
||||
`ExternalSecret/opensandbox-api-key` 从 OpenBao
|
||||
`kv/k8s/opensandbox-api:api_key` 投影同名 Secret。这个路径不归属于某个 Kubernetes
|
||||
集群:sandbox server 与 homelab runner 调度器分别通过自己的 Bao 身份读取。server 只通过
|
||||
`secretKeyRef` 读取:
|
||||
|
||||
```yaml
|
||||
- name: OPENSANDBOX_SERVER_API_KEY
|
||||
@@ -27,8 +25,8 @@ runner 接入前必须先创建 `opensandbox-api-key` Secret,并把 Helm value
|
||||
key: api-key
|
||||
```
|
||||
|
||||
随后删除 `OPENSANDBOX_INSECURE_SERVER`。Secret 必须由 OpenBao/SPIFFE 派生的自动化
|
||||
链路或 Ansible 注入,不得把明文写入仓库。
|
||||
仓库与 Helm values 均不保存 API key。OpenSandbox 不支持更丰富的原生 workload
|
||||
authentication;runner 后续读取同一 Bao 路径并在请求头中使用 API key。
|
||||
|
||||
## 验收
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: opensandbox-api-key
|
||||
namespace: opensandbox-system
|
||||
spec:
|
||||
refreshInterval: 1h
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: openbao
|
||||
target:
|
||||
name: opensandbox-api-key
|
||||
creationPolicy: Owner
|
||||
data:
|
||||
- secretKey: api-key
|
||||
remoteRef:
|
||||
key: k8s/opensandbox-api
|
||||
property: api_key
|
||||
@@ -3,6 +3,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- external-secret.yaml
|
||||
- repository.yaml
|
||||
- template.yaml
|
||||
- values.yaml
|
||||
|
||||
@@ -17,10 +17,11 @@ data:
|
||||
server:
|
||||
replicaCount: 1
|
||||
env:
|
||||
# 临时 bootstrap 边界:Service 仅为 ClusterIP。runner 接入时改为
|
||||
# secretKeyRef(OPENSANDBOX_SERVER_API_KEY) 并删除本项。
|
||||
- name: OPENSANDBOX_INSECURE_SERVER
|
||||
value: "YES"
|
||||
- name: OPENSANDBOX_SERVER_API_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: opensandbox-api-key
|
||||
key: api-key
|
||||
resources:
|
||||
limits:
|
||||
cpu: "1"
|
||||
|
||||
Reference in New Issue
Block a user