Giter VIP home page Giter VIP logo

example-gitops-john's Introduction

gitops

The gitops repository has 2 main section

  • /registry: the argocd gitops app registry
  • /terraform: infrastructure as code & configuration as code

kubefirst apps

The kubefirst cli has established the following applications:

Application Namespace Description URL (where applicable)
GitHub N/A GitHub hosted git https://github.com/johndietz/gitops
Vault vault Secrets Management https://vault.localdev.me
Argo CD argocd GitOps Continuous Delivery https://argocd.localdev.me
Argo Workflows argo Application Continuous Integration https://argo.localdev.me
Atlantis atlantis Terraform Workflow Automation https://atlantis.localdev.me
Chart Museum chartmuseum Helm Chart Registry https://chartmuseum.localdev.me
Metaphor Development development Development instance of sample application https://metaphor-frontend-development.localdev.me
Metaphor Staging staging Staging instance of sample application https://metaphor-frontend-staging.localdev.me
Metaphor Production production Production instance of sample application https://metaphor-frontend-production.localdev.me
Nginx Ingress Controller ingress-nginx Ingress Controller
Cert Manager cert-manager Certificate Automation Utility
Certificate Issuers clusterwide Let's Encrypt browser-trusted certificates
External Secrets external-secrets Syncs Kubernetes secrets with Vault secrets
GitHub Action Runner github-runner Self Hosted GitHub Action Runner

argocd registry

The argocd configurations in this repo can be found in the registry directory. The applications that you build and release on the kubefirst platform will also be registered here in the development, staging, and production folders. The metaphor app can be found there to serve as an example to follow.

The main branch of this repo represents the desired state all apps registered with kubernetes. Argo CD will automatically try to converge your desired state with the actual state in kubernetes with a process called Argo Sync. You can see the Sync status of all of your apps in the argo cd ui.

terraform infrastructure as code

The terraform in this repository can be found in the /terraform directory.

All of our terraform is automated with atlantis. To see the terraform entry points and under what circumstance they are triggered, see atlantis.yaml.

Any change to a *.tf file, even a whitespace change, will trigger its corresponding Atlantis workflow once a merge request is submitted in GitLab. Within a minute it will post the plan to the pull request with instruction on how to apply the plan if approved.

terraform configuration as code

In addition to infrastructure terraform, the gitops repository also contains configuration as code for the following products:

  • ArgoCD: The Argo CD app-registry, repositories, and secrets
  • GitLab: Gitlab Repositories and ECR registries needed to house containers for those repositories
  • Vault: auth backends, secrets engine, infrastructure secrets

engineering onboarding

Your kubefirst platform comes with some terraform in place for managing admins and developers. At the top of these two files, you'll find a list of sample admins and developers. Replace this list with the list of actual users you want added to the admin and developer groups and open a pull request. The pull request will show you the user changes in the terraform plan. When approved, have atlantis apply the plan with an atlantis apply comment in the pull request.

Your new users will have temporary passwords generated for them and stored in Vault in the /users secret store.

example-gitops-john's People

Contributors

johndietz avatar jarededwards avatar pagottoo avatar 6za avatar cristhianf7 avatar converge avatar marinhojess avatar kube1st 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.