Code Monkey home page Code Monkey logo

mig-agnosticd's Introduction

OCP Migration Environments

This repository contains configuration files and scripts intended to deploy OCP 3.x and 4.x environments to aid in developing and testing Cluster Application Migration Tool. All workflows are leveraging https://github.com/redhat-cop/agnosticd.

This repository is focused on providing the exact scripts/config files we are using so we may all work from a common configuration. The intent is that all future contributions continue to be done upstream in https://github.com/redhat-cop/agnosticd and this repo serves as the specific bash and yaml files to kick off agnosticd in the exact manner we require.

Note we are only provisioning to AWS with the provided configurations.

What is offered

AWS OCP 3.x Environment (Intended to be our Source Cluster)

An OpenShift Ansible provisioned AWS multi-node environment leveraging CloudFormation for AWS infrastructure.

The https://github.com/fusor/mig-agnosticd/tree/master/3.x directory provides a means of deploying a '3.11' cluster. Additionally we will install:

AWS OCP 4.x Environment (Intended to be our Destination Cluster)

An OpenShift Installer provisoned (IPI) AWS multi-node environment leveraging Terraform via the installer.

The https://github.com/fusor/mig-agnosticd/tree/master/4.x directory provides a means of deploying a '4.1' cluster. Additionally we will install:

How are the environments provisioned

This repository is simply configuration files to drive https://github.com/redhat-cop/agnosticd, 'agnosticd' is a collection of Ansible configs/roles we are leveraging to deploy our OCP environments.

The installation of the Velero and Migration bits are handled via roles in agnosticd which are leveraging the below operators:

At this point in time, the operators are not integrated with OLM. The intent is that agnosticd is installing our operators via regular Deployments and then creating the needed CR's to instruct Operators to install their applications.

Pre-requisites

  1. Follow the Software Requirements on workstation from agnosticd docs

  2. AWS Access, you will need AWS access according to the needs of OCP 3.x and 4.x deployments.

    • Admin Access is currently required for OCP 4.x
    • Access to a HostedZone in AWS Route53 is required, meaning you need a domain name managed by Route53 which can serve as the subdomain for your clusters
  3. Checkout of https://github.com/redhat-cop/agnosticd

  4. Environment Variable set of 'AGNOSTICD_HOME' pointing to your agnosticd checkout

  5. Creation of a 'secret.yml' in the base directory of this repo, see https://github.com/fusor/mig-agnosticd/blob/master/secret.yml.sample

    Intent is that you will do something like:

    • cp secret.yml.sample secret.yml
    • vim secret.yml # and update the variables as comments instruct

Pre-provisioning Steps

# Clone 'agnosticd' repo, which 'mig-agnosticd' (this repo) will call into for provisioning 
git clone https://github.com/redhat-cop/agnosticd.git
cd agnosticd
export AGNOSTICD_HOME=`pwd`  # Consider exporting 'AGNOSTICD_HOME' in ~/.bashrc to the full repo path for future use.
cd .. 

# Clone 'mig-agnosticd' repo (this repo)
git clone https://github.com/fusor/mig-agnosticd.git
cd mig-agnosticd
cp secret.yml.sample secret.yml
vim secret.yml # Update based on comments in file

# Fill out required vars for provisioning OpenShift 3.x 
cd 3.x
cp my_vars.yml.sample my_vars.yml
vim my_vars.yml # Update based on comments in file
cd ..

# Fill out required vars for provisioning OpenShift 4.x
cd 4.x
cp my_vars.yml.sample my_vars.yml
vim my_vars.yml # Update based on comments in file
cd ..

Running AgnosticD to provision OpenShift 3 + 4 Clusters

Before provisioning, ensure you have populated all necessary vars in:

  • ./secret.yml
  • ./3.x/my_vars.yml
  • ./4.x/my_vars.yml

To provision an OpenShift Cluster with AgnosticD:

mig-agnosticd's People

Contributors

jwmatthews avatar pranavgaikwad avatar

Watchers

 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.