Giter Site home page Giter Site logo

iortizferia / ubiquitous-journey Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rht-labs/ubiquitous-journey

0.0 0.0 0.0 1.26 MB

๐Ÿงฐ Open Innovation Labs Developer Experience - all the tooling for starting a residency

License: Apache License 2.0

Shell 96.69% Mustache 3.31%

ubiquitous-journey's Introduction

๐Ÿฆ„ ubiquitous-journey ๐Ÿ”ฅ

๐Ÿงฐ This repo is an Argo App definition which references other helm charts. It should not exclusively run Helm Templates but be a more generic Argo App which could reference Kustomize or Operators etc.

๐ŸŽจ This is the new home for the evolution of what was Labs CI / CD. This project represents a major milestone in moving away from the 3.x OpenShift clusters to a new GitOps approach to tooling, app management and configuration drift using ArgoCD.

There are three main components (one in each folder) to this repository. Each part can be used independently of each other but sequentially they create the full stack. If you already have an ArgoCD instance you want to add the tooling to just move to part 2:

  1. Bootstrap - Contains references two helm charts used to create and manage projects and deploy ArgoCD
  2. Ubiquitous Journey - Contains all the tools, collaboration software and day2ops to be deployed on Red Hat OpenShift. This includes chat applications, task management apps and tools to support CI/CD workflows and testing. For the complete list and details: What's in the box?๐Ÿ‘จ
  3. An example (pet-battle) to show how the same structure can be used to implement GitOps for a simple three tiered app stack.

How do I run it? ๐Ÿƒโ€โ™€๏ธ

Prereq

  1. OpenShift 4.3 or greater (cluster admin user required) - https://try.openshift.com
  2. Install helm v3 (cli) or greater - https://helm.sh/docs/intro/quickstart
  3. Install Argo CD (cli) 1.4.2+ or greater - https://argoproj.github.io/argo-cd/getting_started/#2-download-argo-cd-cli

For the impatient ๐Ÿค 

A handy two liner to deploy all the artifacts in this project using their default values

# pull the chart dependencies
helm dep up bootstrap
# bootstrap to install argocd and create projects
helm upgrade --install bootstrap -f bootstrap/values-bootstrap.yaml bootstrap --create-namespace --namespace labs-bootstrap
# give me ALL THE TOOLS, EXTRAS & OPSY THINGS !
helm template -f argo-app-of-apps.yaml ubiquitous-journey/ | oc -n labs-ci-cd apply -f-

Bootstrap projects and ArgoCD ๐Ÿป

If you want to find out all the magic behind, how to override the default values, deploy an example application through ArgoCD and collect metrics, let's meet here!๐Ÿง™โ€โ™€๏ธ

ArgoCD Master and Child ๐Ÿ‘ฉโ€๐Ÿ‘ฆ

We can create a master ArgoCD instance in the cluster that can bootstrap other "child" ArgoCD instance(s) for any given project team. This is a good approach if you want each project team to own and operate their own software development tools (jenkins, sonar, argocd, etc) but restrict any elevated permissions they may need e.g.creating argocd Custom Resources Definitions (CRD's) or limiting project creation. See ArgoCD Master and Child Deployment

Cleanup

Uninstall and delete all resources in the various projects

# delete ubiquitous-journey
helm template -f argo-app-of-apps.yaml ubiquitous-journey/ | oc -n labs-ci-cd delete -f-
# uninstall and clean-up bootstrap, run:
helm uninstall bootstrap --namespace labs-bootstrap

How can I bring my own tooling?

TODO - add some instructions for adding:

  1. new helm charts
  2. new Operators etc

Contributing

Help

You can find low hanging fruit to help here.

ubiquitous-journey's People

Contributors

eformat avatar ckavili avatar springdo avatar tylerauerbeck avatar jtudelag avatar gsampaio-rh avatar jbuns avatar pabrahamsson avatar tdbeattie avatar mabulgu avatar sdstolworthy avatar fmenesesg 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.