Skip to content
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

Zephyr CI Infrastructure Architecture v3 #211

Open
3 tasks
stephanosio opened this issue Nov 6, 2024 · 0 comments
Open
3 tasks

Zephyr CI Infrastructure Architecture v3 #211

stephanosio opened this issue Nov 6, 2024 · 0 comments
Assignees
Labels

Comments

@stephanosio
Copy link
Member

Overview

This issue describes the "Zephyr CI Infrastructure Architecture v3" and outlines the tasks associated with its implementation.

The goal is to implement a scalable architecture that can expand beyond the current capacity limit of the Centrinix-hosted OpenStack cluster.

The following is a summary of the changes to be made:

  • Introduce a new infrastructure-as-a-service (IaaS) provider, Hetzner, who can provide cost effective servers for GitHub Actions CI workloads.
  • Set up a Kubernetes cluster on Hetzner bare metal servers.
  • Set up GitHub Actions Runner Controller on the Hetzner Kubernetes cluster.
  • Shift main GitHub Actions CI workload from the Centrinix cluster to the Hetzner cluster.
  • Re-purpose the Centrinix Kubernetes cluster for hardware testing CI (planned for future) and emergency fail-over.

Status quo (v2)

  • AWS Kubernetes cluster hosts persistent services, such as Elastic Stack.
  • Centrinix Kubernetes cluster hosts ephemeral services, such as GitHub Actions runners.
  • AWS Kubernetes cluster may host ephemeral services in case of emergency fail-over.

New (v3)

               +----------------------------+   +-------------------------------------------------------------+
 Services      |    Persistent Workload     |   |                     Ephemeral Workload                      |
               +----------------------------+   +-------------------------------------------------------------+
                                                                                                               
               ------------------------------------------------------------------------------------------------
                                                                                                               
               +----------------------------+   +----------------------------+   +----------------------------+
   PaaS        |     Kubernetes Cluster     |   |     Kubernetes Cluster     |   |     Kubernetes Cluster     |
               +----------------------------+   +----------------------------+   +----------------------------+
                                                                                                               
               ------------------------------------------------------------------------------------------------
                                                                                                               
               +----------------------------+   +----------------------------+   +----------------------------+
               | Elastic Kubernetes Service |   |      OpenStack Magnum      |   |                            |
               +----------------------------+   +----------------------------+   |                            |
   IaaS                                                                          | Hetzner Bare Metal Servers |
               +----------------------------+   +----------------------------+   |                            |
               |  Amazon Web Services EC2   |   |  Centrinix OpenStack Nova  |   |                            |
               +----------------------------+   +----------------------------+   +----------------------------+
  • AWS Kubernetes cluster hosts persistent services, such as Elastic Stack.
  • Hetzner Kubernetes cluster hosts hardware-agnostic ephemeral services, such as GitHub Actions runners for the workflows that only build tests and/or run tests for emulated platforms.
  • Centrinix Kubernetes cluster hosts hardware-dependent ephemeral services, such as GitHub Actions runners for the workflows that build and run tests for non-emulated platforms (i.e. "hardware testing").
  • AWS and Centrinix Kubernetes clusters may host hardware-agnostic ephemeral services in case of emergency fail-over.

Specifications

TBD

Tasks

Phase 1 (Initial deployment)

  • Deploy Hetzner Kubernetes cluster (initial deployment consisting of 3 server nodes)
  • Deploy Actions Runner Controller on Hetzner Kubernetes cluster
  • Deploy KeyDB cache on Hetzner Kubernetes cluster

Phase 2 (Scale-up)

TBD

@stephanosio stephanosio self-assigned this Nov 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant