Saltar a contenido

13 - Picking a Project

What this session is

About 30 minutes plus browsing. What "Kubernetes-adjacent" OSS looks like and how to evaluate one.

What kinds of projects accept first contributions

With Kubernetes skills (without needing deep Go programming), you can contribute to:

  • Helm charts - fixes, defaults, docs, examples.
  • Kustomize bases / overlays - same idea.
  • kubectl plugins - small CLIs that extend kubectl.
  • Operators (read-only) - docs, sample manifests, bug reports.
  • Documentation - k8s.io itself, controller docs, chart docs.
  • GitHub Actions for K8s - useful tooling.
  • CRD examples / starter manifests.

For deep code contributions (operators, controllers, kubectl itself), you'll need Go fluency - see Go from scratch.

10-minute evaluation

Same as other beginner paths:

Signal Target
Stars 100-50000
Last commit Within a month
Open PRs Some, not 200+
Recent PR merge time Under 14 days
good first issue count ≥5
CONTRIBUTING.md exists yes
Local install works (helm install or kubectl apply) yes

Candidates

Tier 1 - Helm charts (small surface)

  • bitnami/charts - Bitnami's chart collection. Each chart is a separate component. Excellent labels, very responsive.
  • prometheus-community/helm-charts - Prometheus ecosystem.
  • grafana/helm-charts - Grafana, Loki, Tempo, Mimir.
  • cert-manager/cert-manager - TLS automation. Has its own chart + docs.

These accept Helm-only PRs - chart value defaults, missing values examples, README clarifications.

Tier 2 - kubectl plugins and small tools

  • derailed/k9s - terminal UI for K8s. Active, Go.
  • stern/stern - multi-pod log tail. Go.
  • ahmetb/kubectx - kubectx/kubens. Small Go.
  • kubectl-plugin-list - search for kubectl plugins; many small ones exist.
  • vmware-tanzu/velero - K8s backup/restore tool.

These often have Go code; some have shell or YAML-only changes available too.

Tier 3 - bigger projects, with K8s focus

  • argoproj/argo-cd - GitOps for K8s. Big project, well-organized.
  • fluxcd/flux2 - alternative GitOps tool.
  • kubernetes-sigs/... - many smaller projects under the kubernetes-sigs org. Each is more focused than the main kubernetes/kubernetes repo.

Tier 4 - don't start here

  • kubernetes/kubernetes itself - huge, slow review, CLA required.
  • prometheus/prometheus - popular but big.

Finding issues

Project's Issues → Labels. Filter by: - good first issue - help wanted - documentation - helm (if Helm-specific)

Comment to claim. Wait for maintainer.

What counts

Real contributions for someone with K8s skills:

  • Fix a chart value default that's broken on a specific platform (ARM, EKS, etc.).
  • Add a missing example to a chart's README.
  • Improve the documentation for a CRD field.
  • Add a missing app.kubernetes.io/version label.
  • Fix a broken example in the docs.
  • Add a kubectl plugin to a curated list.
  • Add a missing test for a Helm template helper.
  • Improve an Ingress example to include TLS and HTTPS redirect.

All real. All count.

Exercise

  1. Browse three Tier 1 / Tier 2 projects.
  2. 10-minute evaluation.
  3. Pick the most responsive with good first issues.
  4. Read CONTRIBUTING.md.
  5. Clone:
    git clone https://github.com/<owner>/<repo>
    cd <repo>
    
    If it's a Helm chart, try installing it locally:
    helm install test ./charts/<chartname> -n test --create-namespace
    helm uninstall test -n test
    
  6. Browse good first issue tickets; pick two candidates. Don't claim yet.

What you might wonder

"What if I'm intimidated by the Operator/controller projects?" Skip them. There's plenty of work that's pure YAML / Helm / docs. Operators are Go code with deep K8s API knowledge - a separate skill set.

"What's a CNCF project?" The Cloud Native Computing Foundation hosts many of the most-used K8s ecosystem projects (Prometheus, Envoy, Helm, Argo, Linkerd, etc.). CNCF projects tend to have well-defined governance and contribution processes. Browse cncf.io/projects.

Done

  • Articulate K8s-OSS contribution shapes.
  • Run a 10-minute evaluation.
  • Have specific candidate projects.

Next: Anatomy of a K8s-related OSS project →

Comments