LabHub
배우기 러닝패스 코스

CBA — Backstage認定アソシエイト

カタログが実際に拒否するものを見る

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

이 실습은 Backstage 의 진짜 라이브러리에서 돕니다

VM 안에 Backstage 의 카탈로그·설정 라이브러리가 설치돼 있습니다. catalog-info.yaml 을 넣으면 실제로 검증되고, 잘못된 것은 거절되고, 여러 app-config.yaml 이 실제로 병합됩니다.

Backstage 인스턴스를 통째로 띄우지 않습니다 — 그건 수백 MB 와 몇 분의 빌드가 걸립니다. 대신 카탈로그에 넣을 때 쓰는 바로 그 라이브러리를 직접 돌립니다. 검증도 병합도 관계 해석도 진짜입니다.

앞 모듈의 카탈로그 실습은 catalog-info.yaml 을 쓰는 연습까지였습니다. 그 YAML 이 실제로 통과하는지는 확인할 방법이 없었습니다.

처음 뜨는 데 4분쯤 걸립니다(npm install 이 인터넷을 탑니다).

준비된 것

프로젝트    /opt/cba (Backstage 라이브러리 설치됨)
검증 도구   validate-entity <yaml파일>
라이브러리  /opt/cba/lib.js (catalog-model·config·yaml)

단계

  1. 엔티티 하나를 만들고 검증을 통과시켜 /root/cba/entity.txt 에 담으세요.
  2. 잘못된 엔티티가 실제로 거절되는 것을 /root/cba/reject.txt 에 담으세요.
  3. 엔티티 참조(parseEntityRef)로 관계가 어떻게 풀리는지 /root/cba/refs.txt 에 담으세요.
  4. 소유자·시스템으로 여덟 종류 엔티티를 이어 /root/cba/graph.txt 에 담으세요.
  5. 여러 app-config.yaml병합해 무엇이 이기는지 /root/cba/config.txt 에 담으세요.
  6. 환경 변수 치환(${...})이 어떻게 도는지 /root/cba/env.txt 에 담으세요.
  7. 카탈로그 전체를 훑어 정합성을 진단/root/cba/audit.txt 에 담으세요.
  8. /root/cba/report.mdvalid=, rejected=yes, merge_winner= 세 줄과 설명을 쓰세요.

참고

카탈로그에 넣을 엔티티

엔티티 하나를 만들고 검증을 통과시켜 /root/cba/entity.txt 에 담으세요.

kind·metadata.name·spec 이 필요합니다. Component 는 type·lifecycle·owner 를 요구합니다.

스키마만으로는 부족하다

잘못된 엔티티가 실제로 거절되는 것을 /root/cba/reject.txt 에 담으세요.

이름에 대문자·공백을 넣어 보고, 모르는 루트 필드를 넣어 보세요. 스키마와 정책이 각각 다른 것을 잡습니다.

참조가 관계를 만든다

엔티티 참조(parseEntityRef)로 관계가 어떻게 풀리는지 /root/cba/refs.txt 에 담으세요.

parseEntityRefuser:default/jdoeteam-a 를 풀어 보세요. 기본 kind·namespace 가 어떻게 채워지는지 보세요.

여덟 종류를 잇는다

소유자·시스템으로 여덟 종류 엔티티를 이어 /root/cba/graph.txt 에 담으세요.

Component·API·Resource·System·Domain·Group·User 를 만들고 owner·system·providesApis 로 이으세요.

설정은 깊게 병합된다

여러 app-config.yaml병합해 무엇이 이기는지 /root/cba/config.txt 에 담으세요.

여러 app-config 를 겹쳐 보세요. 마지막 파일이 전부를 덮어쓰는 게 아니라 키 단위로 병합됩니다.

설정 안의 환경 변수

환경 변수 치환(${...})이 어떻게 도는지 /root/cba/env.txt 에 담으세요.

${VAR} 는 로드 시점에 환경 변수로 치환됩니다. 비밀을 파일에 안 넣는 방법입니다.

카탈로그는 시간이 지나면서 썩는다

카탈로그 전체를 훑어 정합성을 진단/root/cba/audit.txt 에 담으세요.

여러 엔티티를 한꺼번에 검증하고, 통과·거부·소유자 없음을 세어 보세요.

무엇을 배웠나

/root/cba/report.mdvalid=, rejected=yes, merge_winner= 세 줄과 설명을 쓰세요.

valid=, rejected=yes, merge_winner= 세 줄과 설명을 쓰세요.