Skip to content

redhat-cop/osia

Repository files navigation

OSIA

OpenShift Infra Automation — provision self-managed OpenShift clusters on AWS and OpenStack.

Goal

Automate the lifecycle of self-managed OpenShift clusters for CI.

Unlike managed services such as ROSA or ARO, OSIA deploys self-managed OpenShift Container Platform clusters where you control the infrastructure. It wraps the openshift-install IPI installer with automation for CI workflows: finding available cloud resources, generating install-config.yaml, managing DNS records, and storing cluster artifacts in Git.

To see full documentation of osia please follow to Official documentation.

Installation

To get started with osia, just install available package from pypi:

$ pip install osia

Main features

  • Find empty region in aws to install OpenShift on.
  • Find feasible network in OpenStack and allocate FIPs before installation happens.
  • Generate install-config.yaml from predefined defaults.
  • Store generated files for deletion to git repository and push changes right after the cluster is installed.
  • Manage DNS entries based on the installation properties and results.
  • Clean everything once the cluster is not needed.

Usage

The tool operates over directory which is expected to be git repository and where the service will store generated configuration and push it to the upstream repository of currently working branch.

Common configuration

The common configuraiton is done by yaml file called settings.yaml that should be located at CWD (root of the repository in most cases).

The configuration has following structure:

default:
  cloud:
    openstack:
      cloud_env: env1
      environments:
      - name: env1
        base_domain: ''
        certificate_bundle_file: ''
        pull_secret_file: ''
        ssh_key_file: ''
        osp_cloud: ''
        osp_base_flavor: ''
        network_list: []
      - name: env2
        base_domain: ''
        certificate_bundle_file: ''
        pull_secret_file: ''
        ssh_key_file: ''
        osp_cloud: ''
        osp_base_flavor: ''
        network_list: []
    aws:
      cloud_env: default
      environments:
      - name: default
        base_domain: ''
        pull_secret_file: ''
        certificate_bundle_file: ''
        ssh_key_file: ''
        worker_flavor: ''
        list_of_regions: []
        credentials_file: 'path/to/file' # will still use 'default' profile
  dns:
    route53:
      ttl: 0
      credentials_file: 'path/to/file' # will still use 'default' profile
    nsupdate:
      server: ''
      zone: ''
      key_file: ''
      ttl: 0 
      use_ipv4: false

Every key here is overridible by the argument passed to the installer. For explanation of any key, please check he documentation below.

About

Tool for reliable automated deployments of OpenShift Container Platform 4.x into OpenStack and AWS.

Topics

Resources

License

Stars

Watchers

Forks

Contributors