Metal³
Deploying an on-premise K8SaaS cluster will require to use the Metal3 provider. In order to do so, follow the next steps.
Requirements
Section titled “Requirements”Before your first implementation, make sure to be able to setup all the required properties available in the configuration reference.
In order to be able to access your applications with your domain name, you need to properly prepare your dns configuration prior to the K8SaaS cluster becoming operational.
The DNS entry should be set prior to the cluster generation, you will need to get the Load Balancer IP from the Metal3 configuration.
Metal3 configuration example
Section titled “Metal3 configuration example”Once ready, create a config.yaml file with the following parameters:
provider: metal3overlays:- base-metal3k8s: version: v1.29.0 controlPlaneMachineCount: 1 workerMachineCount: 1image: name: ubuntu-2204-k8s-1-29-0 # qcow2 filemetal3: cidr: services: 10.96.0.0/12 pods: 192.167.0.0/18 ipPool: start: 192.168.130.10 end: 192.168.130.254 gatewayIP: 192.168.130.1 dns: 8.8.8.8 controlplaneEndpoint: host: 192.168.130.10 port: 6443 networkData: links: ethernets: - type: phy id: eth0 macAddress: fromHostInterface: ens3 networks: ipv4: - id: provisioning link: eth0 ipAddressFromIPPool: provisioning-pool routes: - network: 0.0.0.0 services: dnsFromIPPool: provisioning-pool hosts: - type: controlplane idrac: username: <username> password: <password> nodeMAC: <macAddress> bmc: address: <bmcAddress> rootDeviceHints: - type: wwn value: 0x500a0751e674d040QCOW 2 Image
Section titled “QCOW 2 Image”In order to provide a base image to the k8saas deployment, the image should be built first and available locally as a QCOW2 file.
Note: This section is incomplete.
SecretStore required values
Section titled “SecretStore required values”Make sure to include your SecretStore configuration in your config.yaml file.
secretStore: provider: plain valsPrefix: secretref+file:///var/run/secrets/vals-expander/secret-store.yaml#/ valsSuffix: "" plain: argocd-oidc-client-key: value argo-workflows-oidc-client-key: value grafana-oidc-client-key: value oauth2-proxy-oidc-client-key: value oauth2-proxy-cookie-key: value s3gw-access-key: value s3gw-secret-key: value admin-password: value admin-password-hash: value