-
Notifications
You must be signed in to change notification settings - Fork 25
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
CEL Playground #95
Comments
@amye could you tag as TAG App Delivery please? |
TAG-Runtime & TAG App-Delivery |
/cc |
@dmueller2001 Do you envision this as something that folks would run private instances of their own or is it just one public instance like artifacthub? What do you see in its future? does it extend beyond CEL? (how do you foresee building a set of dedicated end users and maintainers, how to attract and retain them over time) thanks, |
@dims , Thank you for asking for clarification on CEL Playground’s goals, use cases, deployment models, and community development efforts. The CEL Playground project provides an interactive environment to write, test, and debug expressions using the Common Expression Language (CEL). CEL is designed to be portable across different systems and languages, enabling users to write expressions in a consistent syntax regardless of the underlying platform. The CEL Playground simplifies the development and testing of CEL expressions, making it easier for developers to integrate CEL into their applications. We do not at this time have any plans to extend the playground beyond supporting CEL. Current Use Cases and Deployment Models:
The current GetUp Cloud-hosted CEL Playground runs the latest release for use by the CEL Playground community. Hosting a deployment of the latest release by CNCF might also be feasible and desirable once we’ve established a track record in the CNCF sandbox and/or upon achieving incubation status. We would also like to see all references of CEL use within the Kubernetes documentation include a CEL Playground link to the example so readers can develop a deeper understanding of the Kubernetes features. CEL Playground is more closely aligned with sites like the Go Playground (https://go.dev/play/) and we see it being used in a similar way. Community Engagement:We host regular community meetings, maintain comprehensive documentation, and use multiple communication channels (Slack, GitHub Discussions) to engage with contributors and end-users. We are actively engaging with the Kubernetes and adjacent CNCF communities to gather feedback and encourage contributions through our monthly community meetings hosted by GetUp Cloud. If accepted into the CNCF Sandbox, we plan to transition these meetings to be hosted by CNCF. Additionally, we are engaging with the API-Machinery and Auth SIGs. The GetUp Cloud-hosted CEL Playground has already attracted significant traffic, and we are focused on converting these users into active community participants through feedback requests, issue logging, and enhancement requests. Short-term Goals:
We are committed to expanding adoption by enhancing CEL Playground, supporting additional CEL use cases, particularly within CNCF projects, and promoting CEL and the Playground within the broader cloud-native community to encourage its use in more projects. I hope this addresses the CNCF TOC's questions and showcases the CEL Playground's potential value to the cloud-native community. If further clarification is needed, please let us know. |
Hey @dmueller2001 : The core of Dims' question was whether you're proposing a CNCF project, which other projects would deploy on their own, or a service to be operated by the CNCF for the benefit of all CNCF projects, in the same way as we do services like Sheriff and Elekto. You've completed a Sandbox application, which is for projects, but most of the benefits you're talking about would come from the CNCF running CEL Playground as a service. |
Hiya @jberkus, how are things? Apologies for any confusion we may have created; there is no expectation or request for CNCF to operate or host CEL Playground as a service, we are proposing CEL Playground as a CNCF project. In our earlier response to @dims, we included the use cases as we currently see them, as well as a number of potential deployment models which users of the project could choose. We believe joining the CNCF would enhance contributions, nurture closer ties with CNCF projects, and increase CEL Playground's visibility. It would also help build a community of contributors and maintainers, facilitating the development of new features, customizations, and functionality which would more closely align with the expanded CEL use cases within Kubernetes and other CNCF projects. We did discuss the CEL Playground roadmap at the SIG Auth meeting on Jan 31 - YouTube Recording, and covered the project in more detail during this briefing to the OpenShift Commons community - YouTube Recording I hope this helps to clarify our intentions and explains the benefits we see to the CEL Playground project becoming a sandbox project as well as the value we believe it would bring to the CNCF ecosystem. Please let us know if there’s anything further we can help with Kev |
CEL Playground Review
Project InformationCovered in the sandbox application - https://github.com/cncf/sandbox/issues/95 High-level SummaryCovered in the sandbox application - https://github.com/cncf/sandbox/issues/95 TAG and Working Group AlignmentThis is a general TAG-Runtime and TAG-App Delivery project, and aligned with WG WASM in TAG Runtime HistoryCovered in the sandbox application - https://github.com/cncf/sandbox/issues/95 ArchitectureGoals & Roadmaphttps://github.com/undistro/cel-playground/blob/main/roadmap.md Key Considerations:Community and Growth
Release Process, Issues and Testing Infrastructure
Alignment / Collaboration / Overlap with Existing CNCF projects in this area / Expectations
Project Challenges
Key Feedback to the Project:
TAG Recommendation to TOC:The project in the current state lacks enough community engagement to make a promising case for sandbox status. We recommend that we hear back from the project on the feedback provided and ask the project to present at TAG Runtime/WG WASM and TAG App Delivery meetings to gain more insights, feedback and outreach. Once the project has addressed the feedback, this can be considered in the next cycle of sandbox review |
Thank you for taking the time to review our sandbox proposal for CEL Playground. We appreciate the offer to present to SIG Runtime and we’ll definitely take you up on that in the coming week. You mentioned something about CEL Playground being aligned with WG WASM and the Bytecode Alliance. I’ll be honest, that caught us a bit off guard. While we do use WASM in CEL Playground, it’s really just a tool we’re using, not the heart of what we’re doing. Now, about our team and how we work. We’re a pretty small crew, juggling a few different open source projects. It means we tend to work in bursts on CEL Playground - sometimes there’s a flurry of activity, other times it might look a bit quiet. We do try to stay connected with the community though. We have Community Office hours every two weeks, and a monthly Community Meeting on the last Friday of the month. They’re not just for CEL Playground, but cover all our open source stuff. With regards to features we do have a number of external requests within the project’s GitHub issues, including from Jordan Liggitt (Google), Manuel Rüger (Sony Interactive), Alfred Fuller (Buf) and Salman Rashid. Top of our list right now is beefing up our Kubernetes support. Jordan Liggitt gave us some great feedback on that. We’re looking at adding more modes like CRD validation, OIDC claim mappings, and Authorization matchConditions. Plus, we’re planning to hook into running clusters to make our CEL evaluations even more useful. Last but not least, about our adopters. We’re reaching out to folks we know are using our service, asking them to add themselves to our adopters file. It’s a work in progress, but we’re starting to see these come in. CEL Playground has also been mentioned in a few KubeCon talks and we are also referenced within the Kubernetes docs. We are hoping to expand on the documentation integration, hopefully getting some interactive examples right in the Kubernetes docs. In short, we feel we’re ‘sandbox’ ready now. We have the user base and a clear set of new feature requests from our community, and as the use of CEL is expanding through other CNCF projects such as Kubescape, Envoy, Istio and others we believe supporting our sandbox application at this time would benefit both ourselves and the CNCF communities. Thanks very much for your time, |
TAG Contributor strategy has reviewed this project and found the following:
This review is for the TOC’s information only. Sandbox projects are not required to have full governance or contributor documentation. |
Community Engagement & Github Participation in CEL Playground Recognizing that it can be challenging for new open source projects to demonstrate early engagement, we’ve taken proactive steps to monitor and understand the CEL Playground community's growth. By leveraging Google Analytics, we've been able to track consistent usage of our service, which is hosted by GetUp Cloud, over the past year. This usage reflects a steady and diverse interest from various organizations. While converting these users into active contributors on GitHub is a gradual process, we’re pleased to report that it’s happening at a steady and encouraging pace. Using CommonRoom analytics, we've been tracking and engaging with community members and are pleased to report the following metrics. Currently, 9 external companies have made pull requests in the CEL Playground repositories including CEL Playground has garnered over 101 stars from 50+ different organizations, in addition to a significant number of unaffiliated contributor stars. These include community member come from a wide range of companies, including Abematv, Agoda Company Pte Ltd, Alauda, Alterdata Software, Amazon Web Services, Anota AI, Appsmode, Auth0,Caring Click, Cloud Partners, ControlPlane, Countly Ltd, Endava, Fluent CI, Gaudiy, Gerdau, Giant Swarm, GoTo Group, Ifood, ISH Tecnologia, Isovalent,ITQ, Kitabisa, Letalk, Lily AI, Mercari, Inc., Meta, Microsoft, Next Fit, Palark, Peak, Prosus Group, Pulumi, Radix IoT, Red Hat, Six, Sportradar, Stack Build, SysMap Solutions, Tackle.io Inc, Totality Corp, TOTVS, Universidade Federal De Campina Grande, Upbound, Valstro, Venafi, WAES, Weni, Wework, Wiener Zeitung, WizardQuant, Cerbos, and Zenvia. We are excited about the ongoing growth and are committed to fostering even greater engagement as our project evolves. |
Additional Presentations: Presentation to TAG Runtime - Date Aug 15 2024 - Meeting Notes - Youtube Recording Presentation to TAG Runtime WASM Working Group - Date August 20, 2024 - Meeting Notes Upcoming Presentations: Kubecon/NA Salt Lake City, Utah - Date Wednesday November 13, 2024 3:25pm - 4:00pm MST |
This sandbox submission was reviewed by the CNCF TOC on Aug 21st. The TOC recognizes the value of the project in the ecosystem and the opportunities the playground provides for individuals to understand more about CEL - in particular given the recent availability in Kubernetes. At the same time the TOC does not see a path where this kind of project gets adopted broadly and reaches graduation, or gets deployed in adopter production environments. As such the TOC does not see it as a good fit for sandbox in the CNCF. |
Application contact emails
Diane Mueller [email protected],Kevin Conner [email protected], Matheus [email protected]
Project Summary
CEL Playground is an interactive WebAssembly (Wasm) powered environment to explore and experiment with the Common Expression Language (CEL) providing a simple and user-friendly interface to write and quickly evaluate CEL expressions for use in Kubernetes, Istio and other Cloud Native technologies.
Project Description
The CEL Playground provides a space where Cloud Native developers can learn, develop and test Common Expression Language (CEL) expressions directly in their browsers.
CEL Playground was developed out of a need to learn, develop and test CEL expressions for Kuberenetes and was then adopted by other initiatives such as the Google Cloud Certificate Authority Service, Envoy, Istio as they also needed a tool to develop CEL expressions and foster awareness and adoption of the use of CEL in their communities.
Org repo URL (provide if all repos under the org are in scope of the application)
https://github.com/undistro/cel-playground
Project repo URL in scope of application
https://github.com/undistro/cel-playground
Additional repos in scope of the application
N/A
Website URL
https://playcel.undistro.io/
Roadmap
https://github.com/undistro/cel-playground/blob/main/roadmap.md
Roadmap context
The Road Map document describes the high-level plans for the Cel Playground project and can be found here:
https://github.com/undistro/cel-playground/blob/main/roadmap.md
Contributing Guide
https://github.com/undistro/cel-playground/blob/main/CONTRIBUTING.md
Code of Conduct (CoC)
https://github.com/undistro/cel-playground/blob/main/CODE_OF_CONDUCT.md
Adopters
https://github.com/undistro/cel-playground/blob/main/ADOPTERS.md
Contributing or Sponsoring Org
https://getup.io/en/opensource
Maintainers file
https://github.com/undistro/cel-playground/blob/main/MAINTAINERS.md
IP Policy
Trademark and accounts
Why CNCF?
We firmly believe that integrating CEL Playground into the CNCF ecosystem presents myriad opportunities for CNCF projects to expedite the adoption and utilization of the Common Expression Language (CEL). The CNCF foundation serves as a catalyst for enhancing contributions, fostering collaboration, and promoting the uptake of CEL Playground. Recognizing the imperative for Cloud Native developers to access a straightforward, dependable tool for crafting, testing, deploying, and swiftly evaluating CEL expressions across Kubernetes, Istio, and other Cloud Native platforms, we are confident in CEL Playground's potential. By aligning CEL Playground with the CNCF, we establish a vendor-neutral environment conducive to the continuous refinement and expansion of its capabilities, addressing the evolving requirements of the expanding array of CNCF initiatives integrating CEL.
Benefit to the Landscape
The addition of CEL Playground to the CNCF landscape promises several key benefits. Firstly, it expands the toolkit available to CNCF projects, facilitating the accelerated adoption and effective utilization of the Common Expression Language (CEL). As well, by providing a space where developers can learn and test Common Expression Language (CEL) expressions directly in their browsers, CEL Playground addresses a need among Cloud Native developers for a reliable tool for crafting, testing, deploying, and swiftly evaluating CEL expressions Its intuitive interface and robust functionality enable developers to navigate the complexities of CEL with ease, empowering them to optimize performance, scalability, and compatibility across diverse Cloud Native technologies.
In essence, the addition of CEL Playground to the CNCF landscape not only enhances the capabilities available to developers but also reinforces the foundation's mission to advance the adoption and innovation of Cloud Native technologies.
Cloud Native 'Fit'
CEL (Common Expression Language) is used in Kubernetes APIs, such as the ValidatingAdmissionPolicy, and the CEL Playground can help users easily test expressions.
The playground also includes a set of examples and the Kubernetes libraries for CEL.
The following links on these pages would be useful references to give more context:
https://kubernetes.io/docs/reference/using-api/cel/
https://kubernetes.io/docs/reference/access-authn-authz/validating-admission-policy/
Cloud Native 'Integration'
CEL Playground is an interactive WebAssembly (Wasm) powered environment to explore and experiment with the Common Expression Language (CEL). It provides a simple and user-friendly interface to write and quickly evaluate CEL expressions.
CEL Playground is built by compiling Go code to WebAssembly and includes the following libraries that are available in the environment:
CEL extended string function library
Kubernetes list library
Kubernetes regex library
Kubernetes URL library
Cloud Native Overlap
There are currently no projects that focus on crafting, testing, deploying, and swiftly evaluating CEL expressions, so CEL Playground helps meet an unmet need in this area.
Similar projects
N/A
Landscape
NO
Business Product or Service to Project separation
This is a purely open source project, it is not embedded or part of any product of the sponsoring company, GetUp Cloud. See: https://getup.io/en/opensource
Project presentations
Our project has been presented to the following SIG and TAG groups:
SIG API-Machinery - Oct 4 2023 - Meeting Notes - Youtube Recording
SIG Auth - Date Jan 31 2024 - Meeting Notes - Youtube Recording
TAG Runtime - Date Aug 15 2024 - Meeting Notes - Youtube Recording
TAG Runtime WASM Working Group - Date August 20 2024 - Meeting Notes
Youtube Recording
Project champions
CiCi Huang - Google
Additional information
CEL Playground is referenced and linked to with the Kubernetes technical documentation in the following sections:
https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#validation-rules
https://kubernetes.io/docs/reference/access-authn-authz/validating-admission-policy/#creating-a-validatingadmissionpolicy
and has been referenced in the following recent talks at Kubecon/NA 2023
CiCi Huang "Declare Everything" Kubecon/NA 2024 talk
The text was updated successfully, but these errors were encountered: