Setup assisted service

From this repository: https://github.com/openshift/assisted-service

We’re not using Openshift but OKD (Openshift kube distrib)

Setup assisted installation interface

The repository is saved (just in case) on Gitlab “LeoCloud Plateform”

Install Podman

apt install podman

Clone the repository

git clone https://github.com/openshift/assisted-service

Configure before running

In the “deploy/podman/okd-configmap.yml”, replace ASSISTED_SERVICE_HOST, IMAGE_SERVICE_BASE_URL, SERVICE_BASE_URL by your IP address

apiVersion: v1
kind: ConfigMap
metadata:
  name: config
data:
  ASSISTED_SERVICE_HOST: <your ip>:8090
  ASSISTED_SERVICE_SCHEME: http
  AUTH_TYPE: none
  DB_HOST: 127.0.0.1
  DB_NAME: installer
  DB_PASS: admin
  DB_PORT: "5432"
  DB_USER: admin
  DEPLOY_TARGET: onprem
  DISK_ENCRYPTION_SUPPORT: "false"
  DUMMY_IGNITION: "false"
  ENABLE_SINGLE_NODE_DNSMASQ: "false"
  HW_VALIDATOR_REQUIREMENTS: '[{"version":"default","master":{"cpu_cores":4,"ram_mib":16384,"disk_size_gb":100,"installation_disk_speed_threshold_ms":10,"network_latency_threshold_ms":100,"packet_loss_percentage":0},"worker":{"cpu_cores":2,"ram_mib":8192,"disk_size_gb":100,"installation_disk_speed_threshold_ms":10,"network_latency_threshold_ms":1000,"packet_loss_percentage":10},"sno":{"cpu_cores":8,"ram_mib":16384,"disk_size_gb":100,"installation_disk_speed_threshold_ms":10},"edge-worker":{"cpu_cores":2,"ram_mib":8192,"disk_size_gb":15,"installation_disk_speed_threshold_ms":10}}]'
  IMAGE_SERVICE_BASE_URL: http://<your ip>:8888
  IPV6_SUPPORT: "true"
  ISO_IMAGE_TYPE: "full-iso"
  LISTEN_PORT: "8888"
  NTP_DEFAULT_SERVER: ""
  POSTGRESQL_DATABASE: installer
  POSTGRESQL_PASSWORD: admin
  POSTGRESQL_USER: admin
  PUBLIC_CONTAINER_REGISTRIES: 'quay.io'
  SERVICE_BASE_URL: http://<your ip>:8090
  STORAGE: filesystem
  OS_IMAGES: '[{"openshift_version":"4.12","cpu_architecture":"x86_64","url":"https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/37.20221225.3.0/x86_64/fedora-coreos-37.20221225.3.0-live.x86_64.iso","version":"37.20221225.3.0"}]'
  RELEASE_IMAGES: '[{"openshift_version":"4.12","cpu_architecture":"x86_64","cpu_architectures":["x86_64"],"url":"quay.io/openshift/okd:4.12.0-0.okd-2023-01-21-055900","version":"4.12.0-0.okd-2023-01-21-055900","default":true}]'
  ENABLE_UPGRADE_AGENT: "false"

Execute

podman play kube --configmap okd-configmap.yml pod-persistent.yml

To be operational, it takes less than 5min depending on your internet connection.

Create your cluster with assisted service

Go to your interface

Go to your interface with http://<your ip>:8080.

Welcome to RedHat Openshift Assisted Service

You found this page.


Then click on “Create New Cluster”

Cluster details

You need to fill cluster name and base domain with you informations, it can be “cluster1” and “mylab.local”.

With default settings, openshift version and cpu arch is not fully available with all versions.

And in my case, I want to setup SNO mode.



Now the time to fill “Pull secret” field, you don’t need an actual redhat account, you can use this as pull secret:

{"auths":{"fake":{"auth": "b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K29jbV9hY2Nlc3NfZmFrZTpmb29iYXIK"}}}

Then you can setup disk encryption or network configuration.


Operators

You can install Openshift virtualization or Logical Volume Manager Storage.
For my case I won’t select these two options.


Host discovery

That’s the MOST difficult (kidding 🙃)

Add host

Click on “Add host”


This box popped out:

Select “Full image file” as provisioning type, set your SSH key

Tips on macOS

You can do this command cat .ssh/id_rsa.pub | pbcopy, and you have your public ssh key in clipboard.



Then click on “Generate Discovery ISO”

And you have this:


Download the ISO and put it wherever you want to boot your server.

Start the host

Personally, I’m using Proxmox for this tutorial.

I mount my discovery ISO on my VM


And now boot it up !


Now in the host inventory section, you can found your first host:

It can takes a few minutes to appear in this list


By clicking on the “>” you can see few information about your host:


And here, we can see that NTP is not configured, to configure it click on “Unreachable” and enter your favorite NTP server. (https://www.ntppool.org/fr/use.html)

Then click on “next”

Storage

If your doing like me, don’t touch anything. But it’s now that you touch your storage configuration for your hosts.


Then click on “next”.

Networking

Apply your networking settings, in my case I leave default values


Here the “Some validations failed” is due to NTP: for some reason it won’t recognize ntp.org :/

Then click on “next”.

Review

In review, you can review your cluster configuration, preflight checks


Then click on “Install cluster”.

Installation in progress

You can take a coffee while installing, if your BIOS configuration or your VM configuration is good, it will install the cluster by itself without humain needed.


You can see the detail installation status on “View cluster events”.

The installation took me at least 1h20

Installation success

Now you can go to the given url


You might be on outdated version then update it

Once connected to the web console, you are on this page.


Add ephemeral storage on image registry

When the node restart, it’s can’t reboot ⚠️

With the downloaded kubeconfig-noingress:

export KUBECONFIG=~/Downloads/kubeconfig-noingress
oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}'
oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'

Wow ! You have setup your first cluster ! 🎉

Next: Configure authentication with OpenID