All Projects → redhat-performance → jetlag

redhat-performance / jetlag

Licence: Apache-2.0 license
Automation to deploy Bare-metal OpenShift leveraging the Assisted-Installer

Programming Languages

Jinja
831 projects
shell
77523 projects

Projects that are alternatives of or similar to jetlag

Console
OpenShift Cluster Console UI
Stars: ✭ 203 (+1027.78%)
Mutual labels:  openshift
Openshift Cartridge Nodejs
Custom cartridge for OpenShift providing the lastest version of Node.js.
Stars: ✭ 227 (+1161.11%)
Mutual labels:  openshift
openshift-install-power
UPI Install helper to deploy OpenShift 4 on IBM Power Systems Virtual Server using Terraform IaC
Stars: ✭ 16 (-11.11%)
Mutual labels:  openshift
Containers Quickstarts
Images & templates for deploying software to OpenShift
Stars: ✭ 215 (+1094.44%)
Mutual labels:  openshift
Ansible Service Broker
Ansible Service Broker
Stars: ✭ 224 (+1144.44%)
Mutual labels:  openshift
Selinon
An advanced distributed task flow management on top of Celery
Stars: ✭ 237 (+1216.67%)
Mutual labels:  openshift
Strimzi Kafka Operator
Apache Kafka running on Kubernetes
Stars: ✭ 2,833 (+15638.89%)
Mutual labels:  openshift
openshift-cartridge-mysql
Custom cartridge for OpenShift providing MySQL 5.7.17
Stars: ✭ 13 (-27.78%)
Mutual labels:  openshift
Azure arc
Automated Azure Arc environments
Stars: ✭ 224 (+1144.44%)
Mutual labels:  openshift
openshift-json-schema
A set of JSON schemas for various OpenShift versions, extracted from the OpenAPI definitions
Stars: ✭ 23 (+27.78%)
Mutual labels:  openshift
Kiali
Kiali project, observability for the Istio service mesh
Stars: ✭ 2,687 (+14827.78%)
Mutual labels:  openshift
Kcli
Management tool for libvirt/aws/gcp/kubevirt/openstack/ovirt/vsphere/packet
Stars: ✭ 219 (+1116.67%)
Mutual labels:  openshift
Openshift Examples
Openshift Examples - This repo does not provide end to end example but rather act as a rough draft for my work. use with caution. Buzzme at @twitter
Stars: ✭ 247 (+1272.22%)
Mutual labels:  openshift
Jkube
Successor of the deprecated Fabric8 Maven Plugin
Stars: ✭ 213 (+1083.33%)
Mutual labels:  openshift
pulp-operator
Kubernetes Operator for Pulp 3. Under active development.
Stars: ✭ 32 (+77.78%)
Mutual labels:  openshift
K8s Bigip Ctlr
Repository for F5 Container Ingress Services for Kubernetes & OpenShift.
Stars: ✭ 204 (+1033.33%)
Mutual labels:  openshift
Openwhisk Deploy Kube
The Apache OpenWhisk Kubernetes Deployment repository supports deploying the Apache OpenWhisk system on Kubernetes and OpenShift clusters.
Stars: ✭ 231 (+1183.33%)
Mutual labels:  openshift
kubernetes.core
The collection includes a variety of Ansible content to help automate the management of applications in Kubernetes and OpenShift clusters, as well as the provisioning and maintenance of clusters themselves.
Stars: ✭ 159 (+783.33%)
Mutual labels:  openshift
openshift4-upi-homelab
OpenShift 4 User Provisioned Infrastructure Homelab
Stars: ✭ 15 (-16.67%)
Mutual labels:  openshift
openshift-starter-guides
Getting Started with OpenShift for Developers Workshop
Stars: ✭ 35 (+94.44%)
Mutual labels:  openshift

jetlag

Tooling to install clusters for testing via an on-prem Assisted Installer in the Red Hat Scale/Alias Lab and bare metal servers in IBMcloud.

Three separate layouts of clusters can be deployed:

  • BM - Bare Metal - 3 control-plane nodes, X number of worker nodes
  • RWN - Remote Worker Node - 3 control-plane/worker nodes, X number of remote worker nodes
  • SNO - Single Node OpenShift - 1 OpenShift Master/Worker Node "cluster" per available hardware resource

Each cluster layout requires a bastion machine which is the first machine out of your lab "cloud" allocation. The bastion machine will host the assisted-installer and serve as a router for clusters with a private machine network. BM and RWN layouts produce a single cluster consisting of 3 control-plane nodes and X number of worker or remote worker nodes. SNO layout creates an SNO cluster per available machine after fulfilling the bastion machine requirement. Lastly, BM/RWN cluster types will allocate any unused machines under the hv ansible group which stands for hypervisor nodes. The hv nodes can host vms for additional clusters that can be deployed from the hub cluster. (For ACM/MCE testing)

Table of Contents

Tested Labs/Hardware

The listed hardware has been used for cluster deployments successfully. Potentially other hardware has been tested but just not documented here.

Alias Lab

Hardware BM RWN SNO
740xd No No Yes
Dell r750 Yes No Yes

Scale Lab

Hardware BM RWN SNO
Dell r650 Yes No Yes
Dell r640 Yes Yes Yes
Dell fc640 Yes No Yes
Supermicro 1029p Yes Yes No
Supermicro 1029U No No Yes
Supermicro 5039ms Yes No Yes

IBMcloud

Hardware BM SNO
Supermicro E5-2620 Yes Yes
Lenovo ThinkSystem SR630 Yes Yes

Prerequisites

Versions:

  • Ansible 4.10+ (core >= 2.11.12) (on machine running jetlag playbooks)
  • ibmcloud cli => 2.0.1 (IBMcloud environments)
  • RHEL 8.6 / Rocky 8.6 (Bastion)
  • podman 3 / 4 (Bastion)

Update to RHEL 8.6

[root@f31-h05-000-r640]# ./update-latest-rhel-release.sh 8.6
[root@f31-h05-000-r640]# dnf update -y
[root@f31-h05-000-r640]# reboot

Installing Ansible via bootstrap (requires python3-pip)

[root@f31-h05-000-r640 jetlag]# source bootstrap.sh
...
(.ansible) [root@f31-h05-000-r640 jetlag]#

Installing Ansible via python3

$ python3 -m venv .ansible       # Create a virtualenv if one does not already exist
$ source .ansible/bin/activate   # Activate the virtual environment
$ pip3 install --upgrade pip     # Ensure pip is updated
$ pip3 install ansible netaddr   # Install the lastest version of ansible and netaddr library
$ ansible-galaxy collection install ansible.utils

For guidance on how to order hardware on IBMcloud, see order-hardware-ibmcloud.md in docs directory.

Pre-reqs for Supermicro hardware:

  • SMCIPMITool downloaded to jetlag repo, renamed to smcipmitool.tar.gz, and placed under ansible/

Cluster Deployment Usage

There are three main files to configure and one is generated but might have to be edited for specific desired scenario/hardware usage:

  • ansible/vars/all.yml - An ansible vars file (Sample provided ansible/vars/all.sample.yml)
  • pull_secret.txt - Your OCP pull secret, download from console.redhat.com
  • ansible/inventory/$CLOUDNAME.local - The generated inventory file (Samples provided in ansible/inventory)

Start by editing the vars

cp ansible/vars/all.sample.yml ansible/vars/all.yml
vi ansible/vars/all.yml

Make sure to set/review the following vars:

  • lab - either alias or scalelab
  • lab_cloud - the cloud within the lab environment (Example: cloud42)
  • cluster_type - either bm, rwn, or sno for the respective cluster layout
  • worker_node_count - applies to bm and rwn cluster types for the desired worker count, ideal for leaving left over inventory hosts for other purposes
  • public_vlan - applies to sno cluster_types, set to be true only for public routable vlan deployment
  • controlplane_lab_interface - applies to bm and rwn cluster types and should map to the nodes interface in which the lab provides dhcp to and also required for public routable vlan based sno deployment(to disable this interface)
  • controlplane_pub_network_cidr and controlplane_pub_network_gateway - only required for public routable vlan based sno deployment to input lab public routable vlan network and gateway
  • rwn_lab_interface - applies only to rwn cluster type and should map to the nodes interface in which the lab provides dhcp to
  • More customization like cluster_network, service_network, rwn_vlan and rwn_networks can be supported as extra vars, check default files for variable name.

Set your pull-secret in pull_secret.txt in repo base directory. Example:

[user@fedora jetlag]$ cat pull_secret.txt
{
  "auths": {
...

Run create-inventory playbook

ansible-playbook ansible/create-inventory.yml

Run setup-bastion playbook

ansible-playbook -i ansible/inventory/cloud42.local ansible/setup-bastion.yml

Run deploy for either bm/rwn/sno playbook with inventory created by create-inventory playbook

Bare Metal Cluster:

ansible-playbook -i ansible/inventory/cloud42.local ansible/bm-deploy.yml

See troubleshooting.md in docs directory for BM install related issues

Remote Worker Node Cluster:

ansible-playbook -i ansible/inventory/cloud42.local ansible/rwn-deploy.yml

Single Node OpenShift:

ansible-playbook -i ansible/inventory/cloud42.local ansible/sno-deploy.yml

Quickstart guides

Tips and Troubleshooting

See tips-and-vars.md in docs directory.

See troubleshooting.md in docs directory.

Disconnected API/Console Access

See disconnected-ipv6-cluster-access.md in docs directory.

Jetlag Hypervisors

See hypervisors.md in docs directory.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].