Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CDK For Kubernetes (cdk8s) 2022 Annual Review #1024

Merged
merged 5 commits into from
Jan 2, 2024
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 101 additions & 0 deletions reviews/2022-cdk8s-annual.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
## 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](https://github.com/cncf/toc/blob/main/process/sandbox-annual-review.md).

### 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](https://cdk8s.devstats.cncf.io/d/56/company-commits-table?orgId=1&from=now-1y&to=now&var-repogroups=All&var-companies=Palo%20Alto%20Networks&var-companies=Cisco&var-companies=GridLine)
from 3 different users, in 3 different organizations (Palo Alto Networks, GridLine, Cisco). There is an additional [contribution](https://github.com/cdk8s-team/cdk8s-cli/pull/324)
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 4 maintainers, all from AWS:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iliapolo from https://github.com/cdk8s-team/cdk8s/blob/master/OWNERS.md it looks like there are 7 maintainers, all from AWS. Does OWNERS.md or this file need to be updated for accuracy?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One maintainer (Ryan Parker) needs to be removed as he is no longer involved in the project. Everything else is accurate.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR! :)

Updated this file as well to reflect the correct state.


* [@iliapolo](https://github.com/iliapolo)
* [@vinayak-kukreja](https://github.com/vinayak-kukreja)
* [@sumupitchayan](https://github.com/sumupitchayan)
* [@ryparker](https://github.com/ryparker)

### 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](https://github.com/cdk8s-team/cdk8s/blob/master/ADOPTERS.md) file.

We are also seeing signs of increasing adoption by observing [NPM download stats](https://npm-stat.com/charts.html?package=cdk8s&from=2022-01-01&to=2023-02-23).
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](https://star-history.com/#cdk8s-team/cdk8s&Date) stars in the course of the last 15 months.

In addition, the #cdk8s channel in the [cdk.dev](https://cdk.dev/) workspace now contains ~7k members and we
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iliapolo could you please add CNCF slack channel stats?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added

see consistent engagement and knowledge sharing.

### 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:

* [cdk8s-cli](https://github.com/cdk8s-team/cdk8s-cli)
* [cdk8s-core](https://github.com/cdk8s-team/cdk8s-core)
* [cdk8s-plus](https://github.com/cdk8s-team/cdk8s-plus)

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](https://github.com/cdk8s-team/cdk8s/issues/119) 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](https://www.datree.io/) to create a reference
implementation of one such plugin, available [here](https://github.com/datreeio/datree-cdk8s).

Official announcements have been made via the AWS blog:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iliapolo are there any vendor neutral blog sources you can share?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You mean blogs posted by maintainers in other sources? All our blogs currently use the AWS blog. There are many third-party blogs about cdk8s posted on other sources though - would you like links to those?


* https://aws.amazon.com/blogs/containers/announcing-the-general-availability-of-cdk8s-and-support-for-go/
* https://aws.amazon.com/blogs/containers/announcing-general-availability-of-cdk8s-plus-and-support-for-manifest-validation/

### 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](https://github.com/cdk8s-team/cdk8s/discussions?discussions_q=label%3Aplanning%2F2023+).

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.