Cluster bootstraps for GitOps

Introduction

Documentation Site Cluster bootstraps for Crossplane GitOps based on argocd, see main doc site for details

PreRequisites

  • K8 cluster eg kind
  • Installed kubectl command-line tool
  • Installed kubectl krew package manager
  • Installed kubectx power tools for kubectl
  • Installed helm3

Recommend Videos and Reading

Overview

Flow

This repo is organised in an argo app of apps pattern leveraging argo application sets to provision and install various helm charts and capabilities into the targeted kubernetes clusters

  • When the metis app charts are installed either as manifests, or helm this will result in the creation of various argo application sets configured with cluster gen
  • These application sets mapping to the metis "chart modules" will create argo applications
  • Each application created represent a toolset,operator or workload that will be provisioned into the cluster/s provisioned for a capability

Repo Structure

There are two folders each containing helm charts used for installing various argocd CRDs.

##charts-modules These are a collection of Helm Charts organised as "modules". Each chart module is a collection of argo applications, ArgoCD config and namespaces config for various related addons , operator and kubernetes workloads.

see Chart Modules

charts-bootstrap

metis application sets

The metis appset chart contains a collection of argo applicationSets

The metis argo applications sets will generate argo applications based of the helm charts in this repo.

Contributing

See official documentation

Comments
  • Add velero application

    Add velero application

    Resolves #16

    @kanzifucius I enabled the service monitor by default but I can remove that config if we don't want to do that. I also added in the schedule config under values so that it's quicker to setup.

    One other question, are we going to use Crossplane to provision a bucket if they decide to use that storage? Is this something we want to cater for now?

  • doc fixes. lint fixes

    doc fixes. lint fixes

    fixed typos in docs fixed the Intro image updated generated docs fixed linting errors removed redundant description tags in some charts fixed bash errors for helmGenDocs

  • Crossplane isntall sync waves

    Crossplane isntall sync waves

    Describe the bug The crossplane helm chart install need sync waves. We need to ensure that the cross plan controller and crds are installed before the provider configs are applied that make use of the crds

    To Reproduce Steps to reproduce the behavior:

    1. Run setup env as per documentaion
    2. Check sync fail of crossplane helm module

    Expected behavior Sync and healty Screenshots None

    Additional context None

  • Adding sealed secret and kbernetes external secret .

    Adding sealed secret and kbernetes external secret .

    This PR contains theree fix

    1. Adding sealed-secret and kubernetes extrenal secret to cluster
    2. fixing namespace for kubecost from argo-cd to argocd
    3. helm templating is failing with " Error from server (Invalid): error when creating "STDIN": ApplicationSet.argoproj.io "metis-apps-storage" is invalid: spec.template.spec.source.helm.parameters.value: Invalid value: "boolean": spec.template.spec.source.helm.parameters.value in body must be of type string: "boolean" : Updated
    • name: "spec.aws.enabled" value: {{.Values.spec.aws.enabled}} forceString: true

    to

    • name: "spec.aws.enabled" value: "{{.Values.spec.aws.enabled}}" forceString: true

    resolves #37

  • Add external secrets and seal secrets to addons

    Add external secrets and seal secrets to addons

    adding argo apps for

    • name: kubernetes-external-secrets version: 6.0.0 repository: https://external-secrets.github.io/kubernetes- external-secrets/

    and

    • name: sealed-secrets version: 1.13.2 repository: https://bitnami-labs.github.io/sealed-secrets
Bootstrap curated Kubernetes stacks. Logging, metrics, ingress and more - delivered with gitops.

Gimlet Stack Bootstrap curated Kubernetes stacks. Logging, metrics, ingress and more - delivered with gitops. You can install logging aggregators, met

Dec 1, 2021
The Elastalert Operator is an implementation of a Kubernetes Operator, to easily integrate elastalert with gitops.

Elastalert Operator for Kubernetes The Elastalert Operator is an implementation of a Kubernetes Operator. Getting started Firstly, learn How to use el

Jun 28, 2022
ArgoCD is widely used for enabling CD GitOps. ArgoCD internally builds manifest from source data in Git repository, and auto-sync it with target clusters.
ArgoCD is widely used for enabling CD GitOps. ArgoCD internally builds manifest from source data in Git repository, and auto-sync it with target clusters.

ArgoCD Interlace ArgoCD is widely used for enabling CD GitOps. ArgoCD internally builds manifest from source data in Git repository, and auto-sync it

Dec 14, 2022
gokp aims to install a GitOps Native Kubernetes Platform

gokp gokp aims to install a GitOps Native Kubernetes Platform. This project is a Proof of Concept centered around getting a GitOps aware Kubernetes Pl

Nov 4, 2022
The Oracle Database Operator for Kubernetes (a.k.a. OraOperator) helps developers, DBAs, DevOps and GitOps teams reduce the time and complexity of deploying and managing Oracle Databases

The Oracle Database Operator for Kubernetes (a.k.a. OraOperator) helps developers, DBAs, DevOps and GitOps teams reduce the time and complexity of deploying and managing Oracle Databases. It eliminates the dependency on a human operator or administrator for the majority of database operations.

Dec 14, 2022
Digitalocean-kubernetes-challenge - Deploy a GitOps CI/CD implementation
Digitalocean-kubernetes-challenge - Deploy a GitOps CI/CD implementation

DigitalOcean Kubernetes Challenge 2021 I chose to participate in the DigitalOcean Kubernetes Challenge in order to learn more about Kubernetes and to

Nov 9, 2022
kubetnl tunnels TCP connections from within a Kubernetes cluster to a cluster-external endpoint, e.g. to your local machine. (the perfect complement to kubectl port-forward)

kubetnl kubetnl (kube tunnel) is a command line utility to tunnel TCP connections from within a Kubernetes to a cluster-external endpoint, e.g. to you

Dec 16, 2022
A pod scaler golang app that can scale replicas either inside of cluster or out of the cluster

pod-scaler A simple pod scaler golang application that can scale replicas via manipulating the deployment Technologies The project has been created us

Oct 24, 2021
cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resource objects related of Kubernetes Cluster API.

Overview cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resou

Oct 27, 2022
Go-gke-pulumi - A simple example that deploys a GKE cluster and an application to the cluster using pulumi

This example deploys a Google Cloud Platform (GCP) Google Kubernetes Engine (GKE) cluster and an application to it

Jan 25, 2022
Influxdb-cluster - InfluxDB Cluster for replacing InfluxDB Enterprise

InfluxDB ATTENTION: Around January 11th, 2019, master on this repository will be

Dec 26, 2022
A Terraform module to manage cluster authentication (aws-auth) for an Elastic Kubernetes (EKS) cluster on AWS.

Archive Notice The terraform-aws-modules/eks/aws v.18.20.0 release has brought back support aws-auth configmap! For this reason, I highly encourage us

Dec 4, 2022
Multi cluster kubernetes dashboard with batteries included. Build by developers, for developers.

kubetower Multi cluster kubernetes dashboard with batteries included. Built by developers, for developers. Features Restart deployments with one click

Nov 28, 2022
A serverless cluster computing system for the Go programming language

Bigslice Bigslice is a serverless cluster data processing system for Go. Bigslice exposes composable API that lets the user express data processing ta

Dec 14, 2022
Enterprise-grade container platform tailored for multicloud and multi-cluster management
Enterprise-grade container platform tailored for multicloud and multi-cluster management

KubeSphere Container Platform What is KubeSphere English | 中文 KubeSphere is a distributed operating system providing cloud native stack with Kubernete

Jan 2, 2023
Open Source runtime tool which help to detect malware code execution and run time mis-configuration change on a kubernetes cluster
Open Source runtime tool which help to detect malware code execution and run time mis-configuration change on a kubernetes cluster

Kube-Knark Project Trace your kubernetes runtime !! Kube-Knark is an open source tracer uses pcap & ebpf technology to perform runtime tracing on a de

Sep 19, 2022
Kubesecret is a command-line tool that prints secrets and configmaps data of a kubernetes cluster.

Kubesecret Kubesecret is a command-line tool that prints secrets and configmaps data of a kubernetes cluster. kubesecret -h for help pages. Install go

May 3, 2022
Kubegres is a Kubernetes operator allowing to create a cluster of PostgreSql instances and manage databases replication, failover and backup.

Kubegres is a Kubernetes operator allowing to deploy a cluster of PostgreSql pods with data replication enabled out-of-the box. It brings simplicity w

Dec 30, 2022
vcluster - Create fully functional virtual Kubernetes clusters - Each cluster runs inside a Kubernetes namespace and can be started within seconds
vcluster - Create fully functional virtual Kubernetes clusters - Each cluster runs inside a Kubernetes namespace and can be started within seconds

Website • Quickstart • Documentation • Blog • Twitter • Slack vcluster - Virtual Clusters For Kubernetes Lightweight & Low-Overhead - Based on k3s, bu

Jan 4, 2023