Sobre o projeto
Kubebuilder é um framework para criar APIs Kubernetes usando Custom Resource Definitions (CRDs). Semelhante a frameworks de desenvolvimento web como Ruby on Rails e SpringBoot, ele aumenta a velocidade e reduz a complexidade gerenciada pelos desenvolvedores para criar e publicar rapidamente APIs Kubernetes em Go. Ele se baseia nas técnicas canônicas usadas para criar as APIs principais do Kubernetes para fornecer abstrações simples que reduzem boilerplate e trabalho repetitivo.
Kubebuilder não existe como um exemplo para copiar e colar, mas em vez disso fornece bibliotecas e ferramentas poderosas para simplificar a criação e publicação de APIs Kubernetes do zero. Ele fornece uma arquitetura de plugins permitindo que os usuários aproveitem auxiliares e recursos opcionais.
Kubebuilder é desenvolvido sobre as bibliotecas controller-runtime e controller-tools. Ele também é extensível e pode ser usado como uma biblioteca em outros projetos. Operator-SDK é um bom exemplo de projeto que usa Kubebuilder como biblioteca, usando o recurso de plugin para incluir operadores não-Go, como Ansible e Operadores baseados em linguagem Helm.
O framework facilita um fluxo de trabalho do desenvolvedor para criar APIs: criar um novo diretório de projeto, criar uma ou mais APIs de recursos como CRDs, implementar loops de reconciliação em controllers, testar executando contra um cluster, atualizar testes de integração inicializados e criar e publicar um contêiner a partir do Dockerfile fornecido.
O escopo do Kubebuilder abrange a criação de APIs usando CRDs, Controllers e Admission Webhooks. Sua filosofia enfatiza fornecer abstrações de biblioteca limpas com documentação Go clara e bem exemplificada, preferindo interfaces e bibliotecas em vez de geração de código, geração de código em vez de inicialização única de stubs, e inicialização única em vez de boilerplate bifurcado e modificado.
Kubebuilder fornece bibliotecas de nível superior sobre bibliotecas cliente de baixo nível para proteger os desenvolvedores de mudanças disruptivas, começa minimalista e fornece descoberta progressiva de funcionalidades, e fornece padrões sensatos que permitem aos usuários substituí-los quando existem. Ele também fornece geradores de código acionados por comentários // + para manter boilerplate comum, e comandos de bootstrap para inicializar novos pacotes.
Projetos criados pelo Kubebuilder contêm um Makefile que instala ferramentas nas versões definidas durante a criação do projeto, incluindo kustomize, controller-gen e setup-envtest. A versão mínima do Go necessária é determinada pela maior versão mínima do Go exigida por suas dependências.
Kubebuilder suporta oficialmente as plataformas macOS e Linux. Ele é desenvolvido pela comunidade Kubernetes SIGs e segue o modelo típico de pull request do GitHub para contribuições.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.