Skip to content

Latest commit

 

History

History
105 lines (74 loc) · 6.91 KB

2022-cdk8s-annual.md

File metadata and controls

105 lines (74 loc) · 6.91 KB

Background

CDK For Kubernetes (cdk8s) is an open-source software development framework for defining Kubernetes applications and reusable abstractions. Users leverage familiar programming languages and rich object-oriented APIs to create standard Kubernetes manifests which can be applied to any Kubernetes cluster.

CDK8s joined the CNCF on November 10, 2020.

Annual Review

The following contains the requested content for the annual review, as described here.

Include a link to your project’s devstats page.

The full devstats page for cdk8s is available here: https://cdk8s.devstats.cncf.io/d/8/dashboards

  • In the past year, there were 7 community contributions from 3 different users, in 3 different organizations (Palo Alto Networks, GridLine, Cisco). There is an additional contribution that doesn’t show up on devstats, probably because the user isn’t associated with any company.

How many maintainers do you have, and which organizations are they from?

The project currently has 6 maintainers, all from AWS:

What do you know about adoption, and how has this changed since your last review / since you joined Sandbox?

We are currently aware of 7 companies who adopted cdk8s into their production workloads, and an additional 9 who are currently evaluating it. We are in the process of asking them to be added to the ADOPTERS file.

We are also seeing signs of increasing adoption by observing NPM download stats. They show that over the last year, we have grown from ~12k to ~129k downloads a week for the core library. GitHub stars have also increased from 2280 to 3492 stars in the course of the last 15 months.

In addition, the #cdk8s channel in the cdk.dev workspace now contains ~7k members and we see consistent engagement and knowledge sharing. The #cdk8s channel in the CNCF workspace has 54 members and is mostly dormant. This is expected because cdk.dev existed before #cdk8s was accepted to the CNCF, and is the regarded as the main communication channel for all the CDK eco-system.

How has the project performed against its goals since the last review?

Our goals for the project since joining sandbox were:

  1. Stabilize the entire toolchain of the project. This was important for our customers to be able to adopt the tool in their production pipelines. We have successfully done so and released a major version for all of components of the project:

  2. Add support for Golang. Users have expressed desire to author cdk8s in applications in Golang, it was in-fact our mostly highly voted issue in the repository.

  3. Help customers safe guard their Kubernetes workloads by integrating cdk8s into policy compliant pipelines and applying policy-as-code tools on the manifests generated by cdk8s. To that end, we created a spec and a pluggable mechanism in the cdk8s-cli that allows third-party vendors to implement plugins for their tools (e.g Kyverno, Checkov, Kubescape, ...). We have partnered with Datree to create a reference implementation of one such plugin, available here.

Official announcements have been made via the AWS blog:

What are the current goals of the project?

Our goals for 2023 focus on two themes:

  • Make it easier for customers to integrate cdk8s into the existing Kubernetes ecosystem (e.g Helm, ArgoCD, Flux, ...). We'll create foundational content on the cdk8s framework, how-to guides and tutorials that show customers how to integrate cdk8s into their CI/CD pipelines.
  • Make it easier for customers to author complex Kubernetes manifests that leverage cloud services. We will integrate with the AWS CDK and CDK For Terraform to enable applications that contain both Kubernetes and cloud resources.

More information on these goals can be found here.

In addition, we would like to cultivate the community, encourage more contributions, and more contributors that are versed in the codebase. To that end, we will hold monthly community meetings where we will discuss ongoing issues and feature requests for the product. We will focus more on community outreach and educational material in the form of videos and joint coding sessions.

How can the CNCF help you achieve your upcoming goals?

There are several vectors we think CNCF can help the project:

  • Help increase cdk8s market presence. Based on our experience, customers who are aware of cdk8s appreciate its advantages and enjoy using it. However, the challenge lies in the fact that cdk8s is not widely recognized, particularly in larger organizations. While we understand that CNCF does not offer marketing support for sandbox projects, we would appreciate some guidance in this regard.
  • Our goal is to grow the cdk8s community. If CNCF has any best practices from successful CNCF projects, we would like to leverage them for cdk8s. For example, what is discussed during community meetings? how is public planning done? how should we present a roadmap? what are some common contribution obstacles we should be aware of?
  • Do you have some recommendations on how a project such as cdk8s, i.e client side only, can collect usage data? Currently our sources for this are download statistics, but those don’t really map to distinct usage patterns.

Do you think that your project meets the criteria for incubation?

We believe we might be ready for incubation by the end of the year. We are working on a draft due diligence document to start the process and dive deeper into the requirements. Any insight into this would be most appreciated.