Agentbaker는 Azure에서 Kubernetes 노드를 프로비저닝하는 데 사용되는 구성 요소 모음입니다.
베이커 요원은 몇 조각을 가지고 있습니다
Agentbaker의 주요 소비자는 AKS (Azure Kubernetes Service)입니다.
AKS는 AgentBaker를 사용하여 Linux 및 Windows Kubernetes 노드를 프로비저닝합니다.
에이전트 베이커 개발에는 몇 가지 기본 요건이 필요합니다.
모든 개발 도구를 설치하려면 make -C hack/tools install 실행하십시오.
사용자 정의 데이터 또는 사용자 정의 스크립트 확장 페이로드를 생성하는 데 사용되는 코드 또는 아티팩트를 변경하면 make 실행해야합니다.
이 코드를 재창조하여 GO 코드에 정적 파일을 포함시키기 위해 실제로 런타임에 사용됩니다.
이것은 또한 단위 테스트 ( go test ./... 와 동일)를 실행하고 Snapshot TestData를 재생합니다.
우리는 Golangci-Lint를 사용하여 스타일을 시행합니다.
Linter를 설치하려면 make -C hack/tools install 실행하십시오.
실행 ./hack/tools/bin/golangci-lint run .
우리는 현재 제거하고자하는 많은 실패가 있습니다.
풀 요청시 Golangci-Lint를 실행하는 일이 있습니다.
이 작업은 Linters "No-New-Ossues"기능을 사용합니다.
PR이 순 새로운 문제를 도입하지 않는 한 통과해야합니다.
우리는 또한 커밋 메시지 스타일을 시행하는 일렬 작업이 있습니다.
우리는 기존의 커밋을 준수합니다.
단일 커밋으로 풀 요청을 선호합니다.
진행중인 커밋을 정리하려면 git rebase -i 사용하여 Commit을 수정할 수 있습니다.
자세한 내용은 GIT 문서를 참조하십시오.
대부분의 코드는 바닐라 GO 장치 테스트로 테스트 될 수 있습니다.
자세한 내용은 공식 Github 링크를 방문하십시오. 아래는 간단한 사용 사례입니다.
Shellspec 단위 테스트를위한 프레임 워크로 사용됩니다. 설치할 두 가지 옵션이 있습니다.
Shellspec 이미 Makefile에 포함되어 있습니다. Root (/AgentBaker) 디렉토리에서 make tools-install 하거나 make generate 간단히 설치할 수 있습니다.
참고 : make generate Shellspec 테스트를 설치하고 실행합니다.
로컬 컴퓨터에 설치하려면 curl -fsSL https://git.io/shellspec | sh .
기본적으로 ~/.local/lib/shellspec 에 설치해야합니다. 편의를 위해 $ 경로에 추가하십시오. 예제 명령 export PATH=$PATH:~/.local/lib/shellspec .
테스트를 위해 xxx_spec.sh 파일을 작성해야합니다.
예를 들어, AgentBaker/spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh AgentBaker/parts/linux/cloud-init/artifacts/cse_install.sh 의 테스트 파일입니다
Agentbaker 폴더에서 모든 테스트를 실행하려면 Root (/AgentBaker) 디렉토리에서 bash ./hack/tools/bin/shellspec 실행하십시오.
bash ./hack/tools/bin/shellspec -x =>는 -x 사용하여 디버깅에 대한 장방을 보여줍니다.bash ./hack/tools/bin/shellspec -E "<test name>" => -E 와 테스트 이름을 사용하여 단일 테스트 케이스를 실행할 수 있습니다. 예를 들어, bash ./hack/tools/bin/shellspec -E "returns downloadURIs.ubuntu."r2004".downloadURL of package runc for UBUNTU 20.04" . 단일 테스트 사례에 대해 정점 추적을 위해 -xE 수행 할 수도 있습니다.bash ./hack/tools/bin/shellspec "path to xxx_spec.sh" 전체 경로를 특정 사양 파일에 제공하면 AgentBaker 프로젝트의 모든 사양 파일 대신 해당 사양 파일 만 실행할 수 있습니다. 예를 들어, bash ./hack/tools/bin/shellspec "spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh" 또한 스냅 샷 데이터 테스트가있어 키 API의 출력을 디스크의 파일로 저장합니다.
스냅 샷 컨텐츠가 올바른지 수동으로 확인할 수 있습니다.
이제 디스크에 생성 된 파일을 남기지 않고 컨텐츠를 직접 검증 할 수있는 단위 테스트가 있습니다.
예제는 ./pkg/agent/baker_test.go 참조하십시오 (유효성 검사 샘플을 보려면 dynamic-config-dir 를 검색하십시오).
E2E 디렉토리를 확인하십시오.
이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기부금은 귀하가 귀하가 귀하의 기부금을 사용할 권리를 부여 할 권리가 있다고 선언하는 기고자 라이센스 계약 (CLA)에 동의해야합니다. 자세한 내용은 https://cla.opensource.microsoft.com을 방문하십시오.
풀 요청을 제출할 때 CLA 봇은 CLA를 제공하고 PR을 적절하게 장식 해야하는지 자동으로 결정합니다 (예 : 상태 점검, 댓글). 봇이 제공 한 지침을 따르십시오. CLA를 사용하여 모든 저장소에서 한 번만이 작업을 수행하면됩니다.
이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 추가 질문이나 의견이 있으면 행동 강령 FAQ 또는 [email protected]에 문의하십시오.
cgmanifest 파일은 거버넌스에 의해 구성 요소 유형이 지원되지 않을 때 구성 요소를 수동으로 등록하는 데 사용되는 JSON 파일입니다. 파일 이름은 "cgmanifest.json"이며 필요한만큼 가질 수 있으며 저장소의 어느 곳에도있을 수 있습니다.
파일 경로 : ./vhdbuilder/cgmanifest.json
참조 : https://docs.opensource.microsoft.com/tools/cg/cgmanifest.html
패키지: