Skip to content

RedHatOfficial/odie

Repository files navigation

   :sdMMMMMMMMNMNMh:     +mMMMNNNNNds         :NMMMh    .dMMMMMMNMMMMMM
 'hMMMMMMMmdhhhhydMMm\  .MMMN+hddddmNNMd+     hMMMMMs   dMMMMMAMMMMMMMMM
 sMMMMN/        \MMMMN  /MMMm   ''-+dMMMMd    dMMMMMM.  NMMMM
 hMMMMM          MMMMM  sMMMM       oMMMMM/   NMMMMMM+  MMMMMNNNN
 mMMMMM          MMMMM  sMMMM        dMMMM+  .MMMMMMMo  MMMMMMMd
 NMMMMM          MMMMM  sMMMM       -mMNMM-  -MMMMMMMo  NMMMM/
 yMNmMN\        /MMMMd  :MMMM      mMhydMy   'MMMMMMM:  dMMMn
 'dMy/MMMMMNNNNNNMMMN/   MMMMNdhyss+odMMo     yMMMMMm   +MMMMMNMMMMMMMMM
   :shNMMMMMMMMNmlo/     'hmNMNNMMMNds/       'hMMMN    'MMhdmM<<Nmmddd

 OpenShift (Container Platform) Disconnected installer (for) Enterprises!

ODIE is a distribution of OpenShift Container Platform (OCP) and Red Hat Enterprise Linux (RHEL) on custom media for installation into environments without access to the internet. These environments often are segregated the enterprise network and may lack other common services necessary for an OCP installation. The result of an ODIE installation is a full fledged OCP cluster including container images from supplemental products - RHOCS, RHOAR, SCL, xPaaS, Red Hat JBoss enterprise middleware, with additional products coming later.

The key features include:

  • Drop-in Installation - ODIE can autonomously provisioned into a ready environment without user intervention

  • Batteries Included - all services needed for a disconnected OCP cluster are provisioned during initial setup:

    • DNS

    • DHCP

    • TFTP (PXE booting)

    • NTP

    • rsyslogd

    • httpd server - hosting yum repository

    • Container image registry

  • Curated lists of RPM and container image contents - reliable, easy-to-use scripts to download specific images and minimize media size

  • User-friendly OCP configuration - To ease the installation burden on administrators that are unfamiliar with OCP/Ansible. ODIE provides an opinionated step-by-step installation using a CSV host configuration and autogenerated YAML property files. The output is a generated OCP advanced install inventory file that you can modify or just provide your own inventory file.

  • Spinning! - lots of time staring at installation screens is improved with patented SkunkDog spinning technology and improved log display

Long term it is expected to migrate onto other solutions, such as Red Hat Satellite to manage RPMs and Red Hat Quay for disconnected image registry. Please discuss migration strategies with your Red Hat sales team.

Media Overview

ODIE is provided as a series of ISOs that are designed to be burned onto a 4.7GB single layer DVD (our testing identified a significant coaster rate when attempting to boot on dual layer media).

  • baseline (est. ~3.5) - This contains all RPMs and the minimal set of container images that are necessary produces a single ISO that contains everything necessary to install a base installation OpenShift Container Platform. This disc is bootable when burned with the necessary flags.

  • extras - Contains additional OCP services require the supplemental disc.

  • runtimes - Base application frameworks and containers including most of Red Hat’s images from Software Collection Libraries, Source-to-Images, Red Hat JBoss.

  • mega (est. ~16GB) - the "kitchen sink" containing a superset of all the images sets . This ISO is bootable when copied onto a USB stick or Bluray disc.

All of these image set ISOs can be used directly by the stage-iso.sh, which simplifies the usage of these ISO files without burning.

This is conceptual. As of the alpha, there is only a single ISO being generated. This is being designed and be implemented by GA

Usage

JumpHost Installation

Graphical Menu

KVM Provisioning

ODIE Functions

When you first get a JumpHost installed, you should run odie setup

odie setup

This aggregate function combines the commands odie properties, odie configure, odie generate-config and odie push for a push-button ODIE setup process.

Additionally, if your gateway hosts a (e.g. http://192.168.124.1/odie-config.tar.xz)

The goal is to have a systemd unit that will run on the initial startup. Debugging this has been difficult since the system refuses to boot with this unit in place (keep in mind this was taken directly from a RHT support case). Will be implemented by GA

odie properties

This command generates the configuration files found at /opt/odie/config based on the configuration from conf/manifest.conf (this desperately needs to be renamed prior to GA) .

Alternatively, you can re-run a single file. If you ever want to "reset" a file back its original state, simply delete it and re-run this commands specifying the basename of the file to be generated:

./odie.sh properties build.yml

These files are tagged with the ODIE version at time of creation. After future updates of ODIE, you can re-run this command and any new properties added to ODIE will be non-destructively appended on your existing property files.

odie generate-config

This command will update the Kickstart files (/opt/odie/ks/) and the OCP inventory file (/opt/odie/src/inventory/inventory). It should be rerun after changing any of the configuration files.

odie configure

This command configures all of the core services. The /opt/odie/config/odie.yml file defines a number of these services. Re-run odie configure to re-apply any change.

odie install

This is the command that actually installs OCP. It assumes that you have already provisioned your VMs.

Opinionated Installation

With this approach, you define your environment through the ODIE configuration files.

There are sample hosts.csv files in the /opt/odie/config/ directory to choose from. Also review all of the files under /opt/odie/config/, paying particular attention to env.yml which has mandatory changes necessary for your environment.

After these files have been updated, you you should delete the OCP in ventory file (rm /opt/odie/config/inventory) then odie generate-config to regenerate the OCP inventory file. Once you have generated an inventory file, it will not be over-written and must be manually deleted first.

BYO Installation

Alternatively, if you are experienced with OCP administration, you may prefer to work with the native Ansible configuration.

Simply copy your advanced OCP inventory file to /opt/odie/src/inventory/inventory. The command make -f Makefile.ocp install_openshift (note this is the standard installation method) will begin the installation or you can still use odie install if you’d like to watch the spinning.

Build Process

./build.sh --clean -full --baseline --release --deploy

Environment Setup

Development Setup

To build ODIE requires at least 100GB in the build folder. The assembling of the ISO is both CPU and disk intensive.

You will need a login to Red Hat Access with valid entitlements to OpenShift Container Platform. If you have not already done so, please register:

make register

You will now prepare your local environment for building. This is an interactive command and will require TTY shell.

make initial_setup
  • Upload the RHEL 7.4 ISO to the location defined in `/opt/odie/config/build.yml (this needs to be a user readable directory)

rhel_iso: /root/rhel-server-7.5-x86_64-dvd.iso

KVM Configuration for ODIE Lab

ODIE has a automated deployment mechanism onto a KVM hypervisor. The storage pool and virtual network configuration is not yet automated. You do not need to generate a fresh ISO to use this this provisioning. You can use deploy.sh to provision environments from ISOs that you obtained via another source. You do no

Install the virtualization group:

yum groupinstall -y "Virtualization Host"

Using virt-manager make the following changes manually via the UI:

Edit -> Connection Details
  Virtual Networks
    Delete default
    Click [+] to “Create a new virtual network”
      Network Name: virbr1 # virbr0 is used by KVM's "default" network
      [Forward]
      Ensure “Enable IPv4 network address space definition” is checked
      Network: 192.168.124.0/24
      Uncheck “Enable DHCPv4”
      [Forward]
      [Forward]
      Ensure “Isolated virtual network” is selected
      DNS Domain Name: lab.odie
      [Finish]
Edit -> Connection Details
  [ Add Pool]
    Add a New Storage Pool
    Name: ODIE
    [Forward]
    Type: dir Filesystem Directory
      Choose target directory
      Create a new folder: /opt/odie/vm-images
Edit -> Preferences
  Polling
    Check:
      Poll CPU usage
      Poll Disk I/O
      Poll Network I/O
      Poll Memory stats

TODO

Lots to still document before the 1.0.0 GA…​ always looking for assistance

README

  • Add asciinema gifs for all commands

  • test and polish intial setup instructions

Wiki

  • Docker image manifests

  • RPM manifest design and key files

  • content dir layout

  • document how to use download retrival process