Thanks for submitting the form.
Introduction to Cloud Native Computing FoundationCNCF (Cloud Native Computing Foundation) as we know its a small organization, and it's not narrowed to a specific type of project, it's so diverse and deal with too many projects and its growing continuously. So there was a need to make these projects interaction and function together. And CNCF-CI is the way to make all these things possible. It's a CI which take care of cross-project interoperability of all cloud-native tech, and which integrates, tests and deploys projects within the CNCF ecosystem.
Why we need Cloud-Native CNCF-CI?The CNCF is growing continuously, and to make it faster, work smoothly, fix bug fast and make the release quicker, and be more agile there was need of something which can communicate and function with all the cloud-native project, this is what cncf-ci will do - CNCF would like to ensure cross-project interoperability of all cloud-native technologies and show the daily status of builds, deployments, and end-to-end tests on a status dashboard.
Architecture of CNCF-CIIt mainly consists of -
- A dashboard
- Status Repository Server
- Testing system
CNCF-CI Key FeaturesThe crucial primary feature for CNCF CI v2 are - It is going to be Project Centric - That is it will focus and validate CNCF hosted graduated and incubating project first. Increase Collaboration - CI system will integrate with external CI system for retrieving a CNCF projects build status and container artifacts. Agnostic testing - According to Kubernetes release Bare Metal According to architecture - x86 and Arm
CI Dashboard OverviewThe below image is the CI dashboard overview, and the highlighted section shows provisioning the test environment for Kubernetes release with selected architecture for the projects. Here we can see the test environment having Kubernetes release v1.13.0 for projects CoreDNS is a success, and we can adjust the Kubernetes version through the drop down and see project CoreDNS success too for different Kube version. The build and deploy section for every project is interactive we can check the build details and deploy by clicking on it, it will show build and deploy job running on GitLab. You can find the dashboard for CNCF-CI here.
Tech flow overviewThe tech flow of CNCF-CI is something like - the CI/CD runs on GitLab platform, and it uses Terraform and cloud-init for test environment provisioning, the app deployments are done through Helm and uses Git+yaml files for automating the build and deployments steps. The CI testing-system has four stages - Kubernetes test environment provisioning
- Collect the k8s artifacts
- provision the packet server and bootstrap k8s
- finally, update the dashboard with the results for the status badge
- Build - Compile or retrieve the binaries and e2e test results.
- Package - Create containers and push the created artifacts to gitlab docker registry.
- Update - update the build status badge on the CI dashboard.
- Artifacts - Sum up all the project artifacts from the previous step i.e., build stage
- Cross-project - Deploy each project with the help of Helm.
- Update Update the deploy status badge on CI dashboard