Skip to content

Instantly share code, notes, and snippets.

@dmc5179
Created October 22, 2024 15:35
Show Gist options
  • Save dmc5179/42dbbfbfdcdabf3241efc613e9254c8f to your computer and use it in GitHub Desktop.
Save dmc5179/42dbbfbfdcdabf3241efc613e9254c8f to your computer and use it in GitHub Desktop.
OpenShift 4 Agent Based Installer
apiVersion: v1alpha1
kind: AgentConfig
metadata:
name: agent-config
rendezvousIP: 192.168.1.80 # For a SNO cluster this is the same IP as the server. For a non-SNO install, pick an IP of one of the control plane servers
hosts:
- hostname: master-0
role: master
interfaces:
- name: eno1 # This doesn't need to be the actual interface name, it has to match the names below
macAddress: 00:ef:44:21:e6:a6
networkConfig:
interfaces:
- name: eno1 # Match the name here
type: ethernet
state: up
mac-address: 00:ef:44:21:e6:a6
ipv4:
enabled: true
address:
- ip: 192.168.1.80
prefix-length: 23
dhcp: false
mtu: 9000
dns-resolver:
config:
server:
- 192.168.1.1
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 192.168.1.1
next-hop-interface: eno1 # Match the name here
table-id: 254
#####
- hostname: master-1
role: master
interfaces:
- name: eno1 # This doesn't need to be the actual interface name, it has to match the names below
macAddress: 00:ef:44:21:e6:a5
networkConfig:
interfaces:
- name: eno1 # Match the name here
type: ethernet
state: up
mac-address: 00:ef:44:21:e6:a5
ipv4:
enabled: true
address:
- ip: 192.168.1.81
prefix-length: 23
dhcp: false
mtu: 9000
dns-resolver:
config:
server:
- 192.168.1.1
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 192.168.1.1
next-hop-interface: eno1 # Match the name here
table-id: 254
#####
- hostname: master-2
role: master
interfaces:
- name: eno1 # This doesn't need to be the actual interface name, it has to match the names below
macAddress: 00:ef:44:21:e6:a7
networkConfig:
interfaces:
- name: eno1 # Match the name here
type: ethernet
state: up
mac-address: 00:ef:44:21:e6:a7
ipv4:
enabled: true
address:
- ip: 192.168.1.82
prefix-length: 23
dhcp: false
mtu: 9000
dns-resolver:
config:
server:
- 192.168.1.1
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 192.168.1.1
next-hop-interface: eno1 # Match the name here
table-id: 254
#####
- hostname: worker-0
role: worker
interfaces:
- name: eno1 # This doesn't need to be the actual interface name, it has to match the names below
macAddress: 00:ef:44:21:e6:a8
networkConfig:
interfaces:
- name: eno1 # Match the name here
type: ethernet
state: up
mac-address: 00:ef:44:21:e6:a8
ipv4:
enabled: true
address:
- ip: 192.168.1.83
prefix-length: 23
dhcp: false
mtu: 9000
dns-resolver:
config:
server:
- 192.168.1.1
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 192.168.1.1
next-hop-interface: eno1 # Match the name here
table-id: 254
#####
- hostname: worker-1
role: worker
interfaces:
- name: eno1 # This doesn't need to be the actual interface name, it has to match the names below
macAddress: 00:ef:44:21:e1:a5
networkConfig:
interfaces:
- name: eno1 # Match the name here
type: ethernet
state: up
mac-address: 00:ef:44:21:e1:a5
ipv4:
enabled: true
address:
- ip: 192.168.1.84
prefix-length: 23
dhcp: false
mtu: 9000
dns-resolver:
config:
server:
- 192.168.1.1
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 192.168.1.1
next-hop-interface: eno1 # Match the name here
table-id: 254
#####
- hostname: worker-2
role: worker
interfaces:
- name: eno1 # This doesn't need to be the actual interface name, it has to match the names below
macAddress: 00:ef:44:21:e2:a5
networkConfig:
interfaces:
- name: eno1 # Match the name here
type: ethernet
state: up
mac-address: 00:ef:44:21:e2:a5
ipv4:
enabled: true
address:
- ip: 192.168.1.85
prefix-length: 23
dhcp: false
mtu: 9000
dns-resolver:
config:
server:
- 192.168.1.1
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 192.168.1.1
next-hop-interface: eno1 # Match the name here
table-id: 254
apiVersion: v1
additionalTrustBundlePolicy: Always
baseDomain: danclark.io
compute:
- architecture: amd64
hyperthreading: Enabled
name: worker
replicas: 3 # Set to 0 for a 3 node cluster. Minimum 2 for a standard cluster
controlPlane:
architecture: amd64
hyperthreading: Enabled
name: master
replicas: 3
metadata:
creationTimestamp: null
name: ocp4
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
networkType: OVNKubernetes
serviceNetwork:
- 172.30.0.0/16
machineNetwork:
- cidr: 192.168.1.0/24 # CIDR block of IPs for the physical servers
platform:
baremetal:
apiVIPs: # IP for the API. This is not the same IP of any of the bare metal servers but in the same CIDR block as the machine network
- 192.168.1.100
ingressVIPs: # IP for the Ingress. This is not the same IP of any of the bare metal servers but in the same CIDR block as the machine network
- 192.168.1.101
publish: External
fips: false
# Make sure the pull secret has creds for your private repo
pullSecret: ''
sshKey: 'ssh-rsa .....'
# Make sure the additional trust bundle includes the CA of your private registry
#additionalTrustBundle: |
# -----BEGIN CERTIFICATE-----
# -----END CERTIFICATE-----
# -----BEGIN CERTIFICATE-----
# -----END CERTIFICATE-----
# Note: oc mirror will create a file called imageContentSourcePolicy.yaml after pushing images to your private registry
# The mappings below can be found in that file and will already have the right registry name and location
# these are default examples for a command like
# oc-mirror --from <archive_dir> bastion.localdomain:5000
# Uncomment below for disconnected environments
#imageContentSources:
#- mirrors:
# - bastion.localdomain:5000/openshift/release # Change this line to point to your private registry
# source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
#- mirrors:
# - bastion.localdomain:5000/openshift/release-images # Change this line to point to your private registry
# source: quay.io/openshift-release-dev/ocp-release
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment