Awesome work and so glad to see this!

> On Aug 28, 2025, at 8:15 AM, Jindal, Himanshu <himan...@amazon.com> wrote:
> 
> A big thank you to Mick for leading the effort. This has already made a huge 
> difference for contributors, myself included, and is a great step forward for 
> the community. Grateful for the collaboration!
>  
> Thanks
> Himanshu
>  
> From: Dmitry Konstantinov <netud...@gmail.com <mailto:netud...@gmail.com>>
> Reply-To: "dev@cassandra.apache.org <mailto:dev@cassandra.apache.org>" 
> <dev@cassandra.apache.org <mailto:dev@cassandra.apache.org>>
> Date: Thursday, August 28, 2025 at 6:05 AM
> To: "dev@cassandra.apache.org <mailto:dev@cassandra.apache.org>" 
> <dev@cassandra.apache.org <mailto:dev@cassandra.apache.org>>
> Subject: RE: [EXTERNAL] [ANNOUNCE] Pre-commit CI @ 
> pre-ci.cassandra.apache.org <http://pre-ci.cassandra.apache.org/> , an AWS 
> donation
>  
> CAUTION: This email originated from outside of the organization. Do not click 
> links or open attachments unless you can confirm the sender and know the 
> content is safe.
>  
> It’s a huge milestone! Many thanks to Mick and everyone else involved in 
> setting up and configuring the CI. Thanks also to Amazon and the other 
> companies that donated hardware resources to keep the infrastructure running.
> This is especially helpful for committers who don’t have the resources to run 
> their own CI system, like me, and it makes the contribution process more 
> efficient and pleasant. Hopefully, this will lead to more contributions and 
> contributors.
>  
> On Wed, 27 Aug 2025 at 22:50, Mick <m...@apache.org <mailto:m...@apache.org>> 
> wrote:
>> 
>> tl;dr 
>> I am super excited to share with you all the availability of 
>> https://pre-ci.cassandra.apache.org <https://pre-ci.cassandra.apache.org/> , 
>> made possible from a very generous donation by Amazon.  Using AWS donated 
>> credits we now have a fast open-source CI system for pre-commit testing.  
>> This is intended primarily for committers (and trusted contributors) that do 
>> not have access to a company-private CI system.  Contact me off-list if 
>> that's you.
>> 
>> …
>> This huge donation from Amazon and builds on years of work on our CI and 
>> testing scripts, accumulating in CASSANDRA-18145¹.
>> 
>> The project now has an AWS account (controlled by ASF Infra), and into it 
>> Amazon has provided a significant amount of credits for the purpose of our 
>> pre-commit testing.
>> 
>> In the C* project pre-commit CI has been a major hurdle and blocker to new 
>> contributors, unaffiliated committers, and generally getting patches 
>> committed.  Too much of our momentum has been led by contributors and 
>> committers employed in companies that can pay to run their own in-house CI 
>> systems.  It is not in the slightest their fault, nor their employers' 
>> priority, but it has held the project back from its potential as well as not 
>> being in the proper spirit of an open source project and community.
>> 
>> Amazon has recognised this and stepped forward as a true champion of our 
>> open-source community, providing both the AWS credits, as well as time in 
>> helping setting it up, testing and documenting it.
>> 
>> The work has also involved many steps and people the past five years! since 
>> that first mention of a "Stand-alone Pipeline Run"².   This work has gone 
>> from having a standalone Jenkinsfile, testing images and scripts that can be 
>> used anywhere, both pre-commit and post-commit, to a Helm chart to deploy 
>> ci-cassandra.a.o Jenkins clones in any k8s cluster of your choosing.  This 
>> has also included getting our CI pipeline generating aggregated test result 
>> artefact files that can easily be attached to jira tickets, and archived 
>> permanently.  These objectives you can see listed in CASSANDRA-18137³.   
>> 
>> For all this special thanks goes out to Richa Mishra, Nishant Barola, 
>> Aleksandr Volochnev, Brandon Hsieh, Himanshu Jindal, Steve Mayszak, Dmitry 
>> Konstantinov, Maxim Muzafarov, Berenguer Blasi, David Capwell, Brandon 
>> Williams, Ekaterina Dimitrova, Henrik Ingo, Shankar Ramaswamy, Josh 
>> McKenzie, Stefan Miklosovic, Gavin McDonald and no doubt others I've 
>> forgotten!  Yeah, it feels like almost everyone, it has been a journey!
>> 
>> It is not perfect: there is (always) room for improvement; and for now I 
>> think next steps should be around further time+cost optimisations and 
>> pipeline configurability.  I'm hoping folk can jump in and help with these. 
>> 
>> What is provided today is a way for everyone anywhere to immutably provision 
>> a ci-cassandra.a.o clone on k8s.  You avoid any need to install, know or 
>> operate Jenkins (you do not even have to ever once open the Jenkins UI – see 
>> below) and you do not need to wait more than a few hours to run the 
>> "post-commit" pipeline with 140-200k tests.  The correlation to pipeline 
>> time is now how many nodes your k8s can scale to (ofc limitations exist, but 
>> those fine details are other convo), and with the cluster scaling down to 
>> one node you get a cost-effective pay-what-you-use deployment.  
>> https://pre-ci.cassandra.apache.org <https://pre-ci.cassandra.apache.org/> 
>> runs on EKS, and another instance for DataStax employees ( 
>> http://ci-cassandra.infra.datastax.com 
>> <http://ci-cassandra.infra.datastax.com/> ) has been in use on GKE for over 
>> a year now.  We have a CI system that is relatively ops-free, has the same 
>> turnaround time as CircleCI and costs over an order of magnitude less. 
>> This has been designed for downstream C* products to be able to re-use, and 
>> indeed it is a setup that any project can easily use.
>> 
>> The setup introduces repeatability in how we test.  The Jenkinsfile, the 
>> docker images and the test scripts, are the same everywhere, including 
>> locally.  Reproducing obscure failures in post-commit should be easier.
>> 
>> If you would like to set up your own ci-cassandra clone, the docs for both 
>> GKE are found in-tree under .jenkins/k8s/ ,and the docs for EKS coming soon.
>> 
>> 
>> There is a command line interface that can be used for both provisioning as 
>> well as everyday CI use.
>> Some examples:
>> ```
>> # Install the ci-cassandra helm chat in your current k8s context, creating 
>> the ci-cassandra clone
>> 
>> .build/run-ci --only-setup
>> 
>> # Run your current branch through CI with the skinny profile.
>> #  Waits til completion, and creates ci_summary*.html & 
>> results_details*.tar.xz files to attach to jira
>> 
>> .build/run-ci --profile skinny
>> 
>> # If you don't have kubectl access to the cluster, just specify the jenkins 
>> url and user
>> 
>> .build/run-ci --profile skinny --url pre-ci.cassandra.apache.org 
>> <http://pre-ci.cassandra.apache.org/> --user myuser
>> ```
>> 
>> 
>> Huge huge praise and thanks to Amazon here: they really deserve it, they 
>> have taken this over the finish line; but the opportunity deserves to repeat 
>> all our gratitudes to all the very significant ci-cassandra.apache.org 
>> <http://ci-cassandra.apache.org/> donations that help us keep the project 
>> running: NetApp, DataStax, Huawei and iland.
>> 
>> 
>> ¹) CASSANDRA-18145 – Run entire Cassandra Jenkins in any k8s (immutable 
>> provisioning)
>> ²) https://lists.apache.org/thread/ch768l8y95npno9o9y130fjob1h675z8
>> ³) CASSANDRA-18137 – Repeatable ci-cassandra.a.o (Epic)
>> 
>> 
>> 
> 
> 
>  
> -- 
> Dmitry Konstantinov

Reply via email to