Add platform infrastructure configuration
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# k3s Secret 암호화 host drop-in
|
||||
|
||||
`40-secrets-encryption.yaml`은 Kubernetes API에 적용하는 Kustomize resource가
|
||||
아니라, k3s server host의 설정 조각이다. bootstrap 담당자는 이 파일을 다음처럼
|
||||
live drop-in 경로에 설치한다.
|
||||
|
||||
```sh
|
||||
install -o root -g root -m 0644 \
|
||||
infrastructure/security/k3s/40-secrets-encryption.yaml \
|
||||
/etc/rancher/k3s/config.yaml.d/40-secrets-encryption.yaml
|
||||
```
|
||||
|
||||
따라서 이 디렉터리에는 `kustomization.yaml`을 만들지 않는다. 이 파일은 정확히
|
||||
`secrets-encryption`과 `secrets-encryption-provider` 두 key만 가지며, Kubernetes
|
||||
manifest metadata나 다른 host 설정을 넣지 않는다.
|
||||
|
||||
실제 적용 순서, validator 판정, 서버 token 취급, 재암호화 대기와 중단 조건은
|
||||
[`bootstrap/manual/k3s-secret-encryption.md`](../../../bootstrap/manual/k3s-secret-encryption.md)를
|
||||
따른다. 이 artifact 자체를 자동 삭제하거나 기존 운영 설정을 덮어쓰지 않는다.
|
||||
|
||||
## 로컬 recovery 하드웨어 계약
|
||||
|
||||
`local-recovery.env`는 로컬 암호화 recovery 저장소에 사용할 디스크 identity,
|
||||
mount 경로와 용량 기준만 담는 비밀 없는 계약 파일이다. 이 파일은 shell에서
|
||||
`source`하지 않는다. `scripts/lib/k3s-local-recovery.sh`의 parser가 허용된 key가
|
||||
정확히 한 번씩 있는지, 각 행의 `KEY=VALUE` 형식과 값 문법이 맞는지를 확인한 뒤
|
||||
데이터로만 읽는다. 알 수 없는 key, 중복·누락 key, 상대 장치 경로, 공백·인용부호·명령
|
||||
치환을 포함한 값은 모두 실패 처리한다.
|
||||
|
||||
용량 helper는 Bash signed 64-bit 정수 범위를 넘기기 전에 실패한다. 내부 recovery
|
||||
공간은 각 backup phase의 125%를 두 번과 10GiB 최소 여유로 계산한다. 외부 NTFS
|
||||
공간 판정은 최종 container와 header-proof용 완전 할당 copy, 10GiB 최소 여유,
|
||||
전체 용량의 20% 잔여 공간을 함께 예약한다. 이 단계는 순수 parser·계산만 제공하며
|
||||
mount, format, package 설치, `cryptsetup`, k3s 변경을 수행하지 않는다.
|
||||
Reference in New Issue
Block a user