Skip os-images-info if no image is listed
Summary
This issue was discovered when I missed enabling an image in sylva_diskimagebuilder_images while having os_image_selector configured.
Steps to reproduce
My os_image-related configuration in values.yaml:
capm3:
os_image_selector:
os: ubuntu
hardened: false
What is the current bug behavior?
I got an error running bootstrap.sh:
⠈⠱ HelmRelease/os-image-server - InstallFailed - Helm install failed for release os-images/os-image-server with chart os-image-server@0.1.0+8f02a86178b3: execution error at (os-image-server/templates/tests/test_download.yaml:1:91): select-os-images: os_images is not a map (is a invalid)
What is the expected correct behavior?
Skip os-images-info if no image is listed
Relevant logs and/or screenshots
root@sylva-a1:~/sylva-mr/sylva-core# helm get values sylva-units
USER-SUPPLIED VALUES:
cluster:
baremetal_host_default:
bmh_spec:
bmc:
disableCertificateVerification: true
bootMode: UEFI
externallyProvisioned: false
online: true
rootDeviceHints:
deviceName: /dev/sda
baremetal_hosts:
sylva-mgmt-control:
bmh_metadata:
labels:
cluster-role: control-plane
bmh_spec:
bmc:
address: redfish-virtualmedia://10.6.74.33/redfish/v1/Systems/1
disableCertificateVerification: true
bootMACAddress: 3C:EC:EF:E5:DB:62
description: mgmt control plane node
credentials:
password: <...>
username: root
interface_mappings:
eno1np0:
mac_address: 3C:EC:EF:E5:DB:62
ip_preallocations:
primary: 10.6.87.13
capi_providers:
bootstrap_provider: cabpr
infra_provider: capm3
capm3:
dns_servers:
- 10.6.87.11
os_image_selector:
hardened: false
os: ubuntu
os-release: noble
primary_pool_end: 10.6.87.15
primary_pool_gateway: 10.6.87.254
primary_pool_network: 10.6.87.0
primary_pool_prefix: "24"
primary_pool_start: 10.6.87.13
cluster_primary_interfaces:
- eno1
- eno1np0
control_plane:
capm3:
hostSelector:
matchLabels:
cluster-role: control-plane
primary_pool_interface: eno1np0
network_interfaces:
eno1np0:
type: phy
control_plane_replicas: 1
rke2:
additionalUserData:
config:
users:
- groups: users
lock_passwd: false
name: node-admin
passwd: <>
shell: /bin/bash
ssh_authorized_keys: <>
root@sylva-a1
sudo: ALL=(ALL) NOPASSWD:ALL
cluster_virtual_ip: 10.6.87.91
metal3:
bootstrap_ip: 10.6.87.11
ntp:
enabled: true
servers:
- clock.corp.redhat.com
openshift:
assisted:
imageHostname: bm-image-service.example.com
serviceHostname: bm-assisted-service.example.com
proxies:
http_proxy: ""
https_proxy: ""
no_proxy: ""
registry_mirrors:
default_settings:
override_path: true
skip_verify: true
hosts_config:
docker.io:
- mirror_url: http://10.6.87.12/v2/docker.io
gcr.io:
- mirror_url: http://10.6.87.12/v2/gcr.io
ghcr.io:
- mirror_url: http://10.6.87.12/v2/ghcr.io
quay.io:
- mirror_url: http://10.6.87.12/v2/quay.io
registry.gitlab.com:
- mirror_url: http://10.6.87.12/v2/registry.gitlab.com
registry.k8s.io:
- mirror_url: http://10.6.87.12/v2/registry.k8s.io
registry.opensuse.org:
- mirror_url: http://10.6.87.12/v2/registry.opensuse.org
registry.suse.com:
- mirror_url: http://10.6.87.12/v2/registry.suse.com
source_templates:
sylva-core:
spec:
ref:
commit: d8f53e03135c8acbc4d6f647a5d665ca3b2a50de
url: https://gitlab.com/sylva-projects/sylva-core.git
units:
cabpoa:
enabled: true
capm3:
enabled: true
ingress-nginx:
helmrelease_spec:
values:
controller:
config:
large-client-header-buffers: 4 16k
local-path-provisioner:
enabled: true
longhorn:
enabled_conditions:
- false
metal3:
enabled: true
helmrelease_spec:
values:
global:
ironicKernelParams: console=tty1 suse.autologin=tty1 ipv6.disable=1
metal3-ironic:
images:
ironic:
pullPolicy: Always
repository: registry.opensuse.org/isv/suse/edge/metal3/ironic/2024.2/containerfile/ironic
tag: 26.1.2.3
metal3-mariadb:
image:
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/suse/mariadb
minio-monitoring:
enabled: false
openshift-assisted-installer:
enabled: true
thanos:
enabled: false
root@sylva-a1:~/sylva-mr/sylva-core# helm get values sylva-units | grep os_images
root@sylva-a1:~/sylva-mr/sylva-core# helm get values sylva-units | grep sylva_diskimagebuilder_images
root@sylva-a1:~/sylva-mr/sylva-core# kubectl logs os-images-info-jw9fp -n sylva-system
Initiate ConfigMap manifest file
Looping over OS images...
Error: bad file '/opt/images.yaml': yaml: line 2: could not find expected ':'
Updating os-images-info configmap
configmap/os-images-info created
root@sylva-a1:~/sylva-mr/sylva-core#
Possible fixes
Edited by Andrew Kiselev