CAPA — Argo 프로젝트 인증 어소시에이트 · AppProject·ApplicationSet·멀티테넌시 · 퀴즈
퀴즈: AppProject 와 ApplicationSet
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
AppProject 의 clusterResourceWhitelist 와 namespaceResourceBlacklist 에 대한 설명으로 옳은 것은?
- 클러스터 스코프는 적힌 것만 허용, 네임스페이스 스코프는 적힌 것만 금지로 방향이 반대다
- 둘 다 허용 목록이라 적힌 종류만 만들 수 있다
- 둘 다 금지 목록이라 적힌 종류만 못 만든다
- 네임스페이스 스코프는 적힌 것만 허용, 클러스터 스코프는 적힌 것만 금지로 방향이 반대다
AppProject 에 평일 09시부터 9시간 allow 창과 토·일 종일 deny 창이 함께 있다. 토요일 오전에 자동 동기화는 어떻게 되는가?
- 허용된다. 나중에 정의된 창이 이긴다
- 허용된다. allow 가 명시적으로 지정됐기 때문
- 금지된다. deny 가 allow 를 이긴다
- 판단할 수 없어 컨트롤러가 에러를 낸다
ApplicationSet 에서 `{{ if eq .env "production" }}` 같은 조건 표현을 쓰려면 무엇이 필요한가?
- spec.goTemplate 를 true 로 설정한다
- goTemplateOptions 에 missingkey=error 를 넣는다
- 제너레이터를 matrix 로 바꾼다
- 아무 설정 없이 기본 엔진에서 동작한다
matrix 제너레이터와 merge 제너레이터의 차이로 옳은 것은?
- matrix 는 두 제너레이터 결과의 곱집합을 만들고, merge 는 mergeKeys 로 조인해 값을 덮어쓴다
- matrix 는 클러스터 전용이고 merge 는 Git 전용이다
- matrix 는 조인이고 merge 는 곱집합이다
- 둘은 같은 동작이고 이름만 다르다
app-of-apps 패턴에서 특히 조심해야 할 설정은?
- 부모 Application 의 prune 설정. 부모를 지우거나 Git 에서 자식이 사라지면 자식 Application 이 전부 prune 대상이 된다
- 부모 Application 의 targetRevision
- 자식 Application 이 가리키는 destination.server 주소
- 자식 Application 의 project 이름
AppProject 의 destinations 로 네임스페이스를 제한했는데도 그 테넌트가 노드 자원을 독점할 수 있다. 이 간극을 메우는 것은?
- sourceRepos 를 더 좁게 지정한다
- 네임스페이스에 ResourceQuota 와 LimitRange 를 두고, 테넌트가 그것을 만들지 못하도록 namespaceResourceBlacklist 에 넣는다
- syncWindows 를 추가한다
- AppProject 의 roles 정의에서 sync 권한을 빼고 읽기 권한만 남겨 두면 된다