Skip to content

Arlon PoC

CxJ edited this page Jun 1, 2022 · 2 revisions

Arlon PoC - Everything starts somewhere.

PoC Limitations

External management cluster - The user will provide an external cluster on which Arlon’s constituent parts will be deployed - i.e. there will be no bootstrapping / bring-up of a cluster as part of the Arlon tool. With the PMK-integrated version, the need for this goes away, because Arlon will be a service running on the DDU Start with EKS - While Arlon should work with any CAPI-compliant provider, the initial validation, testing, and iteration focus will be on EKS The Profile and Bundles are written to Github by the Arlon command line tool

PoC Overview

The Arlon PoC will consist of a client side command line tool and a single cluster service, “Arlon Controller”. The PoC will deliver the ability to build an EKS cluster via ClusterAPI and deploy a collection of bundles onto that cluster where:

  • All bundle files have been created by the user
  • Cluster API is installed in a management cluster
  • Argo is installed in a management cluster
  • Argo Controller is installed in a management cluster
  • The Profile and Bundles are written to Github by the Arlon command line tool

Benefits

By starting with a command line tool we will be able to obtain user feedback and awareness quickly, validate workflows and begin to build a community. The Command Line approach also removes any barriers to working with private GitHub repositories, and private clusters. The command line approach also allows users to try Arlon with minimal changes to their existing management clusters. Reducing friction to adoption. Next Steps Once the PoC has been made available to the public Arlon should evolve into a primarily cluster based service, this is advantageous for the following reasons: A command line tool would need to be distributes within an organization, Vs an API which is central. A command line tool provides no audit capabilities such that enterprises will have no means of tracing its use.

image-20220114-031452

User Experience

The following outlines the expected user experience for using the Arlon PoC Manual Bootstrap and initial Setup

  1. User identifies Arlon as the tool of choice to scale their cluster management
  2. User builds a new EKS cluster and designates this cluster their Managment Cluster
  3. User installs Cluster API and all related AWS CAPI CRDs into the Management Cluster
  4. User creates the AWS Cloud Provider configuration inside of Cluster API
  5. User installs ArgoCD on the Management Cluster
  6. User registers the Management Cluster in ArgoCD
  7. User registers their Git Repo in ArgoCD
  8. User installs Arlon into the Management Cluster
  9. User creates or reuses an existing Github repository
  10. Arlon Cluster specs, Profiles and Bundles can be both static and dynamic.
  11. User downloads a sample Arlon clusterSpec, Profile, bundle
  • A sample static profile that points to a static bundle. Both the profile and the bundle are stored outside of git in Arlon database (mgmt cluster configmap)
  • A sample dynamic profile that points to a bundle that is stored in our pf9 sample github repo
  • A dynamic clusterSpec with dynamic profile and bundle
  1. The user updates the clusterSpec to define
  • Region
  • Instance Types
  • MachineSets/node pools
  • CNI
  1. The user leave the Profile and Bundles as is
  2. The user builds Arlonctl from the Arlon git repo
  3. Using Arlonctl the user runs ‘arlon register’ to connect to their GitHub
  • User specifies their github auth creds here that are stored by arlonctl
  1. Using Arlonctl the user uploads the example files
  • Adds the clusterSpec to Github
  • Adds the Profile to Github
  • Adds the Bundle to Github
  1. Using Arlonctl the user runs ‘Arlon connect’ to connect Arlon to their Management Cluster using kubeconfig
At this stage the user has the following
  • Management cluster with CAPI, Argo and Arlon 👍
  • GitHub with clusterSpec, Profile and Bundle 👍
  • Arlonctl installed and connected to the Management Cluster and Github 👍

Cluster Creation Using Arlon

The user will step through the following process to build their cluster

  1. With all components in place and Arlonctl connected to their Management cluster, the user can now create their cluster
  2. The user runs ‘arlon cluster deploy -spec -profile ’ Behind the scenes arlon steps through the following:
  3. clusterSpec into Cluster
  • arlon pulls the clusterSpec from the Git Repo and then creates an instance of the chart in git which is used as the baseline for this cluster. Arlon then creates an app for the chart in argocd,
  • then argocd renders the chart to produce raw CAPI manifests (among other things), which it then pushes to the target cluster (in this case the management cluster).
  1. Cluster Registration
  • Arlon looks for the cluster in CAPI and when available registers the cluster to ArgoCD
  1. Profile
  • Arlon reads the profile from GitHub, creates an instance of the profile in Git that acts as the repository for the clusters applications/k8s-objects. Arlon then (after the controller connects the cluster) creates an ‘App-of-Apps’ in ArgoCD to deploy all the applications/K8s-objects that are in the Github repository.
  • At this stage the cluster has been built. 👍