SlideShare a Scribd company logo
Open discussion on Test-Infra
Victor Morales
Samsung
• Project overview
• Miscellaneous folders
• e2e folder
• Pre-bake VM image
• Cloud CI management
• Sandbox provision
• Areas for improvement
• Extract Ansible Roles
• Implement KUTTL Framework
• Use Doc Detective tool
• Replace MetalLB for KinD cloud provider
• Use Ephemeral Docker image registry
Agenda
Project overview
Overview
https://github.com/nephio-project/test-infra/
Test Infrastructure provide tools and scripts to guarantee the proper
functionality of Nephio Components
• Provides scripts to install requirements used by the Test Cases
(ansible bootstrap role).
• Installs Nephio components (ansible install role).
• Contains a kpt Ansible module.
• Provisions a local/remote Nephio Sandbox through a Vagrantfile.
• Provides Terraform scripts utilized by CI.
• Stores Dockerfiles for CI artifacts.
• Contains bash scripts used during the execution of the End-To-End
testing.
Miscellaneous folders
GitHub PR templates (eventually GitHub actions)
Images used by the Wiki
Docker image definitions for CI artifacts
Prow configuration
Python scripts for dependabot and release GitHub actions
e2e folder – Pre-bake VM image
Call for action:
• Expose “nephio-pre-baked-*” images
for consumption
• Implement cleanup procedure to
avoid cloud costs
CI Workflow overview
init.sh
install_sandbox.sh
e2e.sh
e2e folder – Cloud CI mgmt.
https://github.com/nephio-project/test-infra/blob/main/e2e/terraform/modules/gcp/main.tf#L103
CI Workflow overview
init.sh
install_sandbox.sh
e2e.sh
e2e folder – Sandbox provision (1/3)
https://github.com/nephio-project/test-infra/blob/main/e2e/provision/install_sandbox.sh
CI Workflow overview
init.sh
install_sandbox.sh
e2e.sh
e2e folder – Sandbox provision (2/3)
Provides two main Ansible roles:
1. bootstrap – Validate host requirements, loads
kernel modules, creates a KinD management
cluster, installs gitea, resource-backend, cluster-
api, cert-manager and metalLB packages in
parallel.
2. install – Provides a local or remote installation of
the Nephio components in parallel.
Integration testing
kpt ansible
module
CI Workflow overview
init.sh
install_sandbox.sh
e2e.sh
e2e folder – Sandbox provision (3/3)
https://github.com/nephio-project/test-infra/blob/main/e2e/e2e.sh
Test cases resources
Areas for improvement
Checkpoint/Restore KinD containers
Provide Nephio management checkpoints for fasters startups
https://criu.org
$ docker checkpoint create kind-nephio 20240105
https://packages.ubuntu.com/jammy/criu
https://packages.fedoraproject.org/pkgs/criu/criu/
Pros Cons
Avoid cold starts Experimental feature
Ubuntu 22.04+ and
Fedora38+ packages
Reutilization of code
Extract Ansible Roles
The following Ansible role needs their own repository:
• https://github.com/nephio-project/test-infra/tree/main/e2e/provision/playbooks/roles/bootstrap
• https://github.com/nephio-project/test-infra/tree/main/e2e/provision/playbooks/roles/install
• https://github.com/nephio-project/test-infra/tree/main/e2e/provision/playbooks/roles/kpt
• https://github.com/nephio-project/test-infra/tree/main/e2e/provision/playbooks/roles/upgrade
Pros Cons
Major visibility kpt Ansible module dependency
Faster development cycles Complex troubleshooting
Reutilization of code
Implement KUTTL Framework (1/2)
Replace the bash scripts for the KUbernetes Test TooL
(https://kuttl.dev/) framework for validation of Test
Cases (Free5Gc & OAI)
• https://github.com/nephio-project/test-infra/tree/main/e2e/tests/free5gc
• https://github.com/nephio-project/test-infra/tree/main/e2e/tests/oai
Pros Cons
KRM testing approach Learning curve
Easy to declare the expected state KREW plugin requirement
Reduce instructions and
complexity
https://github.com/nephio-
project/nephio/issues/593
Implement KUTTL Framework (2/2)
https://github.com/electrocucaracha/nephio-
pocs/commit/7a26a9a712d4e4049921c7ae5b9aee9175017c7d
Use Doc detective tool
Docs as Tests (https://www.docsastests.com/) seems
to offer a new approach to keep documentation
synchronized with the changes on the project. The
Doc Detective (https://doc-detective.com/) tool may
provide a simple and easy solution to be
implemented.
Pros Cons
Easy way to keep docs and tests in
sync
Learning curve
Non-intrusive tool Requires further investigation
(requirements and License)
Replace MetalLB for KinD cloud provider
Kubernetes Cloud Provider for KIND (https://sigs.k8s.io/cloud-provider-kind ) mimics
the functionality offered by CSPs. This project could benefit the Nephio Sandbox.
Pros Cons
Reduces components on
the Nephio management
cluster
Early stages of the tool
Simulates a more realistic
scenario
Dynamic IP allocation configured
on Docker
default_address_pools
https://github.com/electrocucaracha/nephio-pocs/commit/7643a4faaeb1c7b0db77440e7f4519fe9115e320
Use Ephemeral Docker image registry
We can use a Ephemeral Docker image registry in
the CI (http://ttl.sh/ ) to replicate CI environments
locally
Pros Cons
Sharing temporal Docker images External service (increase network traffic or
delays)
Delegates the responsibility to
manage temporal build images
Additional dependencies
More ideas?

More Related Content

PDF
給 RD 的 Kubernetes 初體驗
PDF
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
PPTX
Pod Sandbox workflow creation from Dockershim
PDF
DCEU 18: Building Your Development Pipeline
PDF
Docker and Puppet for Continuous Integration
PDF
Docker & ci
PDF
ExpoQA 2017 Docker and CI
PDF
CI/CD with Azure DevOps and Azure Databricks
給 RD 的 Kubernetes 初體驗
給 RD 的 Kubernetes 初體驗 (gcpug 2019-06 version)
Pod Sandbox workflow creation from Dockershim
DCEU 18: Building Your Development Pipeline
Docker and Puppet for Continuous Integration
Docker & ci
ExpoQA 2017 Docker and CI
CI/CD with Azure DevOps and Azure Databricks

Similar to Open Discussion: Nephio Test-infra project (20)

PPTX
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
PDF
Containerising bootiful microservices javaeeconf
PDF
AirGap_zusammen_neu.pdf
PPTX
Migrating GitHub Actions with Nested Virtualization to Cloud Native Ecosystem
PPTX
Migrating GitHub Actions with Nested Virtualization to Cloud Native Ecosystem...
PDF
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-step
PDF
Setting up CI/CD Pipeline with Kubernetes and Kublr step by-step
PDF
Real-World Docker: 10 Things We've Learned
PDF
Docker 102 - Immutable Infrastructure
PPTX
Kubernetes @ meetic
PDF
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
PDF
Deploying WSO2 Middleware on Containers
PDF
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
PDF
ConcourseCi overview
PPTX
habitat at docker bud
PDF
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
PDF
Microservices in Java
PDF
Continuous Deployment with Kubernetes, Docker and GitLab CI
PDF
Jenkins Pipelines
PDF
Docker based-Pipelines with Codefresh
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
Containerising bootiful microservices javaeeconf
AirGap_zusammen_neu.pdf
Migrating GitHub Actions with Nested Virtualization to Cloud Native Ecosystem
Migrating GitHub Actions with Nested Virtualization to Cloud Native Ecosystem...
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-step
Setting up CI/CD Pipeline with Kubernetes and Kublr step by-step
Real-World Docker: 10 Things We've Learned
Docker 102 - Immutable Infrastructure
Kubernetes @ meetic
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
ConcourseCi overview
habitat at docker bud
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
Microservices in Java
Continuous Deployment with Kubernetes, Docker and GitLab CI
Jenkins Pipelines
Docker based-Pipelines with Codefresh
Ad

More from Victor Morales (20)

PPTX
Improving cold start with Distroless techniques
PPTX
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
PPTX
KCD Costa Rica 2024 - Nephio para parvulitos
PPTX
CCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with Nephio
PPTX
Nephio 101
PPTX
Tips and tricks for contributing to an Open Source project.pptx
PPTX
Understanding the Cloud-Native origins.pptx
PPTX
My OPNFV journey
PPTX
Deciphering Kubernetes Networking
PPTX
Removing Language Barriers for Spanish-speaking Professionals
PPTX
Understanding kube proxy in ipvs mode
PPTX
How to contribute to an open source project and don’t die during the Code Rev...
PPTX
Mutating Admission Webhook creation
PPTX
Deep dive networking
PPTX
GW Tester
PPTX
Kubernetes fundamentals
PPTX
Cloud native fundamentals
PPTX
Building cloud native network functions - outcomes from the gw-tester nsm imp...
PPTX
Reference CNF development journey and outcomes
PPTX
Kubernetes Resources Allocation
Improving cold start with Distroless techniques
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KCD Costa Rica 2024 - Nephio para parvulitos
CCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with Nephio
Nephio 101
Tips and tricks for contributing to an Open Source project.pptx
Understanding the Cloud-Native origins.pptx
My OPNFV journey
Deciphering Kubernetes Networking
Removing Language Barriers for Spanish-speaking Professionals
Understanding kube proxy in ipvs mode
How to contribute to an open source project and don’t die during the Code Rev...
Mutating Admission Webhook creation
Deep dive networking
GW Tester
Kubernetes fundamentals
Cloud native fundamentals
Building cloud native network functions - outcomes from the gw-tester nsm imp...
Reference CNF development journey and outcomes
Kubernetes Resources Allocation
Ad

Recently uploaded (20)

PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PPT
Project quality management in manufacturing
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
web development for engineering and engineering
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PDF
Structs to JSON How Go Powers REST APIs.pdf
PDF
composite construction of structures.pdf
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PDF
Well-logging-methods_new................
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
Foundation to blockchain - A guide to Blockchain Tech
Lesson 3_Tessellation.pptx finite Mathematics
Project quality management in manufacturing
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Embodied AI: Ushering in the Next Era of Intelligent Systems
Lecture Notes Electrical Wiring System Components
web development for engineering and engineering
Model Code of Practice - Construction Work - 21102022 .pdf
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
Structs to JSON How Go Powers REST APIs.pdf
composite construction of structures.pdf
UNIT-1 - COAL BASED THERMAL POWER PLANTS
Well-logging-methods_new................

Open Discussion: Nephio Test-infra project

  • 1. Open discussion on Test-Infra Victor Morales Samsung
  • 2. • Project overview • Miscellaneous folders • e2e folder • Pre-bake VM image • Cloud CI management • Sandbox provision • Areas for improvement • Extract Ansible Roles • Implement KUTTL Framework • Use Doc Detective tool • Replace MetalLB for KinD cloud provider • Use Ephemeral Docker image registry Agenda
  • 4. Overview https://github.com/nephio-project/test-infra/ Test Infrastructure provide tools and scripts to guarantee the proper functionality of Nephio Components • Provides scripts to install requirements used by the Test Cases (ansible bootstrap role). • Installs Nephio components (ansible install role). • Contains a kpt Ansible module. • Provisions a local/remote Nephio Sandbox through a Vagrantfile. • Provides Terraform scripts utilized by CI. • Stores Dockerfiles for CI artifacts. • Contains bash scripts used during the execution of the End-To-End testing.
  • 5. Miscellaneous folders GitHub PR templates (eventually GitHub actions) Images used by the Wiki Docker image definitions for CI artifacts Prow configuration Python scripts for dependabot and release GitHub actions
  • 6. e2e folder – Pre-bake VM image Call for action: • Expose “nephio-pre-baked-*” images for consumption • Implement cleanup procedure to avoid cloud costs
  • 8. e2e folder – Cloud CI mgmt. https://github.com/nephio-project/test-infra/blob/main/e2e/terraform/modules/gcp/main.tf#L103
  • 10. e2e folder – Sandbox provision (1/3) https://github.com/nephio-project/test-infra/blob/main/e2e/provision/install_sandbox.sh
  • 12. e2e folder – Sandbox provision (2/3) Provides two main Ansible roles: 1. bootstrap – Validate host requirements, loads kernel modules, creates a KinD management cluster, installs gitea, resource-backend, cluster- api, cert-manager and metalLB packages in parallel. 2. install – Provides a local or remote installation of the Nephio components in parallel. Integration testing kpt ansible module
  • 14. e2e folder – Sandbox provision (3/3) https://github.com/nephio-project/test-infra/blob/main/e2e/e2e.sh Test cases resources
  • 16. Checkpoint/Restore KinD containers Provide Nephio management checkpoints for fasters startups https://criu.org $ docker checkpoint create kind-nephio 20240105 https://packages.ubuntu.com/jammy/criu https://packages.fedoraproject.org/pkgs/criu/criu/ Pros Cons Avoid cold starts Experimental feature Ubuntu 22.04+ and Fedora38+ packages Reutilization of code
  • 17. Extract Ansible Roles The following Ansible role needs their own repository: • https://github.com/nephio-project/test-infra/tree/main/e2e/provision/playbooks/roles/bootstrap • https://github.com/nephio-project/test-infra/tree/main/e2e/provision/playbooks/roles/install • https://github.com/nephio-project/test-infra/tree/main/e2e/provision/playbooks/roles/kpt • https://github.com/nephio-project/test-infra/tree/main/e2e/provision/playbooks/roles/upgrade Pros Cons Major visibility kpt Ansible module dependency Faster development cycles Complex troubleshooting Reutilization of code
  • 18. Implement KUTTL Framework (1/2) Replace the bash scripts for the KUbernetes Test TooL (https://kuttl.dev/) framework for validation of Test Cases (Free5Gc & OAI) • https://github.com/nephio-project/test-infra/tree/main/e2e/tests/free5gc • https://github.com/nephio-project/test-infra/tree/main/e2e/tests/oai Pros Cons KRM testing approach Learning curve Easy to declare the expected state KREW plugin requirement Reduce instructions and complexity https://github.com/nephio- project/nephio/issues/593
  • 19. Implement KUTTL Framework (2/2) https://github.com/electrocucaracha/nephio- pocs/commit/7a26a9a712d4e4049921c7ae5b9aee9175017c7d
  • 20. Use Doc detective tool Docs as Tests (https://www.docsastests.com/) seems to offer a new approach to keep documentation synchronized with the changes on the project. The Doc Detective (https://doc-detective.com/) tool may provide a simple and easy solution to be implemented. Pros Cons Easy way to keep docs and tests in sync Learning curve Non-intrusive tool Requires further investigation (requirements and License)
  • 21. Replace MetalLB for KinD cloud provider Kubernetes Cloud Provider for KIND (https://sigs.k8s.io/cloud-provider-kind ) mimics the functionality offered by CSPs. This project could benefit the Nephio Sandbox. Pros Cons Reduces components on the Nephio management cluster Early stages of the tool Simulates a more realistic scenario Dynamic IP allocation configured on Docker default_address_pools https://github.com/electrocucaracha/nephio-pocs/commit/7643a4faaeb1c7b0db77440e7f4519fe9115e320
  • 22. Use Ephemeral Docker image registry We can use a Ephemeral Docker image registry in the CI (http://ttl.sh/ ) to replicate CI environments locally Pros Cons Sharing temporal Docker images External service (increase network traffic or delays) Delegates the responsibility to manage temporal build images Additional dependencies