Code Monkey home page Code Monkey logo

vse-carslab-hub's Introduction

vse-carslab-hub

This repository helps configure an existing OpenShift cluster as a Hub cluster, whereby it can deploy Managed OpenShift clusters with Red Hat Advanced Cluster Management (ACM) for Kubernetes and OpenShift GitOps. Red Hat ACM is responsible for deploying additional OpenShift clusters, typically referred to as Managed or spoke clusters. All cluster lifecycle is managed by Argo CD, including the Argo configuration itself.

Prerequisites

In order to successfully use the contents of this repository, you need to have an OpenShift cluster deployed with storage available and ready to consume. The methods of deployment of this OpenShift cluster can be:

Storage can be provided however you deem fit. Cloud environments typically have dynamic storage available after OpenShift cluster installation. The requirements are (2) PersistentVolumes available for consumption by the assisted-service and postgres containers in the assisted-service pod. A few options exist that we can recommend:

  • OpenShift Data Foundation (ODF) is an option for providing dynamic storage provisioning for the resulting OpenShift cluster.
  • Local Storage Operator (LSO) is also an option in resource (CPU, memory, etc) constrained environments as an alternative to ODF.

How to run it

export KUBECONFIG=my-hub-cluster-kubeconfig
until oc apply -k https://github.com/redhat-partner-solutions/vse-carslab-hub/bootstrap/overlays/default; do sleep 3; done

Structure

# Directory Name Description
1. bootstrap This is where openshift-gitops configurations is stored. These are the items that get the cluster/automation started.

base is where are the "common" YAML would live and overlays are configurations specific to the cluster.
2. components This is where specific components for the GitOps Controller lives (in this case Argo CD).

applicationsets is where all the ApplicationSet YAMLs live.

Other things that can live here are RBAC, Git repo, and other Argo CD specific configurations (each in their repsective directories).
3. core This is where YAML for the core functionality of the cluster live. Here is where the Kubernetes administrator will put things that is necessary for the functionality of the cluster.

Under gitops-controller is where you are using Argo CD to manage itself. The kustomization.yaml file uses bootstrap/overlays/default in it's bases configuration. This core directory gets deployed as an ApplicationSet which can be found under components/applicationsets/core-components-appset.yaml.

To add a new "core functionality" workload, one needs to add a directory with some yaml in the core directory. See the advanced-cluster-management directory as an example.
4. clusters This is where the new clusters configuration is stored.

To add a new Managed cluster, one needs to add a directory with some yaml in the overlays directory. See the blazer directory as an example.

To add a new ZTP Managed cluster, one needs to add a directory with some yaml in the ztp-siteconfig directory. See the goldwing directory as an example.

ZTP policies should be added to the ztp-policies directory.

The clusters overlays are using Kustomize bases from the vse-ocp-bases repository.
5. add-workers This is where the configuration to add day2 worker nodes is stored.

To add a day2 worker node to an OpenShift cluster, add the yamls to add-workers\<node-name>\overlay\<cluster-name>. See the add-workers\du3-ldc1\overlay\volante for an example.

Note This repository is using sealed secrets for secrets management.
If you would like to use another secrets management solution, please change the SealedSecret manifests accordingly.

vse-carslab-hub's People

Contributors

natifridman avatar jnunyez avatar novacain1 avatar hhamid93 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.