Link Search Menu Expand Document

Deploying the Multicloud GitOps Pattern

Table of contents

  1. Deploying the Multicloud GitOps Pattern
  2. Prerequisites
  3. How to deploy
  4. Deploying the managed cluster applications
    1. Multicloud GitOps application demos
  5. Next Steps

Prerequisites

  1. An OpenShift cluster (Go to the OpenShift console). Cluster must have a dynamic StorageClass to provision PersistentVolumes. See also sizing your cluster.
  2. (Optional) A second OpenShift cluster for multicloud demonstration or testing
  3. A GitHub account (and, optionally, a token for it with repositories permissions, to read from and write to your forks)
  4. The helm binary, see here

The use of this blueprint depends on having at least one running Red Hat OpenShift cluster. It is desirable to have a cluster for deploying the GitOps management hub assets and a separate cluster(s) for the managed cluster(s).

If you do not have a running Red Hat OpenShift cluster, you can start one on a public or private cloud by using Red Hat’s cloud service.

How to deploy

  1. Install the installation tooling dependencies. You will need:
  • make - the well-known software build tool
  • sh - a POSIX-compatible shell
  • sed - the “stream editor”, commonly used in shell scripting
  • oc - the OpenShift client
  • git - The well known version control utility
  • helm - The Helm binary, see here
  • ansible - The well-known automation tool
  • The kubernetes.core collection for ansible
  1. Fork the multicloud-gitops repo on GitHub. It is necessary to fork because your fork will be updated as part of the GitOps and DevOps processes.

  2. Clone the forked copy of this repository.

     git clone git@github.com:your-username/multicloud-gitops.git
    
  3. Create a local copy of the Helm values file that can safely include credentials

    DO NOT COMMIT THIS FILE

    You do not want to push personal credentials to GitHub.

     cp values-secret.yaml.template ~/values-secret.yaml
     vi ~/values-secret.yaml
    
  4. Customize the deployment for your cluster

    git checkout -b my-branch
    vi values-global.yaml
    git add values-global.yaml
    git commit values-global.yaml
    git push origin my-branch
    
  5. You can deploy the pattern using the validated pattern operator. If you do use the operator then skip to Validating the Environment below.

  6. Preview the changes

     make show
    
  7. Login to your cluster using oc login or exporting the KUBECONFIG

     oc login
    

    or set KUBECONFIG to the path to your kubeconfig file. For example:

     export KUBECONFIG=~/my-ocp-env/hub/auth/kubconfig
    
  8. Apply the changes to your cluster

     make install
    
  9. Check the operators have been installed

     OpenShift Console Web UI -> Installed Operators
    
  10. Check all applications are synchronised Under the project multicloud-gitops-hub click on the URL for the hubgitopsserver. The Vault application is not synched.

Multicloud GitOps Hub

Deploying the managed cluster applications

Once the management hub has been set up correctly and confirmed to be working, it is time to attach one or more managed clusters to the architecture (see diagrams below).

For instructions on deploying the edge, please read the following document.

Multicloud GitOps application demos

As part of this pattern HashiCorp Vault has been installed. Refer to the section on Vault.

Next Steps

Help & Feedback Report Bugs