O AgentBaker é uma coleção de componentes usados para provisionar os nós do Kubernetes no Azure.
Agentbaker tem algumas peças
O consumidor principal do Agentbaker é o Azure Kubernetes Service (AKS).
O AKS usa os nós do Agentbaker para provisionar os nós do Linux e do Windows Kubernetes.
Desenvolvente agente requer alguns requisitos básicos:
Execute make -C hack/tools install para instalar todas as ferramentas de desenvolvimento.
Se você alterar o código ou os artefatos usados para gerar dados de dados personalizados ou de extensão de script personalizados, você deve ser make .
Esse código re-executa para incorporar arquivos estáticos no código GO, que é o que será realmente usado em tempo de execução.
Isso também executa testes de unidade (equivalente a go test ./... ) e regenera o Snapshot testData.
Usamos o Golangci-Lint para aplicar o estilo.
Execute make -C hack/tools install para instalar o linhador.
Run ./hack/tools/bin/golangci-lint run para executar o linter.
Atualmente, temos muitas falhas que esperamos eliminar.
Temos emprego para executar o Golangci-Lint em solicitações de tração.
Este trabalho usa o recurso "sem-notícias".
Enquanto os PRs não introduzirem novos problemas líquidos, eles devem passar.
Também temos um trabalho de linha para aplicar o estilo de mensagem de confirmação.
Aderimos aos comprometimentos convencionais.
Prefira solicitações de puxar com compromissos únicos.
Para limpar os compromissos em andamento, você pode usar git rebase -i para corrigir começos.
Consulte a documentação do Git para obter mais detalhes.
A maioria dos códigos pode ser testada com testes de unidade Vanilla Go.
Visite o link oficial do Github para obter mais detalhes. Abaixo está um breve caso de uso.
Shellspec é usado como uma estrutura para teste de unidade. Existem 2 opções para instalá -lo.
Shellspec já está incluído no Makefile. Você pode instalá-lo simplesmente executando make tools-install ou make generate no diretório root (/agentbaker).
Nota: make generate instalará e executará os testes do ShellSpec.
Se você deseja instalá -lo em sua máquina local, execute curl -fsSL https://git.io/shellspec | sh .
Por padrão, ele deve ser instalado em ~/.local/lib/shellspec . Anexá -lo ao $ Path para sua conveniência. Exemplo export PATH=$PATH:~/.local/lib/shellspec .
Você precisará gravar o arquivo xxx_spec.sh para o teste.
Por exemplo, AgentBaker/spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh é um arquivo de teste para AgentBaker/parts/linux/cloud-init/artifacts/cse_install.sh
Para executar todos os testes, na pasta Agentbaker, basta executar bash ./hack/tools/bin/shellspec no diretório root (/agentbaker).
bash ./hack/tools/bin/shellspec -x => com -x , ele mostrará rastreamento detalhado para depuração.bash ./hack/tools/bin/shellspec -E "<test name>" => Você pode executar um único caso de teste usando -E e o nome do teste. Por exemplo, bash ./hack/tools/bin/shellspec -E "returns downloadURIs.ubuntu."r2004".downloadURL of package runc for UBUNTU 20.04" . Você também pode fazer -xE para rastreamento detalhado para um único caso de teste.bash ./hack/tools/bin/shellspec "path to xxx_spec.sh" => fornecendo um caminho completo um arquivo específico específico, você pode executar apenas esse arquivo de especificação em vez de todos os arquivos de especificações no projeto Agentbaker. Por exemplo, bash ./hack/tools/bin/shellspec "spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh" Também temos testes de dados instantâneos, que armazenam a saída das APIs de chave como arquivos no disco.
Podemos verificar manualmente que o conteúdo do instantâneo parece correto.
Agora temos testes de unidade que podem validar diretamente o conteúdo sem deixar arquivos gerados no disco.
Veja ./pkg/agent/baker_test.go para exemplos (procure dynamic-config-dir para ver uma amostra de validação.).
Confira o diretório E2E.
Este projeto recebe contribuições e sugestões. A maioria das contribuições exige que você concorde com um Contrato de Licença de Colaborador (CLA) declarando que você tem o direito e, na verdade, concede -nos os direitos de usar sua contribuição. Para detalhes, visite https://cla.opensource.microsoft.com.
Quando você envia uma solicitação de tração, um BOT do CLA determina automaticamente se você precisa fornecer um CLA e decorar o PR adequadamente (por exemplo, verificação de status, comentar). Simplesmente siga as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios usando nosso CLA.
Este projeto adotou o Código de Conduta Open Microsoft. Para obter mais informações, consulte o Código de Conduta Perguntas frequentes ou entre em contato com [email protected] com quaisquer perguntas ou comentários adicionais.
Um arquivo cGManifest é um arquivo JSON usado para registrar componentes manualmente quando o tipo de componente não é suportado pela governança. O nome do arquivo é "cgmanifest.json" e você pode ter o máximo necessário e pode estar em qualquer lugar do seu repositório.
Caminho do arquivo: ./vhdbuilder/cgmanifest.json
Referência: https://docs.opensource.microsoft.com/tools/cg/cgmanifest.html
Pacote: