# OKD Cluster Automation This repository contains Ansible automation for deploying and managing OKD clusters. The automation supports both initial cluster provisioning and day-2 operations. ## Directory Structure ``` ## Prerequisites - Ansible 2.9 or higher - Python 3.6 or higher - `ansible-navigator` for container-based execution - Access to target machines with SSH key authentication - DNS configured for the cluster domain - Required network configuration (DHCP, load balancers, etc.) ## Configuration The cluster configuration is defined in `inventories/hub/group_vars/okd_cluster.yml`. Key configurations include: ## Usage ### Initial Cluster Provisioning To provision a new cluster: ```bash ansible-navigator run playbooks/provision-cluster.yml --inventory inventories/hub ``` This will: 1. Download and install OKD installation tools 2. Generate installation configurations 3. Create the cluster 4. Configure hybrid master nodes (control plane nodes are schedulable) ### Installation Process The installation process follows these steps: 1. **Prerequisites Check and Setup** - Verifies and installs required tools (openshift-install, oc) - Creates necessary directories 2. **Configuration Generation** - Creates install-config.yaml from template - Generates Kubernetes manifests - Creates Ignition configs 3. **Cluster Installation** - Initiates the cluster creation - Waits for bootstrap completion - Configures master nodes as schedulable (hybrid mode) - Waits for installation completion ## Available Tags - `prereq`: Install prerequisites - `config`: Generate configurations - `install`: Run the installation - `ignition`: Generate ignition configs ## Node Configuration The automation supports a hybrid node setup where master nodes are also workers: