SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
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?

Weitere ähnliche Inhalte

Ähnlich wie Open Discussion: Nephio Test-infra project

Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
Sébastien Le Gall
 

Ähnlich wie Open Discussion: Nephio Test-infra project (20)

CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
 
Containerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfContainerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconf
 
AirGap_zusammen_neu.pdf
AirGap_zusammen_neu.pdfAirGap_zusammen_neu.pdf
AirGap_zusammen_neu.pdf
 
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-step
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-stepSetting up CI/CD pipeline with Kubernetes and Kublr step-by-step
Setting up CI/CD pipeline with Kubernetes and Kublr step-by-step
 
Setting up CI/CD Pipeline with Kubernetes and Kublr step by-step
Setting up CI/CD Pipeline with Kubernetes and Kublr step by-stepSetting 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
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned
 
Docker 102 - Immutable Infrastructure
Docker 102 - Immutable InfrastructureDocker 102 - Immutable Infrastructure
Docker 102 - Immutable Infrastructure
 
Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
 
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
 
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on ContainersWSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on Containers
 
ConcourseCi overview
ConcourseCi  overviewConcourseCi  overview
ConcourseCi overview
 
habitat at docker bud
habitat at docker budhabitat at docker bud
habitat at docker bud
 
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version) 給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
 
Microservices in Java
Microservices in JavaMicroservices in Java
Microservices in Java
 
Continuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CIContinuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CI
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
 
Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with Codefresh
 
Cluster management with Kubernetes
Cluster management with KubernetesCluster management with Kubernetes
Cluster management with Kubernetes
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_
 

Mehr von Victor Morales

Mehr von Victor Morales (20)

KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitos
 
CCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with Nephio
CCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with NephioCCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with Nephio
CCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with Nephio
 
Nephio 101
Nephio 101Nephio 101
Nephio 101
 
Tips and tricks for contributing to an Open Source project.pptx
Tips and tricks for contributing to an Open Source project.pptxTips and tricks for contributing to an Open Source project.pptx
Tips and tricks for contributing to an Open Source project.pptx
 
Understanding the Cloud-Native origins.pptx
Understanding the Cloud-Native origins.pptxUnderstanding the Cloud-Native origins.pptx
Understanding the Cloud-Native origins.pptx
 
My OPNFV journey
My OPNFV journeyMy OPNFV journey
My OPNFV journey
 
Deciphering Kubernetes Networking
Deciphering Kubernetes NetworkingDeciphering Kubernetes Networking
Deciphering Kubernetes Networking
 
Removing Language Barriers for Spanish-speaking Professionals
Removing Language Barriers for Spanish-speaking ProfessionalsRemoving Language Barriers for Spanish-speaking Professionals
Removing Language Barriers for Spanish-speaking Professionals
 
Understanding kube proxy in ipvs mode
Understanding kube proxy in ipvs modeUnderstanding kube proxy in ipvs mode
Understanding kube proxy in ipvs mode
 
How to contribute to an open source project and don’t die during the Code Rev...
How to contribute to an open source project and don’t die during the Code Rev...How to contribute to an open source project and don’t die during the Code Rev...
How to contribute to an open source project and don’t die during the Code Rev...
 
Mutating Admission Webhook creation
Mutating Admission Webhook creationMutating Admission Webhook creation
Mutating Admission Webhook creation
 
Deep dive networking
Deep dive networkingDeep dive networking
Deep dive networking
 
GW Tester
GW TesterGW Tester
GW Tester
 
Kubernetes fundamentals
Kubernetes fundamentalsKubernetes fundamentals
Kubernetes fundamentals
 
Cloud native fundamentals
Cloud native fundamentalsCloud native fundamentals
Cloud native fundamentals
 
Building cloud native network functions - outcomes from the gw-tester nsm imp...
Building cloud native network functions - outcomes from the gw-tester nsm imp...Building cloud native network functions - outcomes from the gw-tester nsm imp...
Building cloud native network functions - outcomes from the gw-tester nsm imp...
 
Reference CNF development journey and outcomes
Reference CNF development journey and outcomesReference CNF development journey and outcomes
Reference CNF development journey and outcomes
 
Kubernetes Resources Allocation
Kubernetes Resources AllocationKubernetes Resources Allocation
Kubernetes Resources Allocation
 
ONAP MultiCloud/K8s Casablanca
ONAP MultiCloud/K8s CasablancaONAP MultiCloud/K8s Casablanca
ONAP MultiCloud/K8s Casablanca
 
Kubernetes based Cloud-region support in ONAP to bring up VM and container ba...
Kubernetes based Cloud-region support in ONAP to bring up VM and container ba...Kubernetes based Cloud-region support in ONAP to bring up VM and container ba...
Kubernetes based Cloud-region support in ONAP to bring up VM and container ba...
 

Kürzlich hochgeladen

Degrees of freedom for the robots 1.pptx
Degrees of freedom for the robots 1.pptxDegrees of freedom for the robots 1.pptx
Degrees of freedom for the robots 1.pptx
Mostafa Mahmoud
 
21P35A0312 Internship eccccccReport.docx
21P35A0312 Internship eccccccReport.docx21P35A0312 Internship eccccccReport.docx
21P35A0312 Internship eccccccReport.docx
rahulmanepalli02
 

Kürzlich hochgeladen (20)

Databricks Generative AI Fundamentals .pdf
Databricks Generative AI Fundamentals  .pdfDatabricks Generative AI Fundamentals  .pdf
Databricks Generative AI Fundamentals .pdf
 
Study of Computer Hardware System using Block Diagram
Study of Computer Hardware System using Block DiagramStudy of Computer Hardware System using Block Diagram
Study of Computer Hardware System using Block Diagram
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
Degrees of freedom for the robots 1.pptx
Degrees of freedom for the robots 1.pptxDegrees of freedom for the robots 1.pptx
Degrees of freedom for the robots 1.pptx
 
handbook on reinforce concrete and detailing
handbook on reinforce concrete and detailinghandbook on reinforce concrete and detailing
handbook on reinforce concrete and detailing
 
Passive Air Cooling System and Solar Water Heater.ppt
Passive Air Cooling System and Solar Water Heater.pptPassive Air Cooling System and Solar Water Heater.ppt
Passive Air Cooling System and Solar Water Heater.ppt
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To Curves
 
Path loss model, OKUMURA Model, Hata Model
Path loss model, OKUMURA Model, Hata ModelPath loss model, OKUMURA Model, Hata Model
Path loss model, OKUMURA Model, Hata Model
 
Fundamentals of Internet of Things (IoT) Part-2
Fundamentals of Internet of Things (IoT) Part-2Fundamentals of Internet of Things (IoT) Part-2
Fundamentals of Internet of Things (IoT) Part-2
 
Computer Graphics - Windowing and Clipping
Computer Graphics - Windowing and ClippingComputer Graphics - Windowing and Clipping
Computer Graphics - Windowing and Clipping
 
Signal Processing and Linear System Analysis
Signal Processing and Linear System AnalysisSignal Processing and Linear System Analysis
Signal Processing and Linear System Analysis
 
Introduction-to- Metrology and Quality.pptx
Introduction-to- Metrology and Quality.pptxIntroduction-to- Metrology and Quality.pptx
Introduction-to- Metrology and Quality.pptx
 
Working Principle of Echo Sounder and Doppler Effect.pdf
Working Principle of Echo Sounder and Doppler Effect.pdfWorking Principle of Echo Sounder and Doppler Effect.pdf
Working Principle of Echo Sounder and Doppler Effect.pdf
 
litvinenko_Henry_Intrusion_Hong-Kong_2024.pdf
litvinenko_Henry_Intrusion_Hong-Kong_2024.pdflitvinenko_Henry_Intrusion_Hong-Kong_2024.pdf
litvinenko_Henry_Intrusion_Hong-Kong_2024.pdf
 
NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024
NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024
NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024
 
Raashid final report on Embedded Systems
Raashid final report on Embedded SystemsRaashid final report on Embedded Systems
Raashid final report on Embedded Systems
 
Independent Solar-Powered Electric Vehicle Charging Station
Independent Solar-Powered Electric Vehicle Charging StationIndependent Solar-Powered Electric Vehicle Charging Station
Independent Solar-Powered Electric Vehicle Charging Station
 
Overview of Transformation in Computer Graphics
Overview of Transformation in Computer GraphicsOverview of Transformation in Computer Graphics
Overview of Transformation in Computer Graphics
 
21P35A0312 Internship eccccccReport.docx
21P35A0312 Internship eccccccReport.docx21P35A0312 Internship eccccccReport.docx
21P35A0312 Internship eccccccReport.docx
 
Augmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptxAugmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptx
 

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