# 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:


