DEV Community

Shardul Srivastava
Shardul Srivastava

Posted on • Edited on

Getting Started with Contributing to CNCF: A Beginner's Guide

Contributing to CNCF is not difficult, but let me tell you what's difficult..

Finding out where to start contributing.

Image description

So Let's start to peel the onion, the first thing you should do is to go through this amazing CNCF Landscape. This landscape covers not just the CNCF projects but also member projects.

Image description

You can find an exhaustive list of all the CNCF Graduated and Incubating projects here.

Did I say Gradudated and Incubating... What's that ??

Image description

CNCF has a lot of projects under its umbrella, they are categorized based on their maturity levels, here are three different categories:

  1. Graduated - CNCF Graduated projects are mature, widely adopted, and have a mind-boggling community behind them. Kubernetes is one of the examples of Graduated CNCF projects.

  2. Incubating - CNCF Incubating projects are on their way to graduation but are still maturing. They have proven technical merit and community growth but may need to enhance their processes.

  3. Sandbox - CNCF Sandbox projects are early-stage projects that are in the process of establishing their community and technical merit

Here is a very handy link to all the CNCF projects across maturity levels.

This would help you to understand what are the projects and you will find that most of the cloud-related open-source projects are maintained by CNCF.

How to find the right issues

Use these Github queries to find the beginner-friendly issues from CNCF graduated, incubating and sandbox projects.

CNCF Graduated Projects

is:issue is:open  label:"good first issue"  repo:kubernetes/kubernetes repo:prometheus/prometheus repo:etcd-io/etcd repo:containerd/containerd repo:linkerd/linkerd2 repo:fluent/fluent-bit repo:helm/helm repo:opencontainers/runc repo:cni-org/cni repo:envoyproxy/envoy repo:jaegertracing/jaeger repo:grpc/grpc repo:vitessio/vitess repo:tuf/tuf repo:opentelemetry/opentelemetry-collector repo:tikv/tikv repo:dragonflyoss/Dragonfly2 repo:argoproj/argo-cd repo:falcosecurity/falco repo:openpolicyagent/opa repo:thanos-io/thanos repo:fluxcd/flux2 repo:longhorn/longhorn repo:cert-manager/cert-manager repo:contour-org/contour repo:emissary-ingress/emissary repo:harvester/harvester repo:k3s-io/k3s repo:kubeedge/kubeedge repo:kubeflow/kubeflow repo:kubewarden/kubewarden-controller repo:kyverno/kyverno repo:openservicemesh/osm repo:paralus/paralus repo:serverlessworkflow/specification repo:spire/spire repo:tremor-rs/tremor-runtime repo:wasmCloud/wasmcloud repo:keptn/keptn repo:backstage/backstage repo:openfeature/spec repo:cloudevents/spec repo:knative/serving repo:crossplane/crossplane repo:openebs/openebs repo:opencost/opencost repo:open-cluster-management-io/OCM repo:operator-framework/operator-sdk repo:porter-dev/porter repo:pravega/pravega repo:submariner-io/submariner repo:telepresenceio/telepresence repo:tricksterproxy/trickster repo:virtual-kubelet/virtual-kubelet repo:volcano-sh/volcano repo:weaveworks/weave repo:openyurtio/openyurt repo:meshery/meshery repo:chaos-mesh/chaos-mesh repo:openkruise/kruise repo:openelb/openelb repo:sealer/sealer repo:devfile/api repo:antrea-io/antrea repo:litmuschaos/litmus repo:karmada-io/karmada repo:openfunction/openfunction repo:open-gateway/gateway-api
Enter fullscreen mode Exit fullscreen mode

CNCF Incubating Projects

is:issue is:open label:"good first issue"
repo:artifacthub/hub repo:backstage/backstage repo:buildpacks/pack repo:chaos-mesh/chaos-mesh repo:cloud-custodian/cloud-custodian repo:containernetworking/cni repo:projectcontour/contour repo:cortexproject/cortex repo:crossplane/crossplane repo:dragonflyoss/Dragonfly2 repo:emissary-ingress/emissary repo:flatcar/flatcar repo:grpc/grpc repo:karmada-io/karmada repo:keptn/keptn repo:keycloak/keycloak repo:knative/serving repo:kubeflow/kubeflow repo:kubescape/kubescape repo:kubevela/kubevela repo:kubevirt/kubevirt repo:kyverno/kyverno repo:litmuschaos/litmus repo:longhorn/longhorn repo:nats-io/nats-server repo:notaryproject/notary repo:opencost/opencost repo:open-feature/spec repo:openkruise/kruise repo:opentelemetry/opentelemetry-collector repo:openyurtio/openyurt repo:operator-framework/operator-sdk repo:strimzi/strimzi-kafka-operator repo:thanos-io/thanos repo:volcano-sh/volcano repo:wasmCloud/wasmcloud

Enter fullscreen mode Exit fullscreen mode

CNCF Sandbox Projects

is:issue is:open label:"good first issue"
repo:aeraki-mesh/aeraki repo:akri-sh/akri repo:antrea-io/antrea repo:armadaproject/armada repo:yahoo/athenz repo:runatlantis/atlantis repo:banzaicloud/bank-vaults repo:bfenetworks/bfe repo:bpfman/bpfman repo:projectcapsule/capsule repo:carina-io/carina repo:cartography-cncf/cartography repo:carvel-dev/ytt repo:cdk8s-team/cdk8s repo:chaosblade-io/chaosblade repo:cloudnative-pg/cloudnative-pg repo:clusternet/clusternet repo:clusterpedia-io/clusterpedia repo:confidential-containers/confidential-containers repo:connectrpc/connect-go repo:containerssh/containerssh repo:project-copacetic/copacetic repo:cozystack/cozystack repo:devfile/api repo:devspace-sh/devspace repo:devstream-io/devstream repo:dexidp/dex repo:distribution/distribution repo:easegress-io/easegress repo:eraser-dev/eraser repo:external-secrets/external-secrets repo:fluid-cloudnative/fluid repo:Project-HAMi/HAMi repo:headlamp-k8s/headlamp repo:hexa-org/policy-orchestrator repo:hwameistor/hwameistor repo:hyperlight-dev/hyperlight repo:inclavare-containers/inclavare-containers repo:inspektor-gadget/inspektor-gadget repo:interTwin-eu/interLink repo:k0sproject/k0s repo:k3s-io/k3s repo:k8gb-io/k8gb repo:k8sgpt-ai/k8sgpt repo:k8up-io/k8up repo:kairos-io/kairos repo:kanisterio/kanister repo:kcl-lang/kcl repo:kcp-dev/kcp repo:sustainable-computing-io/kepler repo:keylime/keylime repo:kgateway-dev/kgateway repo:kitops-ml/kitops repo:kmesh-net/kmesh repo:ko-build/ko repo:konveyor/operator repo:koordinator-sh/koordinator repo:kptdev/kpt repo:krkn-chaos/krkn repo:kuadrant/kuadrant-operator repo:kuasar-io/kuasar repo:kube-burner/kube-burner repo:kubeovn/kube-ovn repo:kube-rs/kube repo:kube-vip/kube-vip repo:kubean-io/kubean repo:kubearmor/kubearmor repo:kubeclipper/kubeclipper repo:kuberhealthy/kuberhealthy repo:kubeslice/kubeslice repo:kubestellar/kubestellar repo:kubewarden/kubewarden-controller repo:kudobuilder/kudo repo:kumahq/kuma repo:kubereboot/kured repo:KusionStack/kusion repo:lima-vm/lima repo:kube-logging/logging-operator repo:loxilb-io/loxilb repo:merbridge/merbridge repo:meshery/meshery repo:metallb/metallb repo:metal3-io/baremetal-operator
Enter fullscreen mode Exit fullscreen mode

How to start doing the setup.

Well every project has it's own guide on how to get started, reading through CONTRIBUTING.md would help you with setting up the project local.

How to check your contributions

CNCF has a score system that tells how much you have contributed to CNCF projects, you can check your score here.

https://devstats.cluster.fun/

If you came this far, let me share something that will help you to get up to date with what's going on

How to interact with the community behind the projects

If you are interested in contributing into any projects, always join their slack channel in CNCF, here is how you can get invited to the CNCF slack - https://communityinviter.com/apps/cloud-native/cncf.

Top comments (0)