OLÁ!!!!
Antes de começarmos, seguem alguns links úteis:
● Assinar o CLA (Contributor License Agreement):
○ https://bit.ly/k8s-cla
● Slack do evento (fale com a gente!!)
○ https://cloud-native.slack.com/messages/kcd-brasil/
● Essa apresentação:
○ https://bit.ly/contrib-summit-br
Kubernetes
Contributors Workshop
Carlos Panato
Edson Celio
Ricardo Katz
Yago Nobre
Kubernetes Community Days Brazil
Antes de iniciarmos!
Nossa Experiência
Comunidade
O que você deve saber
● A comunidade K8s é organizada em sub-grupos
● Special Interest Groups, SIGs
○ Subprojects
● Working Groups, WGs
● Comites
● Grupos de usuários
O que você deve saber
Special Interest Group
Cada SIG é como se fosse
uma pequena comunidade do
k8s, pois este é um projeto
muito grande e não teria como
ter um grupo com mais de
2000 pessoas.
Tipos de SIGs
1.Feature Areas
2.Plumbing
3.Meta
4.Docs
5.Cloud Provider
SIGs relacionados a
funcionalidades
sig-auth
sig-apps
sig-autoscaling
sig-cli
sig-multicluster
sig-network
sig-node
sig-scalability
sig-scheduling
sig-service-catalog
sig-storage
sig-ui
“Plumbing” SIGs
sig-api-machinery
sig-cluster-lifecycle
sig-instrumentation
Meta
sig-architecture
sig-contributor-experience
sig-release
sig-testing
Documentação & Website
sig-docs
sig-docs-blog
sig-security-docs
Cloud Provider
Cada Cloud Provider é um subprojeto desse SIG.
● kubernetes-cloud-provider
● provider-alibaba-cloud
● provider-aws
● provider-azure
● provider-gcpprovider-huaweicloud
● provider-ibmcloud
● provider-openstack
● provider-vsphere
Working Groups & Subprojects
Working Groups: esforço entre SIGs
Subprojects: Área de foco em um SIG
Para:
● Ferramentas (ex. Kubectl)
● Objetivos (ex. Code Cleanup, Contributor Site)
● Áreas (ex. Machine Learning)
Working Groups
wg-api-expression
wg-component-standard
wg-data-protection
wg-iot-edge
wg-multitenancy
wg-naming
wg-policy
wg-reliability
wg-structured-logging
Subprojetos
Os projetos estão em uma
outra org do GitHub
kubernetes-sigs/
cluster-api
kustomize
kubespray
User Groups
Sem codebase ownership
Tópicos de interesse são
compartilhados entre um
grande grupo de usuários
ug-big-data
ug-vmware-users
Comitês
Governança orientada a
projetos
Apenas por convite ou
eleições
Três comitês:
Steering
Security Response
Code of Conduct
https://github.com/kubernetes/community/blob/master/README.md#governance
Escolhendo um SIG
1. Procure os projetos ou áreas que você gostaria de ajudar.
2. Veja quais SIGs/subproject cobre esta(s) área(s)
a. Pergunte no #sig-contribex
3. Junte-se ao SIG/subprojeto
a. no Slack
b. lista de emails
Entrando em um SIG
1. Entre na mailing-list do SIG.
Qualquer um pode entrar!
Ao entrar na lista você já recebe os convites
para as agendas do SIG!
1. Parabéns! Você agora faz parte de um SIG.
Referência rápida
Governance reference
Project Group List
sigs.yaml configuration file
Comunicação
Mantendo contato
● Como fazemos?
○ Mailing List / Lista de emails
○ Slack
○ Reuniões no Zoom
● Iniciativas de reunião assíncronas:
○ Alternando entre threads no Slack e reuniões no Zoom - Experiência no #sig-
contribex
○ Reuniões amigáveis com timezone APAC para o time de Releases
○ Mais conversas no Slack e lista de emails, depender menos de reuniões
Meetings
Um pequena tour nos
repositórios do
Kubernetes
Projetos
k/community
k/enhancements
k/steering
k/test-Infra
k/perf-tests
Contributor-experience
Release, Architecture
Steering Committee
Testing
Scalability, Testing
Repositório SIG(s) associada
Developer Tools
k/sample-controller
k/sample-apiserver
k/code-generator
k/kubernetes-template-project
Repositórios de staging
api
apiextensions-apiserver
apimachinery
apiserver
client-go
code-generator
kube-aggregator
metrics
sample-apiserver
SIG Repos
k/release
k/federation
k/autoscaler
Cloud Provider Repos
k/cloud-provider-azure
k/cloud-provider-gcp
k/cloud-provider-openstack
k/cloud-provider-alibaba-cloud
k/cloud-provider-vsphere
k/cloud-provider-aws
Produtos & Ferramentas
kubeadm
kubectl
kops
kompose
ingress-nginx
minikube
dashboard
kube-openapi
k/k8s.io
kubernetes-sigs
subprojects
Docs/Website
k/website - docs
Estrutura do k/website
● Website
● Documentação
● Blog
● Referências (e Glossário)
https://kubernetes.io/docs/home/
Estrutura do k/website
● Escrito em markdown (.md) e deploy feito com Hugo
https://kubernetes.io/docs/home/
Estrutura do k/website
● Escrito em markdown (.md) e deploy feito com Hugo
https://kubernetes.io/docs/home/
Localização
https://kubernetes.io/docs/home/
https://www.w3.org/International/questions/qa-i18n
Localização: Português (PT-BR)
De que forma posso contribuir?
https://kubernetes.io/pt-br/docs/contribute/
Localização PT-BR: Por onde começar
Entender como funciona o projeto
https://github.com/kubernetes/website/blob/main/README-pt.md
Localização PT-BR: Por onde começar
Entrar no canal do projeto no slack do kubernetes
(https://slack.k8s.io/)
#kubernetes-docs-pt
https://bit.ly/3K84gbRz
Localização PT-BR: Por onde começar
Marcar a página/atividade que vai traduzir na planilha de
acompanhamento e começar sua atividade!
https://bit.ly/3K84gbRz
Localização PT-BR: Por onde começar
Quando considerar que sua contribuição está pronta, abrir um PR
(Pull Request) e aguardar as interações de revisão
https://github.com/kubernetes/website/pulls
Localização PT-BR
https://github.com/ashleymcnamara/gophers/blob/master/Kubernetes_Gophers.png
Pronto, você já consegue trabalhar na sua contribuição para a
documentação do kubernetes!
Qual é o processo para
adicionar uma feature?
GitHub Issue -
Feature Request
GitHub PR - Feature
Implementation
GitHub Issue -
Feature Request
GitHub PR - Feature
Implementation
Design
KEP!
Kubernetes Enhancement Proposal
https://git.k8s.io/enhancements
KEP!
Kubernetes Enhancement Proposal
https://git.k8s.io/enhancements
Quando um KEP deve ser criado?
● Mudanças significativas
● Envolve vários grupos/areas
● Mudança importante no código
● Mudanças que impactam UX
Quando enviar um KEP?
● Mudanças significativas
● Envolve vários grupos/areas
● Mudança importante no código
● Mudanças que impactam UX
● Correção de testes
● Refatoração de código
● Adicionar mais logs
● Adicionar mais eventos
● Melhoria na performance sem impacto
em UX
Repositório principal
A maioria dos SIGs "patrocina" o monolito.
As áreas que cada SIG é responsável pode ser
encontradas em https://git.k8s.io/community/sigs.yaml
kubernetes/kubernetes
Saímos para o almoço e
voltamos 12:30!!
Como achar a sua
primeira Issue?
Good first issues
https://go.k8s.io/good-first-issue
Source: Bob Killen/Sahdev Zala on #sig-contribex
Após a primeira issue
https://go.k8s.io/help-wanted
Source: Bob Killen/Sahdev Zala on #sig-contribex
Refactor, documentação de
código, escrita de testes,
correção de testes!
…. e não apenas com código
https://k8s.dev/docs/guide/non-code-contributions/
Escada de responsabilidades
Programas de Mentoria
Programas de Mentoria
● Meet Our Contributors - #meet-our-contributors
● Mentoria de grupos
● Google Summer of Code
● Linux Foundation LFX Mentorship Program
Programa
Release Shadow
Kubernetes Release Team
● Periodicamente uma nova versão do Kubernetes é liberada
● Verifica e Gerencia as features e se estarão disponíveis para serem liberadas
dentro de uma janela de tempo
● Garante que os artefatos gerados no processo de release tenham um certo
nível de qualidade
Image Source: https://git.k8s.io/sig-release/release-team/release-team.svg
O que é o Release Shadow program?
● Segue o modelo de aprendizagem
● Aprende-se fazendo
● Ajuda os contribuidores a ampliar sua área de conhecimento
https://git.k8s.io/sig-release/release-team/shadows.md
Como posso participar?
O tenho que fazer?
1. Leia o role handbooks para entender as responsabilidades de cada papel
2. Pergunte no #sig-release em casos de dúvidas
3. Preencha o formulário
4. Espere pelo anúncio dos selecionados
Contributor License Agreement
● Contribuidores do projeto Kubernetes precisam assinar a CLA
● Requerido para determinar o status legal das contribuições
● Existem dois tipos de CLA:
1. Individual
2. Corporativo
Nota: Verifique na sua empresa se você deve assinar o CLA corporativo
https://git.k8s.io/community/CLA.md
Labels
Como falar com a automação do K8s
https://issues.k8s.io
Labels necessários para Issues
Na criação:
sig/
kind/
Para adicionar depois:
priority/
https://go.k8s.io/bot-commands
SIG Label
Label
sig/auth
sig/testing
sig/api-machinery
sig/node
Comando do Bot
/sig auth
/sig testing
/sig api-machinery
/sig node
Adicionando um label a um pull request ou issue
Kind Label
kind/bug kind/failing-test
kind/feature kind/flake
kind/documentation kind/cleanup
kind/design
Exemplo do comando do bot : /kind feature
priority/ label
priority/critical-urgent
priority/important-soon
priority/important-longterm
priority/backlog
priority/awaiting-evidence
Exemplo do comando do bot : /priority critical-urgent
Additional Labels for Pull Requests
release-note
approved
lgtm
cherry-pick-approved (apenas em certos estágios do ciclo de release)
https://prs.k8s.io
Labels podem te ajudar a encontrar sua primeira issue!
help wanted
● Baixa barreira de entrada
● Tarefa normalmente fácil
good first issue
● Focado em novos contribuidores
● Tem suporte e orientação
Bots
Diga Oi para o k8s-ci-robot!
@TheNikhita
PRs e Bots: GitHub PR Flow
PRs e Bots: Kubernetes PR Flow
1. Você abre um Pull Request (PR)
2. Você adiciona labels & notas
3. Bots valida e comenta nos PR
release-note cncf-cla: no needs-ok-to-test needs-kind needs-sig
1. Você adiciona mais labels & notas & resolve comentários de
review
2. SIGs & OWNERS review e /approve → approved
3. Outros contribuidores podem dar /lgtm → lgtm
4. Tests ok
5. Tide merges o PR
https://prow.k8s.io/command-help
Comando
/assign @username
/retest
/close
/cc @username
Result
Associa um usuário
Re-executa testes que falharam
Fecha PRs e Issues
Marca um usuário p/ revisão
PRs e Bots: Comandos úteis
PRs e Bots: Reviewers/Approvers
PRs e Bots: Reviewers/Approvers
● Adiciona /sig label
● Fale com o seu mentor(s)
● Entre em contato com a SIG
○ atenda uma SIG meeting
○ pergunte no Slack
○ envie um email para a list
● Entre em contato com OWNERS
PRs e Bots: Test Results
PRs e Bots: Following Up
Respondas as questões
Resolva:
Mensagens do Bot
Comentários no código
Falhas nos Testes
Hands-on session
Bem-Vindo!!

Kubernetes New Contributors Workshop - Brasil 2022