# Setup assisted service

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


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

:::

# Setup assisted installation interface


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

:::

## Install Podman

```bash
apt install podman
```

## Clone the repository

```bash
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

```bash
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

```bash
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.

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/d6700091-ec92-4c03-b642-46cf4871c28c/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=67b7c7e69d03fd191e5814537be3378c367cfb3b3fe384a510b21d819905d910&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

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.

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/1ed76110-b1d4-4be4-bd6b-c0e1151e6606/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=18d6e2862307c604ced7a2dff9d3300614b7fd5986003ad4684802fb495c99be&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)


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

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

Then you can setup disk encryption or network configuration.

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/91bc5dd7-43a7-4da8-a52a-c5612eac2f90/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=68e33d222283923ab1e9864bf89dfa75d889c49196059e858fd1cbb97c7ad7bb&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

## Operators

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

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/430c034b-944b-4148-a974-cffd6fc3f49d/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=34a9c838abac3c184673978e741282afce0545cbf2071141e6aa58676b50124e&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

## Host discovery

That’s the MOST difficult (kidding :upside_down_face:)

### Add host

Click on “Add host”

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/46af8fec-cf67-4a6b-abe6-dbd53415519e/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=bbb88a66932b5504b31b59dea55be9261f2fb0b368bd758bd10a2c9386e14035&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

This box popped out:

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/1a1b34ff-8496-4107-8d26-d39e892bb292/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=0a1dfc671fc627a6ab0f01cb06b383a0efc68a36ccd4118eba6cf6298af65c22&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject " =442x543")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:

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/7778834e-9163-41bb-9fde-09a656d7c012/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=f29bc663191c5891bcdeb8b0983a74573bab2f2d5a105293a4ab262d7d9dcde8&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject " =368x452")

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

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/ced1d174-fefb-4699-ae0a-ac4c297fb2d5/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=18aa4c5a52afd01cf97f71cdc968aff4193605b4390247f7672cf53ff447b4ef&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

And now boot it up !


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


:::info
It can takes a few minutes to appear in this list

:::

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/13a18117-072e-4af0-9c18-9ca0d54b3ec8/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=815655ab0f2eb011daff01774c08858f67d335747c2763b73d77f1b585ec56f7&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

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

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/9f7cc9ce-ab6c-4777-b4d4-da8d089212e0/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=5e99647c31bafbb27dace1ebefd5bb36355bcce9b2c3775dca06e7f3c59d4fea&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

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.

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/f2336c45-3946-4f36-9c8a-f6f47a46c4fc/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=b5ae1054b9e66f195329a1637bdca52d3538f4be0cc387dddb5af7f0bbe69a14&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

Then click on “next”.

## Networking

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

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/a11aa6ce-ed16-40f1-98a6-6aee9a473ce1/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=c485341e770517f8a0a17603df8a280672d724f610f088f58c436c59e9179944&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/f753f01a-e6e3-44c0-ac10-e90f78c031e3/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=bc3adef2a8cc484c26ef33eb453c74633da7f72a2df1494d6ec36444c9b64deb&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)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 

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/176ffb37-28e4-49d7-856f-6d655685572b/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=50309b84241d6366f5bd772335777b4e43b94a3f1a28bdff80598fa471598e8a&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject) ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/82e6948a-c2c3-438f-9a6a-b5c87250d6e8/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=fa2d361931ce10bd6d1814245cabfa9e38bd2664a2ce976a5167f318fb00a791&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject) ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/96c2aaaf-f22b-4960-af21-9468c88aa9d8/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=cbca7fdba7e75552ac08b658c589d30c55319e7e6679b32bb11bd1adf16b66e8&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

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.

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/96b8e84d-a954-415b-8053-2ebeff6dfaf4/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=1e8a0cbfaacfa7f9e192bcd37e1ef06d9823032e4ba945434b512eadb54ee912&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)


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

:::


:::info
The installation took me at least 1h20

:::

# Installation success

Now you can go to the given url

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/ef8b9ac8-e66c-4da7-8efa-cf0191dc892b/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=e0e97e2c1a6ecfbb63edd560b6042cfeb107a2da5a840954eaab5fdb2e9c2222&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)


:::warning
You might be on outdated version then update it

:::

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

 ![](https://s3.legodard.fr/outline/uploads/5654a7de-923d-4b76-b273-970424111d36/af9dc4c2-48ba-4193-9664-122c8fe2dbe7/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=GKba57e91c95509edeeb33447e%2F20260909%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20260909T061500Z&X-Amz-Expires=86400&X-Amz-Signature=d37718505caa2335c4a29a0528bcc551cde1114ea42843551e2432e997cd1160&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

## Add ephemeral storage on image registry


:::warning
When the node restart, it’s can’t reboot :warning:

:::

With the downloaded kubeconfig-noingress:

```bash
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 ! :tada:

# Next: [Configure authentication with OpenID](https://docs.legodard.fr/s/bc661677-ac7d-4fe7-984e-e1f43ddf6287/doc/configure-authentication-with-openid-Oi5TOOKNxN)

---

**Documents**

- [AS205126](https://docs.legodard.fr/s/bc661677-ac7d-4fe7-984e-e1f43ddf6287/doc/as205126-UD37o91h51)
- [Kubernetes](https://docs.legodard.fr/s/bc661677-ac7d-4fe7-984e-e1f43ddf6287/doc/kubernetes-AYsNjQV7SW)
- [Proxmox](https://docs.legodard.fr/s/bc661677-ac7d-4fe7-984e-e1f43ddf6287/doc/proxmox-TnNEgoRFwj)
- [DN42](https://docs.legodard.fr/s/bc661677-ac7d-4fe7-984e-e1f43ddf6287/doc/dn42-oTEE68Qn7n)
- [Openshift](https://docs.legodard.fr/s/bc661677-ac7d-4fe7-984e-e1f43ddf6287/doc/openshift-428FG3kMtg)
- [Openstack](https://docs.legodard.fr/s/bc661677-ac7d-4fe7-984e-e1f43ddf6287/doc/openstack-KJmz0J0klm)