RKE2 CySec latest source-redis adjunct Secrets¶
이 문서는 bloodbag-cysec-latest namespace의 latest24 밖 source-redis adjunct Secret 2개만 다룬다. Secret material/apply 인터페이스만 제공한다.
하지 않는 것: Source Redis workload, PostgreSQL Job/role, GitOps overlay 활성화, PVC, NetworkPolicy, Namespace 변경, K3s writeback, readiness/E3.
권위 네임스페이스는 GitOps bootstrap이 소유한다. Infra는 Namespace를 만들지 않는다.
계약¶
latest24 GitOps hashes (contractDigest / secretNameSetHash / secretKeySetHash)에 이 2개를 넣지 않는다. Infra adjunct digest는 별도 pin이다.
| Name | Type | Keys | SAN |
|---|---|---|---|
bloodbag-signal-relay-source-redis-tls |
Opaque | tls.crt,tls.key,ca.crt |
bloodbag-signal-relay-source-redis.bloodbag-cysec-latest.svc |
bloodbag-signal-relay-source-redis-health |
Opaque | password |
— |
- serverAuth, ECDSA P-256, leaf
ca=false - source-redis CA는 latest 3-leaf CA와 다르다
- adjunct
ca.crt는 latest24bloodbag-signal-relay-source-tls/ca.crt와 byte-equal - latest24
bloodbag-signal-relay-source/password와 health password는 서로 다른 생성 값 source-url없음kubernetes.io/tls아님 (signed donor #91/#94/#95 Opaque analog)
Site contract: sites/tirosh-home/rke2/bloodbag-cysec-latest-source-redis.toml.
Material bootstrap¶
make rke2/cysec-latest/material/bootstrap가 latest24 dotenv와 같은 create-only 호출에서 adjunct dotenv와 issuer/source-redis/를 만든다.
필수 출력 변수:
RKE2_BLOODBAG_CYSEC_LATEST_OUTPUT_ENV_FILE— latest24 36키RKE2_BLOODBAG_CYSEC_LATEST_SOURCE_REDIS_OUTPUT_ENV_FILE— adjunct 4키RKE2_BLOODBAG_CYSEC_LATEST_ISSUER_DIR— latest CA +source-redis/subtree
source CA ca.key는 기존 BLOODBAG_CYSEC_LATEST_CA_PASSPHRASE로 암호화한다. leaf tls.key는 Kubernetes projection용 비암호화다. passphrase는 dotenv/metadata에 복사하지 않는다. JSON은 경로·이름·개수만 출력한다.
Make Interface v2¶
같은 RKE2 context (tirosh-home/rke2/gpu)와 shared lock .cysec-latest/apply.lock.
make rke2/cysec-latest/source-redis/preflight SITE=tirosh-home \
RKE2_BLOODBAG_CYSEC_LATEST_SOURCE_REDIS_ENV_FILE=/absolute/path/to/bloodbag-cysec-latest-source-redis.env \
RKE2_BLOODBAG_CYSEC_LATEST_ENV_FILE=/absolute/path/to/bloodbag-cysec-latest.env
make rke2/cysec-latest/source-redis/plan SITE=tirosh-home \
RKE2_BLOODBAG_CYSEC_LATEST_SOURCE_REDIS_ENV_FILE=/absolute/path/to/bloodbag-cysec-latest-source-redis.env \
RKE2_BLOODBAG_CYSEC_LATEST_ENV_FILE=/absolute/path/to/bloodbag-cysec-latest.env
make rke2/cysec-latest/source-redis/apply SITE=tirosh-home \
RKE2_BLOODBAG_CYSEC_LATEST_SOURCE_REDIS_ENV_FILE=/absolute/path/to/bloodbag-cysec-latest-source-redis.env \
RKE2_BLOODBAG_CYSEC_LATEST_ENV_FILE=/absolute/path/to/bloodbag-cysec-latest.env
make rke2/cysec-latest/source-redis/verify SITE=tirosh-home
preflight/plan/apply는 source TLS 의미, health password, adjunct CA와 latest24 client-trust CA byte equality를 검사한다. 값은 출력하지 않는다.plan은 latest24 dotenv가 필요하다. 의미 검사가 실패하면BLOCKED이며 redacted Secret만 남긴다. Namespace/StorageClass/PVC 없음.apply는 server-side dry-run, ownership gate, digest skip. GitOps Namespace 없으면 fail-closed.verify는 metadata only,valuesChecked=false.tirosh.ai/material-digestlowercase 64-hex shape를 요구한다. 값은 읽지 않는다.
검증¶
make interface/check SITE=tirosh-home
UV_CACHE_DIR=.uv-cache uv run ruff check packages/infra-tools/src packages/infra-tools/tests
UV_CACHE_DIR=.uv-cache uv run pytest packages/infra-tools/tests
make docs/build