Some checks failed
OBS: cdi-chart - charts/x86_64
OBS: baremetal-operator - standard/x86_64
OBS: cri-tools - standard/x86_64
OBS SCM/CI Workflow Integration started
OBS: autoconf - standard/aarch64
OBS: crudini - standard/x86_64
OBS: baremetal-operator-image - images/x86_64
OBS: fakeroot - standard/x86_64
OBS: baremetal-operator - standard/aarch64
OBS: endpoint-copier-operator - standard/x86_64
OBS: kubevirt-dashboard-extension-chart - charts/x86_64
OBS: akri-chart - charts/x86_64
OBS: frr-k8s - standard/x86_64
OBS: frr-image - images/x86_64
OBS: kubevirt-chart - charts/x86_64
OBS: akri-dashboard-extension-chart - charts/x86_64
OBS: autoconf - standard/x86_64
OBS: endpoint-copier-operator-chart - charts/x86_64
OBS: ipcalc - standard/x86_64
OBS: cosign - standard/x86_64
OBS: edge-image-builder - standard/x86_64
OBS: kubectl - standard/x86_64
OBS: metal3-chart - charts/x86_64
OBS: metallb-chart - charts/x86_64
OBS: endpoint-copier-operator-image - images/x86_64
OBS: obs-service-set_version - standard/x86_64
OBS: rancher-turtles-airgap-resources-chart - charts/x86_64
OBS: rancher-turtles-chart - charts/x86_64
OBS: kube-rbac-proxy - standard/x86_64
OBS: sriov-crd-chart - charts/x86_64
OBS: release-manifest-image - test_manifest_images/x86_64
OBS: sriov-network-operator-chart - charts/x86_64
OBS: cri-tools - standard/aarch64
OBS: upgrade-controller-chart - charts/x86_64
OBS: kubectl-image - images/x86_64
OBS: release-manifest-image - images/x86_64
OBS: hauler - standard/x86_64
OBS: upgrade-controller-image - images/x86_64
OBS: metallb - standard/x86_64
OBS: upgrade-controller - standard/x86_64
OBS: kube-rbac-proxy-image - images/x86_64
OBS: release-manifest-image - test_manifest_images/aarch64
OBS: metallb-controller-image - images/x86_64
OBS: metallb-speaker-image - images/x86_64
OBS: ironic-image - images/x86_64
OBS: obs-service-set_version - standard/aarch64
OBS: crudini - standard/aarch64
OBS: cosign - standard/aarch64
OBS: baremetal-operator-image - images/aarch64
OBS: edge-image-builder - standard/aarch64
OBS: fakeroot - standard/aarch64
OBS: endpoint-copier-operator - standard/aarch64
OBS: ipcalc - standard/aarch64
OBS: frr-image - images/aarch64
OBS: frr-k8s - standard/aarch64
OBS: kubectl - standard/aarch64
OBS: kube-rbac-proxy - standard/aarch64
OBS: metallb - standard/aarch64
OBS: upgrade-controller - standard/aarch64
OBS: hauler - standard/aarch64
OBS: release-manifest-image - images/aarch64
OBS: upgrade-controller-image - images/aarch64
OBS: endpoint-copier-operator-image - images/aarch64
OBS: frr-k8s-image - images/aarch64
OBS: frr-k8s-image - images/x86_64
OBS: kube-rbac-proxy-image - images/aarch64
OBS: ironic-image - images/aarch64
OBS: kubectl-image - images/aarch64
OBS: metallb-controller-image - images/aarch64
OBS: metallb-speaker-image - images/aarch64
OBS: nm-configurator - standard/aarch64
OBS: akri - standard/aarch64
OBS: akri-webhook-configuration-image - images/aarch64
OBS: akri-onvif-discovery-handler-image - images/aarch64
OBS: akri-debug-echo-discovery-handler-image - images/aarch64
OBS: nm-configurator - standard/x86_64
OBS: akri-udev-discovery-handler-image - images/aarch64
OBS: akri - standard/x86_64
OBS: akri-webhook-configuration-image - images/x86_64
OBS: akri-onvif-discovery-handler-image - images/x86_64
OBS: akri-opcua-discovery-handler-image - images/x86_64
OBS: akri-agent-image - images/x86_64
OBS: akri-controller-image - images/x86_64
OBS: akri-udev-discovery-handler-image - images/x86_64
OBS: akri-debug-echo-discovery-handler-image - images/x86_64
OBS: akri-opcua-discovery-handler-image - images/aarch64
OBS: akri-controller-image - images/aarch64
OBS: akri-agent-image - images/aarch64
OBS: kiwi-builder-image - images/aarch64
OBS: kiwi-builder-image - images/x86_64
OBS: edge-image-builder-image - images/aarch64
OBS: edge-image-builder-image - test_manifest_images/aarch64
OBS: edge-image-builder-image - images/x86_64
OBS: edge-image-builder-image - test_manifest_images/x86_64
OBS: ironic-ipa-ramdisk - standard/aarch64
OBS: ironic-ipa-downloader-image - images/aarch64
OBS: ironic-ipa-ramdisk - standard/x86_64
OBS: ironic-ipa-downloader-image - images/x86_64
Align with https://github.com/suse-edge/charts/pull/182
Prerequisites
There are two dependencies that are not managed through the metal3 chart because are related to applications that have a cluster-wide scope: cert-manager
and a LoadBalancer Service provider such as metallb
or kube-vip
.
Cert Manager
In order to successfully deploy metal3 the cluster must have already installed the cert-manager
.
You can install it through helm
with:
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--set installCRDs=true
, or via kubectl
with:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.1/cert-manager.yaml
MetalLB (Optional)
Ironic currently requires a staticIP address and MetalLB is one option to achieve that.
- If K3s is used as Kubernetes distribution, then it should be started with
--disable=servicelb
flag. Ref https://metallb.universe.tf/configuration/k3s/ - Find 1 free IP address in the network.
- Install
MetalLB
throughhelm
with:
helm repo add suse-edge https://suse-edge.github.io/charts
helm install \
metallb suse-edge/metallb \
--namespace metallb-system \
--create-namespace
- Provide the IP pool configuration with:
export STATIC_IRONIC_IP=<STATIC_IRONIC_IP>
cat <<-EOF | kubectl apply -f -
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: ironic-ip-pool
namespace: metallb-system
spec:
addresses:
- ${STATIC_IRONIC_IP}/32
serviceAllocation:
priority: 100
serviceSelectors:
- matchExpressions:
- {key: app.kubernetes.io/name, operator: In, values: [metal3-ironic]}
EOF
cat <<-EOF | kubectl apply -f -
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: ironic-ip-pool-l2-adv
namespace: metallb-system
spec:
ipAddressPools:
- ironic-ip-pool
EOF
- Create new values.yaml file that will override some of the default properties:
TMP_DIR=$(mktemp -d)
cat > ${TMP_DIR}/values.yaml << EOF
global:
ironicIP: "<STATIC_IRONIC_IP>"
EOF
Install
helm install \
metal3 suse-edge/metal3 \
--namespace metal3-system \
--create-namespace
-f ${TMP_DIR}/values.yaml
How to upgrade the chart
-
Run
helm dependency update .
in this chart to download/update the dependent charts. -
Identify the appropriate subchart values settings and create an appropriate override values YAML file.
- Ensure that the relevant ironic and baremetal-operator settings match.
-
Install the chart using a command like the following:
$ helm upgrade heavy-metal . --namespace metal-cubed --create-namespace --install --values ~/overrides.yaml