113 Commits

Author SHA256 Message Date
7610b57e90 Add kubevirt-dashboard-extension-chart version 303.0.1+up1.3.0 2025-04-25 09:46:54 +02:00
5883bf7549 Merge pull request '[3.3] - bump nm configurator rpm to 0.3.2' (#122) from dprodanov/Factory:nm-configurator-0-3-2 into main
Reviewed-on: #122
Reviewed-by: Nicolas Belouin <nbelouin@noreply.src.opensuse.org>
2025-04-15 13:50:00 +02:00
ba5ed09bd8 Merge pull request '[3.3.0] kubevirt update to 0.5.0' (#116) from dprodanov/Factory:kubevirt-0-5-0 into main
Reviewed-on: #116
Reviewed-by: Nicolas Belouin <nbelouin@noreply.src.opensuse.org>
2025-04-15 13:49:44 +02:00
b91c34b6c3 [3.3] - bump nm configurator rpm to 0.3.2
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in 10s
[3.3] - bump nm config to 0.3.2

use lfs
2025-04-15 11:05:35 +03:00
b2e4b5e259 Merge pull request 'Enable aarch64 build for kiwi-builder-image' (#120) from nbelouin/Factory:enable-kiwi-arm into main
All checks were successful
Synchronize Project Config / Update prjconf in OBS (push) Successful in 4s
Synchronize Project Metadata / sync-prj-meta (push) Successful in -11s
Reviewed-on: #120
Reviewed-by: Fatih Degirmenci <fdegirmenci@noreply.src.opensuse.org>
2025-04-09 13:16:51 +02:00
e3f36b74d9 Enable aarch64 build for kiwi-builder-image
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in 10s
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-04-09 11:13:58 +02:00
2b020e9bd7 Merge pull request 'Install both ramdisks in the ipa downloader' (#84) from nbelouin/Factory:multi-arch-ipa into main
All checks were successful
Synchronize Project Config / Update prjconf in OBS (push) Successful in -23s
Synchronize Project Metadata / sync-prj-meta (push) Successful in 15s
Reviewed-on: #84
Reviewed-by: Alberto Morgante Medina <amorgante@noreply.src.opensuse.org>
2025-04-03 15:36:01 +02:00
98fa8835f7 Install both ramdisks in the ipa downloader
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in 18s
- Make the different ipa-ramdisk packages installable side by side
- Clean the ipa-downloader Dockerfile from what seems to be unneeded
- Get both images in
- Use zstd instead of xz for better speed
- Check sums before redoing certs integration
- Add value to metal3 chart to select between architectures
- Get the two ESP available as well

Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-04-03 15:34:29 +02:00
5f52392aa3 Merge pull request 'Change trigger_devel workflow to midday every week day' (#94) from fdegirmenci/suse-edge-factory:trigger-devel-midday-weekdays into main
Reviewed-on: #94
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
Reviewed-by: Steven Hardy <steven.hardy@noreply.src.opensuse.org>
Reviewed-by: Nicolas Belouin <nbelouin@noreply.src.opensuse.org>
2025-03-31 09:33:19 +02:00
083c753a0d [3.3.0] kubevirt update to 0.5.0
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in 16s
2025-03-24 15:46:23 +02:00
48472176f2 metal3-chart: Remove stale files
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in 12s
Trigger Devel Packages / Trigger source services for devel packages that changed (push) Successful in 6s
I missed this in #88 - we need to remove these template files to align with
00421ca826
2025-03-24 13:32:49 +00:00
53f09dd00f Update kubevirt-dashboard-extension-chart to v302.0.0+up1.2.1 2025-03-24 12:09:44 +01:00
c610436551 Fix IPA Downloader version, bump to 3.0.2
Some checks failed
Build PR in OBS / Build PR in OBS (pull_request_target) Failing after 52m14s
Update the Dockerfile to be aligned with the IPA ramdisk and metal3
Chart.

Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-03-24 09:09:32 +00:00
3d1a70e87a rancher-turtles-chart: remove stale file
All checks were successful
Trigger Devel Packages / Trigger source services for devel packages that changed (push) Successful in 7s
This was removed in the 0.17.0 chart but I didn't notice when rebasing
2025-03-21 17:24:45 +01:00
e439f489ca Bump Metal3 version
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in -3s
Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-03-21 14:05:19 +00:00
8e56e1edd3 Update the IPA ramdisk to 3.0.2
Force nmc to run before NetworkManager to avoid race conditions
that can lead to undetermined network configuration.

Signed-off-by: Marco Chiappero <marco.chiappero@suse.com>
2025-03-21 14:05:19 +00:00
2a3c37b31d release-manifest: update rancher-turtles version
Update to 0.17.0 chart
2025-03-21 14:38:06 +01:00
eacabe4d71 rancher-turtles-chart: Update to 0.17.0
Aligns with https://github.com/suse-edge/charts/pull/193
2025-03-21 14:38:06 +01:00
d57078f9d9 rancher-turtles-airgap-resources-chart: Update to 0.17.0
Aligns with: https://github.com/suse-edge/charts/pull/193
2025-03-21 14:38:06 +01:00
fef712e4e8 Update akri-dashboard-extension-chart to v302.0.0+up1.2.1 2025-03-21 14:36:49 +01:00
2b194211ee Upgrade Hauler to v1.2.1 and add version to build (#92)
All checks were successful
Synchronize Project Config / Update prjconf in OBS (push) Successful in -9s
Synchronize Project Metadata / sync-prj-meta (push) Successful in 1s
Trigger Devel Packages / Trigger source services for devel packages that changed (push) Successful in 1m6s
Reviewed-on: #92
Reviewed-by: Steven Hardy <steven.hardy@noreply.src.opensuse.org>
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
Co-authored-by: dbw7 <danial.bekhit@suse.com>
Co-committed-by: dbw7 <danial.bekhit@suse.com>
2025-03-20 20:28:44 +01:00
a3fda4c5c0 Merge pull request 'Fix FRR-k8s versiobn' (#105) from kzhelyazkov/Factory:fix-frr-rbac-image into main
Reviewed-on: #105
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
2025-03-20 15:31:37 +01:00
3c08af8a28 Fix FRR-k8s versiobn
Some checks failed
Build PR in OBS / Build PR in OBS (pull_request_target) Failing after 1m6s
2025-03-20 16:30:17 +02:00
a1583230bd Merge pull request 'Add metallb-chart build tags' (#103) from kzhelyazkov/Factory:add-metallb-build-tag into main
Reviewed-on: #103
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
2025-03-20 15:09:59 +01:00
c8c20ce47a Add metallb-chart build tags
Some checks failed
Build PR in OBS / Build PR in OBS (pull_request_target) Failing after 1m34s
2025-03-20 16:08:09 +02:00
b30ece6b61 Merge pull request 'Update MetalLB and all other packages around it' (#98) from kzhelyazkov/Factory:update-metallb into main
Reviewed-on: #98
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
Reviewed-by: Steven Hardy <steven.hardy@noreply.src.opensuse.org>
2025-03-20 13:25:13 +01:00
54c0850acf Update MetalLB and all other packages around it
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in -2s
2025-03-19 18:52:41 +02:00
ab92525cbe Merge pull request 'Bump Metal3 and Turles RM versions' (#96) from kzhelyazkov/Factory:bump-metal3-to-0.10.0 into main
All checks were successful
Trigger Devel Packages / Trigger source services for devel packages that changed (push) Successful in 5s
Reviewed-on: #96
Reviewed-by: Fatih Degirmenci <fdegirmenci@noreply.src.opensuse.org>
2025-03-19 14:06:13 +01:00
75ae14da78 Bump Metal3 and Turles RM versions
Some checks failed
Build PR in OBS / Build PR in OBS (pull_request_target) Failing after 1h41m32s
2025-03-19 11:56:54 +02:00
20de7cd994 Merge pull request '3.3.0: Bump rke2 to v1.32.2+rke2r1 in release-manifest' (#95) from fdegirmenci/suse-edge-factory:update-release-manifest-3.3.0 into main
All checks were successful
Trigger Devel Packages / Trigger source services for devel packages that changed (push) Successful in 18s
Reviewed-on: #95
Reviewed-by: Kristian Zhelyazkov <kzhelyazkov@noreply.src.opensuse.org>
2025-03-18 17:25:13 +01:00
ca510a470a 3.3.0: Bump rke2 to v1.32.2+rke2r1 in release-manifest
Some checks failed
Build PR in OBS / Build PR in OBS (pull_request_target) Failing after 2m32s
2025-03-18 17:21:11 +01:00
c68c882d35 metal3-chart: update to 0.10.0
All checks were successful
Trigger Devel Packages / Trigger source services for devel packages that changed (push) Successful in 22s
Aligns with https://github.com/suse-edge/charts/pull/191
2025-03-17 15:43:38 +01:00
e83a9cea3c baremetal-operator: update to 0.9.0 2025-03-17 15:43:38 +01:00
ea8a9c590a Merge pull request 'Bump Rancher, RKE2, and k3s versions in release-manifest' (#93) from fdegirmenci/suse-edge-factory:update-release-manifest-3.3.0 into main
Reviewed-on: #93
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
2025-03-17 13:29:27 +01:00
fb896ffe62 Change trigger_devel workflow to midday every week day
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in -4s
Cron is configured to run every night on a daily basis which is
great. However, this has potential to break all the SV pipelines
as a commit that gets merged to EIB will result in a new image
build without the SV team have chance to validate and reflect the
change to SV.

This commit configures trigger_devel workflow to run midday every
week day so the SV team can make the necessary validations and
updates accordingly.

Please note that this should be considered as a temporary fix and
an automated way to bring new EIB versions to SV should be developed
collaboratively.
2025-03-17 13:16:07 +01:00
dc19c71706 Update Helm Chart versions for traefik and traefik-crd
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in 1s
2025-03-17 12:48:50 +01:00
5db4c3bc79 Bump Rancher, RKE2, and k3s versions in release-manifest
Some checks failed
Build PR in OBS / Build PR in OBS (pull_request_target) Failing after 46m14s
This PR bumps Rancher, RKE2, and k3s versions to align them with
SV baseline to ensure the upgrade validation is done using the
correct versions.

Versions for traefik and traefik-crd Helm Charts are still
pending to be verified.
2025-03-17 12:40:54 +01:00
389f19f7b9 Merge pull request 'longhorn-1-7-3' (#89) from dprodanov/Factory:longhorn-1-7-3 into main
All checks were successful
Trigger Devel Packages / Trigger source services for devel packages that changed (push) Successful in 22s
Reviewed-on: #89
Reviewed-by: Steven Hardy <steven.hardy@noreply.src.opensuse.org>
2025-03-14 10:54:25 +01:00
78a681a3a3 remove accidental push of .idea
Some checks failed
Build PR in OBS / Build PR in OBS (pull_request_target) Failing after 6m45s
2025-03-14 11:47:25 +02:00
da3b39573b update longhorn version to 1.7.3 2025-03-14 11:45:31 +02:00
6531575f1b metal3-chart: update to 0.9.4
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in 15s
Trigger Devel Packages / Trigger source services for devel packages that changed (push) Successful in 33s
Aligns with https://github.com/suse-edge/charts/pull/192
2025-03-12 09:38:29 +00:00
d59f3540a2 metal3-chart: update to 0.9.3
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in 10s
Trigger Devel Packages / Trigger source services for devel packages that changed (push) Successful in 24s
Aligns with https://github.com/suse-edge/charts/pull/189
2025-03-05 19:10:38 +01:00
43c764e69c ironic-image: update to 26.1.2.3
Aligns with https://github.com/suse-edge/charts/pull/189
Also see:
https://build.opensuse.org/package/rdiff/isv:SUSE:Edge:Metal3:Ironic:2024.2/ironic-image?linkrev=base&rev=11
2025-03-05 19:06:06 +01:00
0b306a3e7a Merge pull request 'init versions for release manifest 3.3' (#83) from dprodanov/Factory:release-manifest-3.3 into main
All checks were successful
Trigger Devel Packages / Trigger source services for devel packages that changed (push) Successful in 27s
Reviewed-on: #83
Reviewed-by: Ivo Petrov <ipetrov117@noreply.src.opensuse.org>
2025-02-28 18:19:08 +01:00
c744e56218 Merge pull request 'Ironic dependency is located in different project when in internal obs' (#82) from nbelouin/Factory:ironic-meta into main
All checks were successful
Synchronize Project Metadata / sync-prj-meta (push) Successful in 6s
Reviewed-on: #82
Reviewed-by: Steven Hardy <steven.hardy@noreply.src.opensuse.org>
2025-02-28 12:36:10 +01:00
ddabc54ac8 init versions for release manifest 3.3
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in 5s
2025-02-28 11:52:41 +02:00
0cb039a9df Ironic dependency is located in different project when in internal obs
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in 5s
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-26 10:36:10 +01:00
eff9a9b0c5 rancher-turtles-chart: Update to 0.16.0
All checks were successful
Trigger Devel Packages / Trigger source services for devel packages that changed (push) Successful in 20s
Align with https://github.com/suse-edge/charts/pull/186
2025-02-25 15:31:46 +01:00
8d336f380b rancher-turtles-airgap-resources-chart: Update to 0.16.0
Align with https://github.com/suse-edge/charts/pull/186
2025-02-25 15:31:46 +01:00
5947d531ab Merge pull request 'Add scheduled workflow for devel branch' (#80) from nbelouin/Factory:trigger-devel-refresh into main
Reviewed-on: #80
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
2025-02-25 15:08:57 +01:00
15362e9536 Add scheduled workflow for devel branch
All checks were successful
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in 11s
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-25 13:26:41 +01:00
8f20b3433e Fix PR closed workflow
All checks were successful
Synchronize Project Config / Update prjconf in OBS (push) Successful in -5s
Synchronize Project Metadata / sync-prj-meta (push) Successful in 3s
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-24 15:44:23 +01:00
704eec6875 Merge pull request 'Fix obsinfo tar issues' (#77) from nbelouin/Factory:fix_packages_tar into main
All checks were successful
Synchronize Project Config / sync-prjconf (push) Successful in -5s
Synchronize Project Metadata / sync-prj-meta (push) Successful in 3s
Reviewed-on: #77
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
2025-02-24 15:32:13 +01:00
98c4be017d Add ipcalc, crudini and fakeroot for aarch64 build
Some checks failed
Synchronize Project Config / sync-pr-project (pull_request_target) Failing after 1s
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-24 13:50:10 +01:00
dccf206a98 Fix obsinfo tar issues
Some checks failed
Synchronize Project Config / sync-pr-project (pull_request_target) Failing after 14s
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-24 11:21:52 +01:00
9e41ee25d9 Make wait_obs correctly fail
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-24 11:21:31 +01:00
d97e434fce PR sha is the wrong one, fix it
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-24 11:16:34 +01:00
3dea69443d Add more output to wait_obs
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-24 10:47:26 +01:00
331f08255c Fix gitea not supporting if expressions
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-21 15:38:13 +01:00
4a99805fde Fix typos in workflows
All checks were successful
Synchronize Project Metadata / sync-prj-meta (push) Successful in 6s
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-21 15:17:59 +01:00
6b8a623372 Merge pull request 'Synchronize metadata from template' (#76) from nbelouin/Factory:sync_meta into main
Some checks failed
Synchronize Project Config / sync-prjconf (push) Successful in -3s
Synchronize Project Metadata / sync-prjconf (push) Failing after 6s
Reviewed-on: #76
Reviewed-by: Steven Hardy <steven.hardy@noreply.src.opensuse.org>
2025-02-21 15:04:45 +01:00
34687fb5e9 Reduce number of maintainers to avoid spam
Some checks failed
OBS: ironic-ipa-downloader-image - images/x86_64
OBS: akri-webhook-configuration-image - images/x86_64
OBS: akri-udev-discovery-handler-image - images/x86_64
OBS: akri-opcua-discovery-handler-image - images/x86_64
OBS: akri-agent-image - images/x86_64
OBS: kubectl-image - images/aarch64
OBS: kubectl-image - images/x86_64
OBS: edge-image-builder-image - images/aarch64
OBS: kube-rbac-proxy-image - images/aarch64
OBS: frr-k8s-image - images/aarch64
OBS: kube-rbac-proxy-image - images/x86_64
OBS: frr-k8s-image - images/x86_64
OBS: upgrade-controller-image - images/aarch64
OBS: akri-controller-image - images/aarch64
OBS: akri-agent-image - images/aarch64
OBS: akri-onvif-discovery-handler-image - images/aarch64
OBS: akri-opcua-discovery-handler-image - images/aarch64
OBS: akri-debug-echo-discovery-handler-image - images/aarch64
OBS: ironic-ipa-ramdisk - standard/aarch64
OBS: akri-udev-discovery-handler-image - images/aarch64
OBS: akri-webhook-configuration-image - images/aarch64
OBS: ironic-ipa-downloader-image - images/aarch64
OBS: nm-configurator - standard/aarch64
Synchronize Project Config / sync-prjconf (pull_request_target) Failing after 19s
OBS: baremetal-operator-image - images/aarch64
OBS: edge-image-builder-image - test_manifest_images/aarch64
OBS: frr-image - images/x86_64
OBS: akri-onvif-discovery-handler-image - images/x86_64
OBS: akri-controller-image - images/x86_64
OBS: edge-image-builder-image - test_manifest_images/x86_64
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-21 09:33:48 +01:00
5a73d61002 Fix issue with bash being annoying
All checks were successful
OBS: kubectl-image - images/aarch64
OBS: ironic-image - images/aarch64
OBS: endpoint-copier-operator-image - images/aarch64
OBS: upgrade-controller-image - images/aarch64
OBS: metallb-speaker-image - images/aarch64
OBS: kube-rbac-proxy-image - images/aarch64
OBS: edge-image-builder-image - test_manifest_images/aarch64
OBS: frr-k8s-image - images/aarch64
OBS: metallb-controller-image - images/aarch64
OBS: ironic-ipa-ramdisk - standard/x86_64
OBS: edge-image-builder-image - images/aarch64
OBS: akri-udev-discovery-handler-image - images/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-controller-image - images/x86_64
OBS: akri-debug-echo-discovery-handler-image - images/x86_64
OBS: akri-agent-image - images/x86_64
OBS: ironic-ipa-downloader-image - images/x86_64
OBS: akri-controller-image - images/aarch64
OBS: akri-agent-image - images/aarch64
OBS: akri-opcua-discovery-handler-image - images/aarch64
OBS: akri-udev-discovery-handler-image - images/aarch64
OBS: akri-debug-echo-discovery-handler-image - images/aarch64
OBS: ironic-ipa-ramdisk - standard/aarch64
OBS: akri-onvif-discovery-handler-image - images/aarch64
OBS: akri-webhook-configuration-image - images/aarch64
OBS: ironic-ipa-downloader-image - images/aarch64
OBS: kiwi-builder-image - images/aarch64
OBS: kiwi-builder-image - images/x86_64
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-20 15:57:08 +01:00
4c6d7dea17 Updating Kiwi builder for SL Micro 6.1 builds 2025-02-20 15:38:31 +01:00
531bb91d27 Merge pull request 'Add metal3 images to ARM allowlist' (#74) from steven.hardy/Factory:arm_config into main
All checks were successful
Synchronize Project Config / sync-prjconf (push) Successful in 6s
Reviewed-on: #74
Reviewed-by: Nicolas Belouin <nbelouin@noreply.src.opensuse.org>
2025-02-20 15:34:51 +01:00
0d3c83fca1 Fix create_project for internal
Some checks failed
OBS: cosign - standard/aarch64
OBS: ipcalc - standard/aarch64
OBS: kubectl - standard/aarch64
OBS: frr-k8s-image - images/aarch64
OBS: akri-opcua-discovery-handler-image - images/x86_64
OBS: frr-image - images/aarch64
OBS: kube-rbac-proxy - standard/aarch64
OBS: akri-udev-discovery-handler-image - images/x86_64
OBS: upgrade-controller - standard/aarch64
OBS: akri-controller-image - images/x86_64
OBS: akri-debug-echo-discovery-handler-image - images/x86_64
OBS: metallb - standard/aarch64
OBS: akri-onvif-discovery-handler-image - images/x86_64
OBS: ironic-image - images/aarch64
OBS: akri-webhook-configuration-image - images/x86_64
OBS: fakeroot - standard/aarch64
OBS: kubectl-image - images/aarch64
OBS: kiwi-builder-image - images/aarch64
OBS: kube-rbac-proxy-image - images/aarch64
OBS: ironic-ipa-ramdisk - standard/aarch64
OBS: metallb-speaker-image - images/aarch64
OBS: metallb-controller-image - images/aarch64
OBS: release-manifest-image - images/aarch64
OBS: ironic-ipa-downloader-image - images/aarch64
OBS: upgrade-controller-image - images/aarch64
OBS: edge-image-builder-image - test_manifest_images/aarch64
OBS: akri-agent-image - images/aarch64
OBS: endpoint-copier-operator-image - images/aarch64
OBS: hauler - standard/aarch64
OBS: edge-image-builder-image - images/aarch64
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-20 14:13:37 +01:00
4d824b71cc Remove need for workflow
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-20 14:01:04 +01:00
7f93226cd3 Fix akri tar step
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-20 11:15:35 +01:00
d6d501ad99 Sync metadata, revamp PR jobs
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-20 11:05:47 +01:00
f61bb1e0e6 Add metal3 images to ARM allowlist
Some checks failed
OBS: kiwi-builder-image - images/aarch64
OBS: release-manifest-image - images/aarch64
OBS: akri-agent-image - images/x86_64
OBS: kube-rbac-proxy - standard/aarch64
OBS: nm-configurator - standard/x86_64
OBS: upgrade-controller-image - images/x86_64
OBS: endpoint-copier-operator-image - images/aarch64
OBS: akri - standard/aarch64
OBS: metallb - standard/aarch64
OBS: frr-k8s-image - images/aarch64
OBS: kubectl-image - images/aarch64
OBS: ironic-image - images/aarch64
OBS: frr-k8s-image - images/x86_64
OBS: nm-configurator - standard/aarch64
OBS: kube-rbac-proxy-image - images/aarch64
OBS: akri-agent-image - images/aarch64
OBS: upgrade-controller-image - images/aarch64
OBS: kube-rbac-proxy-image - images/x86_64
OBS: metallb-speaker-image - images/aarch64
OBS: metallb-controller-image - images/aarch64
OBS: metallb-controller-image - images/x86_64
OBS: metallb-speaker-image - images/x86_64
OBS: ironic-ipa-ramdisk - standard/x86_64
OBS: ironic-ipa-downloader-image - images/x86_64
OBS: ironic-ipa-ramdisk - standard/aarch64
OBS: ironic-ipa-downloader-image - images/aarch64
OBS: edge-image-builder-image - images/aarch64
OBS: edge-image-builder-image - images/x86_64
OBS: edge-image-builder-image - test_manifest_images/aarch64
OBS: edge-image-builder-image - test_manifest_images/x86_64
We need to ensure these build to enable usage of the metal3 chart on ARM
2025-02-20 09:36:23 +00:00
a510134ed4 Fix sync action typo
All checks were successful
Synchronize Project Config / sync-prjconf (push) Successful in 1s
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-14 14:40:43 +01:00
54e0941879 Trigger workflow when it changes
All checks were successful
Synchronize Project Config / sync-prjconf (push) Successful in 1s
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-14 14:36:16 +01:00
c04b2af72b Fix typo in sync_config action workflow
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-14 14:34:44 +01:00
c57aa3344d Merge pull request 'Add project config to git' (#72) from nbelouin/Factory:add_config into main
All checks were successful
Synchronize Project Config / sync-prjconf (push) Successful in 1s
Reviewed-on: #72
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
Reviewed-by: Steven Hardy <steven.hardy@noreply.src.opensuse.org>
2025-02-14 14:31:37 +01:00
c86d724e92 Add project config to git
All checks were successful
OBS SCM/CI Workflow Integration started
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-02-14 14:31:09 +01:00
9d97e8a56d metal3-chart: Update to 0.9.2
Some checks failed
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
2025-02-12 09:12:49 +00:00
b912f9d68a ironic-image: update to 26.1.2.2
Align with:
https://build.opensuse.org/package/rdiff/isv:SUSE:Edge:Metal3:Ironic:2024.2/ironic-image?linkrev=base&rev=10
https://github.com/suse-edge/charts/pull/182

Fixes a pod restart caused by the runlogwatch.sh script
2025-02-12 09:06:45 +00:00
45443d5b5f ironic-ipa-downloader-image: remove unused _service entry
Some checks failed
OBS: baremetal-operator - standard/aarch64
OBS: upgrade-controller-image - images/x86_64
OBS: metallb-controller-image - images/aarch64
OBS: metallb-speaker-image - images/x86_64
OBS: edge-image-builder - standard/aarch64
OBS: hauler - standard/aarch64
OBS: edge-image-builder-image - images/aarch64
OBS: cosign - standard/aarch64
OBS: baremetal-operator-image - images/x86_64
OBS: hauler - standard/x86_64
OBS: metallb-controller-image - images/x86_64
OBS: upgrade-controller - standard/aarch64
OBS: baremetal-operator-image - images/aarch64
OBS: frr-k8s - standard/aarch64
OBS: edge-image-builder-image - test_manifest_images/x86_64
OBS: frr-image - images/aarch64
OBS: frr-k8s - standard/x86_64
OBS: kube-rbac-proxy-image - images/x86_64
OBS: akri-agent-image - images/x86_64
OBS: metallb-speaker-image - images/aarch64
OBS: akri-agent-image - images/aarch64
OBS: kube-rbac-proxy - standard/aarch64
OBS: frr-k8s-image - images/aarch64
OBS: edge-image-builder-image - images/x86_64
OBS: cosign - standard/x86_64
OBS: frr-k8s-image - images/x86_64
OBS: cri-tools - standard/aarch64
OBS: upgrade-controller-image - images/aarch64
OBS: kube-rbac-proxy-image - images/aarch64
OBS: edge-image-builder-image - test_manifest_images/aarch64
This is hard-coded to x86_64 so won't work for ARM, aligns with:
https://build.opensuse.org/package/rdiff/isv:SUSE:Edge:Metal3:Ironic:2024.2/ironic-ipa-downloader-image?linkrev=base&rev=6
2025-02-07 11:25:21 +00:00
ac32110ac1 ironic-ipa-ramdisk: migrate tarball to git-lfs
Some checks failed
OBS: kubectl-image - images/aarch64
OBS: release-manifest-image - images/aarch64
OBS: upgrade-controller-image - images/aarch64
OBS: ironic-image - images/aarch64
OBS: metallb-speaker-image - images/aarch64
OBS: metallb-controller-image - images/aarch64
OBS: ironic-ipa-ramdisk - standard/x86_64
OBS: ironic-ipa-downloader-image - images/x86_64
OBS: akri - standard/aarch64
OBS: akri-controller-image - images/aarch64
OBS: akri-agent-image - images/aarch64
OBS: akri-controller-image - images/x86_64
OBS: akri-debug-echo-discovery-handler-image - images/aarch64
OBS: akri-debug-echo-discovery-handler-image - images/x86_64
OBS: akri-onvif-discovery-handler-image - images/aarch64
OBS: ironic-ipa-ramdisk - standard/aarch64
OBS: akri-onvif-discovery-handler-image - images/x86_64
OBS: ironic-ipa-downloader-image - images/aarch64
OBS: akri-opcua-discovery-handler-image - images/aarch64
OBS: akri-webhook-configuration-image - images/aarch64
OBS: akri-opcua-discovery-handler-image - images/x86_64
OBS: akri-webhook-configuration-image - images/x86_64
OBS: akri-udev-discovery-handler-image - images/aarch64
OBS: akri-udev-discovery-handler-image - images/x86_64
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 - images/x86_64
OBS: edge-image-builder-image - test_manifest_images/aarch64
OBS: edge-image-builder-image - test_manifest_images/x86_64
2025-02-06 16:38:13 +00:00
5d20bc38e3 metal3-chart: update to 0.9.1
Align with https://github.com/suse-edge/charts/pull/173 which
added some fixes to enable deployment on aarch64
2025-02-06 16:36:07 +00:00
e085a97d98 ironic-ipa-downloader-image: update to 3.0.1
Update to the latest version from
https://build.opensuse.org/package/show/isv:SUSE:Edge:Metal3:Ironic:2024.2/ironic-ipa-downloader-image
2025-02-06 16:36:04 +00:00
58c8be887a ironic-ipa-ramdisk: update to 3.0.1
Update to the latest version from
https://build.opensuse.org/package/show/isv:SUSE:Edge:Metal3:Ironic:2024.2/ironic-ipa-ramdisk
2025-02-06 16:35:57 +00:00
0d59ad920e ironic-image: update to 26.1.2.1
Align with latest 26.1.2.1 version from
https://build.opensuse.org/package/show/isv:SUSE:Edge:Metal3:Ironic:2024.2/ironic-image
2025-02-05 15:58:26 +00:00
74133c22f6 Fix service file for frr-k8s-image
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-01-17 09:44:56 +01:00
e85da96001 Merge pull request 'Import missing package: frr-k8s-image' (#67) from nbelouin/Factory:import-frr-k8s-image into main
Reviewed-on: #67
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
2025-01-17 09:31:28 +01:00
dab7f36e0b Add package to workflow
All checks were successful
OBS: kubectl - standard/x86_64
OBS SCM/CI Workflow Integration started
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-01-17 09:31:10 +01:00
5490ffcde2 Import missing package: frr-k8s-image
All checks were successful
OBS: akri-debug-echo-discovery-handler-image - images/aarch64
OBS: endpoint-copier-operator-image - images/x86_64
OBS: akri-opcua-discovery-handler-image - images/x86_64
OBS: crudini - standard/x86_64
OBS: akri-udev-discovery-handler-image - images/x86_64
OBS: endpoint-copier-operator-chart - charts/x86_64
OBS: akri-debug-echo-discovery-handler-image - images/x86_64
OBS: akri-onvif-discovery-handler-image - images/x86_64
OBS: akri-webhook-configuration-image - images/x86_64
OBS: akri-controller-image - images/x86_64
OBS: cri-tools - standard/x86_64
OBS: akri-controller-image - images/aarch64
OBS: akri-agent-image - images/aarch64
OBS: baremetal-operator - standard/x86_64
OBS: akri-webhook-configuration-image - images/aarch64
OBS: akri-onvif-discovery-handler-image - images/aarch64
OBS: fakeroot - standard/x86_64
OBS: endpoint-copier-operator - standard/x86_64
OBS: ipcalc - standard/x86_64
OBS: cosign - standard/x86_64
OBS: edge-image-builder - standard/x86_64
OBS: frr-image - images/x86_64
OBS: akri-agent-image - images/x86_64
OBS: edge-image-builder-image - test_manifest_images/x86_64
OBS: kubectl-image - images/x86_64
OBS: kubevirt-dashboard-extension-chart - charts/x86_64
OBS: kubevirt-chart - charts/x86_64
OBS: baremetal-operator-image - images/x86_64
OBS: edge-image-builder-image - images/x86_64
OBS: kube-rbac-proxy-image - images/x86_64
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-01-17 09:24:32 +01:00
04b9c07dd5 Merge pull request 'Add an additional tag without the _up suffix to please Rancher for dashboard extensions' (#65) from nbelouin/Factory:add-no-up-tag-extensions into main
Reviewed-on: #65
Reviewed-by: Jiří Tomášek <jtomasek@noreply.src.opensuse.org>
2025-01-16 15:47:33 +01:00
25de5df782 Add an additional tag without the _up suffix to please Rancher for dashboard extensions
All checks were successful
OBS: baremetal-operator - standard/aarch64
OBS: endpoint-copier-operator-image - images/x86_64
OBS: cri-tools - standard/aarch64
OBS: rancher-turtles-airgap-resources-chart - charts/x86_64
OBS: obs-service-set_version - standard/x86_64
OBS: sriov-network-operator-chart - charts/x86_64
OBS: rancher-turtles-chart - charts/x86_64
OBS: kube-rbac-proxy - standard/x86_64
OBS: hauler - standard/x86_64
OBS: metallb - standard/x86_64
OBS: upgrade-controller - standard/x86_64
OBS: edge-image-builder-image - test_manifest_images/x86_64
OBS: edge-image-builder-image - images/x86_64
OBS: baremetal-operator-image - images/aarch64
OBS: ironic-ipa-downloader-image - images/x86_64
OBS: crudini - standard/aarch64
OBS: kiwi-builder-image - images/x86_64
OBS: ironic-image - images/x86_64
OBS: upgrade-controller-chart - charts/x86_64
OBS: release-manifest-image - test_manifest_images/x86_64
OBS: sriov-crd-chart - charts/x86_64
OBS: release-manifest-image - images/x86_64
OBS: kubectl-image - images/x86_64
OBS: upgrade-controller-image - images/x86_64
OBS: release-manifest-image - test_manifest_images/aarch64
OBS: nm-configurator - standard/x86_64
OBS: obs-service-set_version - standard/aarch64
OBS: metallb-controller-image - images/x86_64
OBS: kube-rbac-proxy-image - images/x86_64
OBS: metallb-speaker-image - images/x86_64
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-01-16 15:35:46 +01:00
3f9b8c9e22 Merge pull request 'Use manifest_repo var to allow for release manifest in separate repo' (#57) from nbelouin/Factory:manifest-repo-var into main
Reviewed-on: #57
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
2024-12-23 12:11:01 +01:00
2a993e342e Use manifest_repo var to allow for release manifest in separate repo
All checks were successful
OBS: release-manifest-image - test_manifest_images/aarch64
OBS: metallb - standard/aarch64
OBS: upgrade-controller - standard/x86_64
OBS: kubevirt-chart - charts/x86_64
OBS: metallb - standard/x86_64
OBS: release-manifest-image - test_manifest_images/x86_64
OBS: release-manifest-image - images/aarch64
OBS: release-manifest-image - images/x86_64
OBS: hauler - standard/x86_64
OBS: hauler - standard/aarch64
OBS: baremetal-operator-image - images/aarch64
OBS: akri-agent-image - images/aarch64
OBS: endpoint-copier-operator-image - images/x86_64
OBS: baremetal-operator-image - images/x86_64
OBS: endpoint-copier-operator-image - images/aarch64
OBS: kube-rbac-proxy-image - images/aarch64
OBS: ironic-ipa-downloader-image - images/x86_64
OBS: upgrade-controller-image - images/aarch64
OBS: metallb-controller-image - images/aarch64
OBS: metallb-speaker-image - images/aarch64
OBS: ironic-image - images/x86_64
OBS: upgrade-controller-image - images/x86_64
OBS: metallb-controller-image - images/x86_64
OBS: akri-agent-image - images/x86_64
OBS: metallb-speaker-image - images/x86_64
OBS: edge-image-builder-image - images/aarch64
OBS: edge-image-builder-image - test_manifest_images/x86_64
OBS: edge-image-builder-image - images/x86_64
OBS: edge-image-builder-image - test_manifest_images/aarch64
OBS: kube-rbac-proxy-image - images/x86_64
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2024-12-23 11:33:04 +01:00
cab6fe1bcb release-manifest: Update to Rancher prime 2.10.1
All checks were successful
OBS: kube-rbac-proxy - standard/x86_64
OBS: sriov-crd-chart - charts/x86_64
OBS: sriov-network-operator-chart - charts/x86_64
OBS: frr-k8s - standard/aarch64
OBS: release-manifest-image - test_manifest_images/x86_64
OBS: kiwi-builder-image - images/aarch64
OBS: metallb-speaker-image - images/aarch64
OBS: kube-rbac-proxy - standard/aarch64
OBS: release-manifest-image - images/aarch64
OBS: release-manifest-image - test_manifest_images/aarch64
OBS: upgrade-controller-image - images/x86_64
OBS: upgrade-controller - standard/x86_64
OBS: edge-image-builder-image - test_manifest_images/x86_64
OBS: edge-image-builder-image - images/x86_64
OBS: release-manifest-image - images/x86_64
OBS: kubectl-image - images/x86_64
OBS: upgrade-controller-chart - charts/x86_64
OBS: edge-image-builder-image - images/aarch64
OBS: metallb-controller-image - images/aarch64
OBS: edge-image-builder-image - test_manifest_images/aarch64
OBS: hauler - standard/x86_64
OBS: metallb - standard/x86_64
OBS: kube-rbac-proxy-image - images/x86_64
OBS: upgrade-controller-image - images/aarch64
OBS: metallb - standard/aarch64
OBS: upgrade-controller - standard/aarch64
OBS: nm-configurator - standard/x86_64
OBS: metallb-controller-image - images/x86_64
OBS: metallb-speaker-image - images/x86_64
OBS: ironic-image - images/x86_64
2.10.1 was released so update to the prime version
2024-12-20 09:28:38 +00:00
fde506f9ef Release manifest updates in relation to corner case use-cases (#60)
Changes:

- Rancher version convention was changed from `v2.10.0` to `2.10.0` to better map to the actual version in the upstream helm chart repo which is without the `v` prefix.

- Rancher's `postDelete` hook has been disabled - done to ensure that we will not hit a corner case where:

   1. The Rancher helm chart upgrade fails, because of a core component not yet being ready
   2. The `helm-controller` schedules a `helm uninstall` which deletes the Rancher Helm release and triggers the `postDelete` hook.
   3. The problematic core component is up and running, so `helm-controller` schedules a `helm install` with the new version.
   4. Due to insufficient resources, or network connection (or other unforeseen problems), the `postDelete` hook is still running and it wrongly removes the new Rancher installation resulting in a missing rancher from the cluster after an upgrade.

The `postDelete` hook ensures that no accidental delete of the Rancher application will happen during an upgrade over a machine with fewer resources.

Reviewed-on: #60
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
Reviewed-by: Nicolas Belouin <nbelouin@noreply.src.opensuse.org>
Reviewed-by: Atanas Dinov <atanasdinov@noreply.src.opensuse.org>
Co-authored-by: Ivo Petrov <ivo.petrov@suse.com>
Co-committed-by: Ivo Petrov <ivo.petrov@suse.com>
2024-12-19 12:27:23 +01:00
f49e6be155 Bump K8s version in the release manifest (#58)
- Bumps both RKE2 and K3s versions to the `1.31.3` version that is expected by Rancher `v2.10.1`.

- Bumps the K8s core component versions to the `1.31.3` expected versions.

RKE2 core component versions have been checked against the `Chart Versions` table of the said [release](https://github.com/rancher/rke2/releases/tag/v1.31.3%2Brke2r1).
K3s core component versions have been checked agains the [manifests](https://github.com/k3s-io/k3s/tree/v1.31.3%2Bk3s1/manifests) directory of said release.

Reviewed-on: #58
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
Co-authored-by: Ivo Petrov <ivo.petrov@suse.com>
Co-committed-by: Ivo Petrov <ivo.petrov@suse.com>
2024-12-17 09:06:03 +01:00
e820e98a2f Add missing Elemental dashboard chart (#55)
Reviewed-on: #55
Reviewed-by: Atanas Dinov <atanasdinov@noreply.src.opensuse.org>
Co-authored-by: Ivo Petrov <ivo.petrov@suse.com>
Co-committed-by: Ivo Petrov <ivo.petrov@suse.com>
2024-12-12 11:20:22 +01:00
8c31073506 Merge pull request 'Bump upgrade-controller to v0.1.1' (#53) from upgrade-controller-v0.1.1 into main
Reviewed-on: #53
Reviewed-by: Ivo Petrov <ipetrov117@noreply.src.opensuse.org>
Reviewed-by: Nicolas Belouin <nbelouin@noreply.src.opensuse.org>
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
2024-12-11 18:35:11 +01:00
4bba5fd3f2 Bump chart version 2024-12-11 18:35:11 +01:00
383705e9a3 Bump container image version 2024-12-11 18:35:11 +01:00
a752a25191 Bump RPM version 2024-12-11 18:35:11 +01:00
83fec09683 Introduce K8s distribution core component list (#52)
Introduces the K8s distribution core component list that the upgrade-controller will follow in order to make sure that a specific Kubernetes upgrade has completed successfully.

Relates to the [#116](https://github.com/suse-edge/upgrade-controller/pull/116) upgrade-controller PR.

Reviewed-on: #52
Reviewed-by: Atanas Dinov <atanasdinov@noreply.src.opensuse.org>
Reviewed-by: Nicolas Belouin <nbelouin@noreply.src.opensuse.org>
Co-authored-by: Ivo Petrov <ivo.petrov@suse.com>
Co-committed-by: Ivo Petrov <ivo.petrov@suse.com>
2024-12-11 15:45:28 +01:00
32519595dc IPA ramdisk git LFS fix
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2024-12-10 14:01:55 +01:00
87c7e1be88 Update akri-dashboard-extension-chart to v1.2.1 2024-12-06 09:47:40 +01:00
568d5d1590 Update kubevirt-dashboard-extension-chart to v1.2.1
All checks were successful
OBS: metallb-speaker-image - images/x86_64
OBS: metallb-controller-image - images/x86_64
OBS: edge-image-builder-image - images/x86_64
OBS: upgrade-controller - standard/aarch64
OBS: metal3-chart - charts/x86_64
OBS: endpoint-copier-operator-image - images/x86_64
OBS: frr-k8s - standard/aarch64
OBS: akri-controller-image - images/aarch64
OBS: rancher-turtles-chart - charts/x86_64
OBS: akri-onvif-discovery-handler-image - images/aarch64
OBS: rancher-turtles-airgap-resources-chart - charts/x86_64
OBS: kube-rbac-proxy - standard/x86_64
OBS: ironic-ipa-ramdisk - standard/x86_64
OBS: sriov-network-operator-chart - charts/x86_64
OBS: sriov-crd-chart - charts/x86_64
OBS: hauler - standard/x86_64
OBS: upgrade-controller-chart - charts/x86_64
OBS: upgrade-controller-image - images/x86_64
OBS: release-manifest-image - images/x86_64
OBS: ironic-image - images/x86_64
OBS: kube-rbac-proxy - standard/aarch64
OBS: akri-agent-image - images/x86_64
OBS: release-manifest-image - images/aarch64
OBS: akri-debug-echo-discovery-handler-image - images/aarch64
OBS: metallb - standard/x86_64
OBS: kube-rbac-proxy-image - images/x86_64
OBS: ironic-ipa-downloader-image - images/x86_64
OBS: metallb - standard/aarch64
OBS: upgrade-controller - standard/x86_64
OBS: hauler - standard/aarch64
2024-12-06 09:30:28 +01:00
fbd596290a release-manifest: Update rancher-turtles chart
All checks were successful
OBS SCM/CI Workflow Integration started
OBS: akri-chart - charts/x86_64
OBS: akri-dashboard-extension-chart - charts/x86_64
OBS: autoconf - standard/x86_64
OBS: cdi-chart - charts/x86_64
OBS: baremetal-operator - standard/x86_64
OBS: crudini - standard/x86_64
OBS: cri-tools - standard/x86_64
OBS: baremetal-operator-image - images/x86_64
OBS: fakeroot - standard/x86_64
OBS: endpoint-copier-operator-chart - charts/x86_64
OBS: ipcalc - standard/x86_64
OBS: endpoint-copier-operator - standard/x86_64
OBS: cosign - standard/x86_64
OBS: baremetal-operator-image - images/aarch64
Fix the rancher-turtles-chart version to align with #44
2024-12-05 17:35:46 +00:00
ec6c4745ea Remove CAPM3/IPAM images
All checks were successful
OBS: hauler - standard/x86_64
OBS: obs-service-set_version - standard/aarch64
OBS: nm-configurator - standard/x86_64
OBS: endpoint-copier-operator-image - images/x86_64
OBS: endpoint-copier-operator - standard/aarch64
OBS: cosign - standard/aarch64
OBS: akri - standard/x86_64
OBS: frr-k8s - standard/aarch64
OBS: kube-rbac-proxy - standard/aarch64
OBS: kubectl - standard/aarch64
OBS: akri - standard/aarch64
OBS: metallb - standard/aarch64
OBS: akri-opcua-discovery-handler-image - images/x86_64
OBS: akri-onvif-discovery-handler-image - images/x86_64
OBS: akri-udev-discovery-handler-image - images/x86_64
OBS: akri-agent-image - images/x86_64
OBS: nm-configurator - standard/aarch64
OBS: akri-debug-echo-discovery-handler-image - images/x86_64
OBS: akri-webhook-configuration-image - images/x86_64
OBS: akri-controller-image - images/x86_64
OBS: upgrade-controller - standard/aarch64
OBS: hauler - standard/aarch64
OBS: endpoint-copier-operator-image - images/aarch64
OBS: akri-agent-image - images/aarch64
OBS: akri-controller-image - images/aarch64
OBS: akri-opcua-discovery-handler-image - images/aarch64
OBS: akri-udev-discovery-handler-image - images/aarch64
OBS: akri-debug-echo-discovery-handler-image - images/aarch64
OBS: akri-onvif-discovery-handler-image - images/aarch64
OBS: akri-webhook-configuration-image - images/aarch64
These are now provided by the rancher registry since #44
2024-12-05 13:11:00 +00:00
856ec2ac8e rancher-turtles-airgap-resources-chart: Update to 0.14.1 upstream release
All checks were successful
OBS: endpoint-copier-operator - standard/aarch64
OBS: kiwi-builder-image - images/aarch64
OBS: ironic-ipa-ramdisk - standard/x86_64
OBS: ipcalc - standard/aarch64
OBS: frr-k8s - standard/aarch64
OBS: akri-debug-echo-discovery-handler-image - images/x86_64
OBS: akri-udev-discovery-handler-image - images/x86_64
OBS: ip-address-manager - standard/aarch64
OBS: akri-agent-image - images/x86_64
OBS: kube-rbac-proxy-image - images/aarch64
OBS: akri-opcua-discovery-handler-image - images/x86_64
OBS: akri-webhook-configuration-image - images/x86_64
OBS: akri-onvif-discovery-handler-image - images/x86_64
OBS: akri-controller-image - images/x86_64
OBS: kubectl-image - images/aarch64
OBS: fakeroot - standard/aarch64
OBS: metallb-controller-image - images/aarch64
OBS: ironic-ipa-downloader-image - images/x86_64
OBS: kubectl - standard/aarch64
OBS: kube-rbac-proxy - standard/aarch64
OBS: release-manifest-image - images/aarch64
OBS: metallb-speaker-image - images/aarch64
OBS: upgrade-controller - standard/aarch64
OBS: metallb - standard/aarch64
OBS: upgrade-controller-image - images/aarch64
OBS: hauler - standard/aarch64
OBS: endpoint-copier-operator-image - images/aarch64
OBS: akri-agent-image - images/aarch64
OBS: baremetal-operator-image - images/aarch64
OBS: cluster-api-provider-metal3-image - images/aarch64
Aligns with https://github.com/suse-edge/charts/pull/174 which
rebases to 0.14.1, which is marked as compatible with Rancher 2.10
2024-12-05 11:35:05 +00:00
7721c66ab0 rancher-turtles-chart: Update to 0.14.1 upstream release
Aligns with https://github.com/suse-edge/charts/pull/174 which
rebases to 0.14.1, which is marked as compatible with Rancher 2.10
2024-12-05 11:31:40 +00:00
cf6abb24fb Merge pull request 'fixed versions in eib artifacts' (#42) from dprodanov/Factory:fix-eib-versions into main
Reviewed-on: #42
Reviewed-by: Nicolas Belouin <nbelouin@noreply.src.opensuse.org>
2024-12-04 16:00:26 +01:00
602249c98d fixed versions in eib artifacts
All checks were successful
OBS: hauler - standard/aarch64
OBS: nm-configurator - standard/aarch64
OBS: baremetal-operator-image - images/aarch64
OBS: kubectl-image - images/aarch64
OBS: edge-image-builder-image - images/x86_64
OBS: cluster-api-provider-metal3-image - images/aarch64
OBS: kube-rbac-proxy-image - images/aarch64
OBS: ip-address-manager-image - images/aarch64
OBS: ip-address-manager-image - images/x86_64
OBS: akri-opcua-discovery-handler-image - images/x86_64
OBS: akri-webhook-configuration-image - images/x86_64
OBS: akri-debug-echo-discovery-handler-image - images/x86_64
OBS: akri-udev-discovery-handler-image - images/x86_64
OBS: akri-onvif-discovery-handler-image - images/x86_64
OBS: metallb-controller-image - images/aarch64
OBS: akri-controller-image - images/x86_64
OBS: akri-agent-image - images/x86_64
OBS: upgrade-controller-image - images/aarch64
OBS: metallb-speaker-image - images/aarch64
OBS: endpoint-copier-operator-image - images/aarch64
OBS: edge-image-builder-image - images/aarch64
OBS: ironic-ipa-ramdisk - standard/x86_64
OBS: akri-debug-echo-discovery-handler-image - images/aarch64
OBS: akri-opcua-discovery-handler-image - images/aarch64
OBS: akri-controller-image - images/aarch64
OBS: akri-onvif-discovery-handler-image - images/aarch64
OBS: akri-agent-image - images/aarch64
OBS: ironic-ipa-downloader-image - images/x86_64
OBS: akri-udev-discovery-handler-image - images/aarch64
OBS: akri-webhook-configuration-image - images/aarch64
2024-12-04 16:02:41 +02:00
8a93aae7c5 kiwi-builder-image: Align with OBS latest version
All checks were successful
OBS: kube-rbac-proxy-image - images/x86_64
OBS: cluster-api-provider-metal3 - standard/aarch64
OBS: metallb-controller-image - images/x86_64
OBS: metallb-speaker-image - images/x86_64
OBS: upgrade-controller-image - images/x86_64
OBS: cri-tools - standard/aarch64
OBS: crudini - standard/aarch64
OBS: cluster-api-provider-metal3-image - images/aarch64
OBS: cosign - standard/aarch64
OBS: baremetal-operator-image - images/aarch64
OBS: endpoint-copier-operator - standard/aarch64
OBS: akri-agent-image - images/aarch64
OBS: edge-image-builder - standard/aarch64
OBS: fakeroot - standard/aarch64
OBS: endpoint-copier-operator-image - images/aarch64
OBS: frr-k8s - standard/aarch64
OBS: ip-address-manager - standard/aarch64
OBS: kube-rbac-proxy - standard/aarch64
OBS: metallb - standard/aarch64
OBS: upgrade-controller - standard/aarch64
OBS: hauler - standard/aarch64
OBS: ip-address-manager-image - images/aarch64
OBS: kube-rbac-proxy-image - images/aarch64
OBS: metallb-controller-image - images/aarch64
OBS: metallb-speaker-image - images/aarch64
OBS: upgrade-controller-image - images/aarch64
OBS: edge-image-builder-image - images/x86_64
OBS: edge-image-builder-image - images/aarch64
OBS: ironic-ipa-ramdisk - standard/x86_64
OBS: ironic-ipa-downloader-image - images/x86_64
Aligns with the latest fixes in isv:SUSE:Edge:KiwiBuilder/kiwi-builder-10
2024-12-02 18:19:04 +00:00
aba448b275 Merge pull request 'updated longhorn and neuvector to latest 105 charts' (#38) from dprodanov/Factory:update-release-manifests into main
Reviewed-on: #38
Reviewed-by: Ivo Petrov <ipetrov117@noreply.src.opensuse.org>
2024-11-28 16:05:04 +01:00
09954e5818 updated longhorn and neuvector to latest 105 charts 2024-11-28 16:57:54 +02:00
636493adba rancher-turtles: Fix issue in 0.4.0 chart
The previous import was based on a pre-merge copy of the following PR
- an issue was discovered during SV validation which required an
additional change to ensure CRDs are created before creating the
ClusterctlConfig CR

https://github.com/suse-edge/charts/pull/166
2024-11-27 08:23:32 +00:00
146 changed files with 7243 additions and 3530 deletions

View File

@@ -1,23 +0,0 @@
name: Check Release Manifest Local Charts Versions
on:
pull_request:
branches-ignore:
- "devel"
jobs:
sync-pr-project:
name: "Check Release Manifest Local Charts Versions"
runs-on: tumbleweed
steps:
# Waiting on PR to get merged for support in upstream action/checkout action
- uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256'
name: Checkout repository
with:
object-format: 'sha256'
- name: Setup dependencies
run: |
zypper in -y python3-ruamel.yaml
- name: Check release manifest
run: |
python3 .obs/manifest-check.py --check

View File

@@ -0,0 +1,31 @@
name: Trigger Devel Packages
on:
# NOTE (fdegir): Cron is set to run midday every weekday
schedule:
- cron: "0 12 * * 1-5
jobs:
sync-pr-project:
name: "Trigger source services for devel packages that changed"
runs-on: tumbleweed
steps:
- name: Setup OSC
run: |
mkdir -p ~/.config/osc
cat >~/.config/osc/oscrc <<'EOF'
[general]
apiurl = https://api.opensuse.org
[https://api.opensuse.org]
user=${{ vars.OBS_USERNAME }}
pass=${{ secrets.OBS_PASSWORD }}
EOF
# Waiting on PR to get merged for support in upstream action/checkout action
- uses: 'https://github.com/yangskyboxlabs/action-checkout@sha256'
name: Checkout repository
with:
object-format: 'sha256'
ref: 'devel'
- name: "Trigger packages"
run: |
python3 .obs/trigger_package.py

View File

@@ -1,3 +1,3 @@
PROJECT = "isv:SUSE:Edge:3.2" PROJECT = "isv:SUSE:Edge:Factory"
REPOSITORY = "https://src.opensuse.org/suse-edge/Factory" REPOSITORY = "https://src.opensuse.org/suse-edge/Factory"
BRANCH = "3.2" BRANCH = "main"

View File

@@ -1,84 +0,0 @@
#!/usr/bin/python3
import ruamel.yaml
import pathlib
import argparse
import sys
yaml = ruamel.yaml.YAML()
def get_chart_version(chart_name: str) -> str:
with open(f"./{chart_name}/Chart.yaml") as f:
chart = yaml.load(f)
return chart["version"]
def get_charts(chart):
if not chart["chart"].startswith("%%CHART_REPO%%"):
# Not a locally managed chart
return {}
chart_name = chart["chart"][len("%%CHART_REPO%%/%%IMG_PREFIX%%"):]
charts = { chart_name: chart["version"] }
for child_chart in chart.get("dependencyCharts", []) + chart.get("addonCharts", []):
charts.update(get_charts(child_chart))
return charts
def get_charts_list():
with open("./release-manifest-image/release_manifest.yaml") as f:
manifest = yaml.load(f)
charts = {}
for chart in manifest["spec"]["components"]["workloads"]["helm"]:
charts.update(get_charts(chart))
return charts
def check_charts(fix: bool) -> bool:
success = True
charts = get_charts_list()
to_fix = {}
for chart in charts:
expected_version = get_chart_version(chart)
if expected_version != charts[chart]:
success = False
to_fix[f'%%CHART_REPO%%/%%IMG_PREFIX%%{chart}'] = expected_version
print(f"{chart}: Expected: {expected_version}, Got: {charts[chart]}")
if fix and not success:
fix_charts(to_fix)
return True
return success
def fix_charts(to_fix):
manifest_path = pathlib.Path("./release-manifest-image/release_manifest.yaml")
manifest = yaml.load(manifest_path)
yaml.indent(mapping=2, sequence=4, offset=2)
yaml.width = 4096
for chart_index, chart in enumerate(manifest["spec"]["components"]["workloads"]["helm"]):
changed = False
if chart["chart"] in to_fix.keys():
changed = True
chart["version"] = to_fix[chart["chart"]]
for subchart_index, subchart in enumerate(chart.get("addonCharts", [])):
if subchart["chart"] in to_fix.keys():
changed = True
subchart["version"] = to_fix[subchart["chart"]]
chart["addonCharts"][subchart_index] = subchart
for subchart_index, subchart in enumerate(chart.get("dependencyCharts", [])):
if subchart["chart"] in to_fix.keys():
changed = True
subchart["version"] = to_fix[subchart["chart"]]
chart["dependencyCharts"][subchart_index] = subchart
if changed:
manifest["spec"]["components"]["workloads"]["helm"][chart_index] = chart
yaml.dump(manifest, manifest_path)
def main():
print("Checking charts versions in release manifest")
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--check', action='store_true')
args = parser.parse_args()
if not check_charts(not args.check):
sys.exit(1)
else:
print("All local charts in release manifest are using the right version")
if __name__ == "__main__":
main()

View File

@@ -8,6 +8,7 @@ def render(base_project, subproject, internal, scm_url=None):
context = { context = {
"base_project": subproject == "", "base_project": subproject == "",
"title": f"SUSE Edge {version} {subproject}".rstrip(), "title": f"SUSE Edge {version} {subproject}".rstrip(),
"ironic_base": "ISV:SUSE:Edge:Ironic" if internal else "Cloud:OpenStack",
} }
if subproject == "ToTest": if subproject == "ToTest":
context["project"] = f"{base_project}:ToTest" context["project"] = f"{base_project}:ToTest"

View File

@@ -1,10 +0,0 @@
repos:
- repo: local
hooks:
- id: check-manifest
name: "Check release-manifest"
entry: python3 .obs/manifest-check.py
language: python
additional_dependencies: ['ruamel.yaml']
pass_filenames: false
always_run: true

37
_config
View File

@@ -58,6 +58,7 @@ BuildFlags: onlybuild:release-manifest-image
BuildFlags: excludebuild:endpoint-copier-operator-image BuildFlags: excludebuild:endpoint-copier-operator-image
BuildFlags: excludebuild:ironic-image BuildFlags: excludebuild:ironic-image
BuildFlags: excludebuild:ironic-ipa-downloader-image BuildFlags: excludebuild:ironic-ipa-downloader-image
BuildFlags: excludebuild:kiwi-builder-image
BuildFlags: excludebuild:kube-rbac-proxy-image BuildFlags: excludebuild:kube-rbac-proxy-image
BuildFlags: excludebuild:metallb-controller-image BuildFlags: excludebuild:metallb-controller-image
BuildFlags: excludebuild:metallb-speaker-image BuildFlags: excludebuild:metallb-speaker-image
@@ -69,7 +70,6 @@ BuildFlags: onlybuild:release-manifest-image
BuildFlags: onlybuild:baremetal-operator BuildFlags: onlybuild:baremetal-operator
BuildFlags: onlybuild:baremetal-operator-image BuildFlags: onlybuild:baremetal-operator-image
BuildFlags: onlybuild:ca-certificates-suse BuildFlags: onlybuild:ca-certificates-suse
BuildFlags: onlybuild:cosign
BuildFlags: onlybuild:crudini BuildFlags: onlybuild:crudini
BuildFlags: onlybuild:edge-image-builder BuildFlags: onlybuild:edge-image-builder
BuildFlags: onlybuild:edge-image-builder-image BuildFlags: onlybuild:edge-image-builder-image
@@ -81,12 +81,14 @@ BuildFlags: onlybuild:release-manifest-image
BuildFlags: onlybuild:ironic-image BuildFlags: onlybuild:ironic-image
BuildFlags: onlybuild:ironic-ipa-downloader-image BuildFlags: onlybuild:ironic-ipa-downloader-image
BuildFlags: onlybuild:ironic-ipa-ramdisk BuildFlags: onlybuild:ironic-ipa-ramdisk
BuildFlags: onlybuild:kiwi-builder-image
BuildFlags: onlybuild:kube-rbac-proxy BuildFlags: onlybuild:kube-rbac-proxy
BuildFlags: onlybuild:kube-rbac-proxy-image BuildFlags: onlybuild:kube-rbac-proxy-image
BuildFlags: onlybuild:metallb BuildFlags: onlybuild:metallb
BuildFlags: onlybuild:metallb-controller-image BuildFlags: onlybuild:metallb-controller-image
BuildFlags: onlybuild:metallb-speaker-image BuildFlags: onlybuild:metallb-speaker-image
BuildFlags: onlybuild:nm-configurator BuildFlags: onlybuild:nm-configurator
BuildFlags: onlybuild:shim-noarch
%endif %endif
%endif %endif
@@ -103,36 +105,6 @@ BuildFlags: onlybuild:release-manifest-image
PublishFlags: archsync PublishFlags: archsync
%endif %endif
%if "%_repository" == "images_6.0"
Prefer: container:sles15-image
Type: docker
BuildEngine: podman
Repotype: none
Patterntype: none
BuildFlags: dockerarg:SLE_VERSION=16.0
BuildFlags: onlybuild:kiwi-builder-image
# Publish multi-arch container images only once all archs have been built
PublishFlags: archsync
# Exclude the images selected by the aarch64 section
%ifarch aarch64
BuildFlags: excludebuild:baremetal-operator-image
BuildFlags: excludebuild:edge-image-builder-image
BuildFlags: excludebuild:endpoint-copier-operator-image
BuildFlags: excludebuild:ironic-image
BuildFlags: excludebuild:ironic-ipa-downloader-image
BuildFlags: excludebuild:kube-rbac-proxy-image
BuildFlags: excludebuild:metallb-controller-image
BuildFlags: excludebuild:metallb-speaker-image
%endif
%else
BuildFlags: excludebuild:kiwi-builder-image
%endif
%if "%_repository" == "charts" || "%_repository" == "phantomcharts" || "%_repository" == "releasecharts" %if "%_repository" == "charts" || "%_repository" == "phantomcharts" || "%_repository" == "releasecharts"
Type: helm Type: helm
Repotype: helm Repotype: helm
@@ -143,6 +115,9 @@ BuildFlags: onlybuild:release-manifest-image
%if "%_repository" == "standard" %if "%_repository" == "standard"
# for build openstack-ironic-image # for build openstack-ironic-image
BuildFlags: allowrootforbuild BuildFlags: allowrootforbuild
# ironic-ipa-ramdisk are noarch packages that need to be availble to both archs
ExportFilter: ^ironic-ipa-ramdisk-.*\.noarch\.rpm$ aarch64 x86_64
%endif %endif
# Enable reproducible builds # Enable reproducible builds

15
_meta
View File

@@ -31,19 +31,14 @@
<arch>x86_64</arch> <arch>x86_64</arch>
</repository> </repository>
{%- endif %} {%- endif %}
{%- for repository in ["images", "images_6.0", "test_manifest_images"] %} {%- for repository in ["images", "test_manifest_images"] %}
<repository name="{{ repository }}"> <repository name="{{ repository }}">
{%- if release_project is defined and repository != "test_manifest_images" %} {%- if release_project is defined and repository == "images" %}
<releasetarget project="{{ release_project }}" repository="images" trigger="manual"/> <releasetarget project="{{ release_project }}" repository="images" trigger="manual"/>
{%- endif %} {%- endif %}
<path project="SUSE:Registry" repository="standard"/> <path project="SUSE:Registry" repository="standard"/>
{%- if repository == "images_6.0" %} <path project="SUSE:CA" repository="SLE_15_SP6"/>
<path project="SUSE:CA" repository="16.0"/> <path project="{{ project }}" repository="standard"/>
<path project="SUSE:ALP:Products:Marble:6.0" repository="standard"/>
{%- else %}
<path project="SUSE:CA" repository="SLE_15_SP6"/>
<path project="{{ project }}" repository="standard"/>
{%- endif %}
<arch>x86_64</arch> <arch>x86_64</arch>
<arch>aarch64</arch> <arch>aarch64</arch>
</repository> </repository>
@@ -52,7 +47,7 @@
{%- if release_project is defined and not for_release %} {%- if release_project is defined and not for_release %}
<releasetarget project="{{ release_project }}" repository="standard" trigger="manual"/> <releasetarget project="{{ release_project }}" repository="standard" trigger="manual"/>
{%- endif %} {%- endif %}
<path project="Cloud:OpenStack:2024.2" repository="15.6"/> <path project="{{ ironic_base }}:2024.2" repository="15.6"/>
<path project="SUSE:SLE-15-SP6:Update" repository="standard"/> <path project="SUSE:SLE-15-SP6:Update" repository="standard"/>
<arch>x86_64</arch> <arch>x86_64</arch>
<arch>aarch64</arch> <arch>aarch64</arch>

View File

@@ -2,7 +2,7 @@
<service name="obs_scm"> <service name="obs_scm">
<param name="url">https://github.com/metal3-io/baremetal-operator</param> <param name="url">https://github.com/metal3-io/baremetal-operator</param>
<param name="scm">git</param> <param name="scm">git</param>
<param name="revision">v0.8.0</param> <param name="revision">v0.9.1</param>
<param name="version">_auto_</param> <param name="version">_auto_</param>
<param name="versionformat">@PARENT_TAG@</param> <param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param> <param name="changesgenerate">enable</param>

View File

@@ -17,14 +17,14 @@
Name: baremetal-operator Name: baremetal-operator
Version: 0.8.0 Version: 0.9.1
Release: 0.8.0 Release: 0
Summary: Implements a Kubernetes API for managing bare metal hosts Summary: Implements a Kubernetes API for managing bare metal hosts
License: Apache-2.0 License: Apache-2.0
URL: https://github.com/metal3-io/baremetal-operator URL: https://github.com/metal3-io/baremetal-operator
Source: baremetal-operator-%{version}.tar Source: baremetal-operator-%{version}.tar
Source1: vendor.tar.gz Source1: vendor.tar.gz
BuildRequires: golang(API) = 1.22 BuildRequires: golang(API) = 1.23
ExcludeArch: s390 ExcludeArch: s390
ExcludeArch: %{ix86} ExcludeArch: %{ix86}

View File

@@ -1,18 +0,0 @@
<services>
<service name="obs_scm">
<param name="url">https://github.com/rancher-government-carbide/cosign.git</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="scm">git</param>
<param name="exclude">.get</param>
<param name="revision">v2.2.3+carbide.2</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="changesgenerate">enable</param>
</service>
<service mode="buildtime" name="tar">
<param name="obsinfo">cosign.obsinfo</param>
</service>
<service mode="buildtime" name="set_version" />
<service name="go_modules">
<param name="compression">gz</param>
</service>
</services>

View File

@@ -1,55 +0,0 @@
#
# spec file for package cosign-rgs
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define project https://github.com/hauler-dev/cosign
%define revision 49542360ffb5de63f9d2f5856b658651d5538e40
Name: cosign
Version: 0
Release: 0
Summary: Container Signing, Verification and Storage in an OCI registry
License: Apache-2.0
URL: https://github.com/rancher-government-carbide/cosign
Source: cosign-%{version}.tar
Source1: vendor.tar.gz
BuildRequires: golang-packaging
%description
%prep
%setup -q -a1 -n cosign-%{version}
%build
%goprep %{project}
DATE_FMT="+%%Y-%%m-%%dT%%H:%%M:%%SZ"
BUILD_DATE=$(date -u -d "@${SOURCE_DATE_EPOCH}" "${DATE_FMT}" 2>/dev/null || date -u -r "${SOURCE_DATE_EPOCH}" "${DATE_FMT}" 2>/dev/null || date -u "${DATE_FMT}")
CLI_PKG=sigs.k8s.io/release-utils/version
CLI_LDFLAGS="-X ${CLI_PKG}.gitVersion=%{version} -X ${CLI_PKG}.gitCommit=%{revision} -X ${CLI_PKG}.gitTreeState=release -X ${CLI_PKG}.buildDate=${BUILD_DATE}"
CGO_ENABLED=0 go build -mod=vendor -buildmode=pie -trimpath -ldflags "${CLI_LDFLAGS}" -o cosign ./cmd/cosign
%install
install -D -m 0755 cosign %{buildroot}%{_bindir}/cosign
%files
%license LICENSE
%doc *.md
%{_bindir}/cosign
%changelog

View File

@@ -1,5 +1,5 @@
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.2-rc1 #!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.0
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.2-rc1-%RELEASE% #!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.1.0-%RELEASE%
#!BuildVersion: 15.6 #!BuildVersion: 15.6
ARG SLE_VERSION ARG SLE_VERSION
FROM registry.suse.com/bci/bci-base:$SLE_VERSION FROM registry.suse.com/bci/bci-base:$SLE_VERSION
@@ -15,11 +15,11 @@ RUN zypper --non-interactive install --no-recommends edge-image-builder qemu-x86
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)" LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
LABEL org.opencontainers.image.title="SLE edge-image-builder Container Image" LABEL org.opencontainers.image.title="SLE edge-image-builder Container Image"
LABEL org.opencontainers.image.description="edge-image-builder based on the SLE Base Container Image." LABEL org.opencontainers.image.description="edge-image-builder based on the SLE Base Container Image."
LABEL org.opencontainers.image.version="1.1.2-rc1" LABEL org.opencontainers.image.version="1.1.0"
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/" LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
LABEL org.opencontainers.image.created="%BUILDTIME%" LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC" LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%edge-image-builder:1.1.2-rc1-%RELEASE%" LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%edge-image-builder:1.1.0-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%" LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%" LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
LABEL com.suse.eula="SUSE Combined EULA February 2024" LABEL com.suse.eula="SUSE Combined EULA February 2024"

View File

@@ -1,7 +1,7 @@
metallb: metallb:
chart: metallb-chart chart: metallb-chart
repository: "%%CHART_REPO%%/%%IMG_PREFIX%%" repository: "%%CHART_REPO%%/%%IMG_PREFIX%%"
version: "%%CHART_MAJOR%%.0.1+up0.14.9" version: "%%CHART_MAJOR%%.0.0+up0.14.9"
endpoint-copier-operator: endpoint-copier-operator:
chart: endpoint-copier-operator-chart chart: endpoint-copier-operator-chart
repository: "%%CHART_REPO%%/%%IMG_PREFIX%%" repository: "%%CHART_REPO%%/%%IMG_PREFIX%%"

View File

@@ -1,13 +1,10 @@
<services> <services>
<service name="obs_scm"> <service name="obs_scm">
<param name="url">https://github.com/suse-edge/edge-image-builder.git</param> <param name="url">https://github.com/suse-edge/edge-image-builder.git</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="scm">git</param> <param name="scm">git</param>
<param name="exclude">.git</param> <param name="exclude">.git</param>
<param name="revision">v1.1.2-rc1</param> <param name="revision">v1.1.0</param>
<!-- Uncomment and set this For Pre-Release Version -->
<param name="version">1.1.2~rc0</param>
<!-- Uncomment and this for regular version -->
<!-- <param name="versionformat">@PARENT_TAG@</param> -->
<param name="versionrewrite-pattern">v(\d+).(\d+).(\d+)</param> <param name="versionrewrite-pattern">v(\d+).(\d+).(\d+)</param>
<param name="versionrewrite-replacement">\1.\2.\3</param> <param name="versionrewrite-replacement">\1.\2.\3</param>
<param name="changesgenerate">enable</param> <param name="changesgenerate">enable</param>

View File

@@ -17,7 +17,7 @@
Name: edge-image-builder Name: edge-image-builder
Version: 1.1.2~rc1 Version: 1.1.0
Release: 0 Release: 0
Summary: Edge Image Builder Summary: Edge Image Builder
License: Apache-2.0 License: Apache-2.0

View File

@@ -1,7 +1,7 @@
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
#!BuildTag: %%IMG_PREFIX%%frr:8.4 #!BuildTag: %%IMG_PREFIX%%frr:8.5.6
#!BuildTag: %%IMG_PREFIX%%frr:8.4-%RELEASE% #!BuildTag: %%IMG_PREFIX%%frr:8.5.6-%RELEASE%
#!BuildVersion: 15.5 #!BuildVersion: 15.6
ARG SLE_VERSION ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
@@ -15,11 +15,11 @@ FROM micro AS final
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)" LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
LABEL org.opencontainers.image.title="FRR Container Image" LABEL org.opencontainers.image.title="FRR Container Image"
LABEL org.opencontainers.image.description="frr based on the SLE Base Container Image." LABEL org.opencontainers.image.description="frr based on the SLE Base Container Image."
LABEL org.opencontainers.image.version="8.4" LABEL org.opencontainers.image.version="8.5.6"
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/" LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
LABEL org.opencontainers.image.created="%BUILDTIME%" LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC" LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%frr:8.4-%RELEASE%" LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%frr:8.5.6-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%" LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%" LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
LABEL com.suse.eula="SUSE Combined EULA February 2024" LABEL com.suse.eula="SUSE Combined EULA February 2024"

View File

@@ -2,7 +2,7 @@
<service name="obs_scm"> <service name="obs_scm">
<param name="url">https://github.com/metallb/frr-k8s</param> <param name="url">https://github.com/metallb/frr-k8s</param>
<param name="scm">git</param> <param name="scm">git</param>
<param name="revision">v0.0.14</param> <param name="revision">v0.0.16</param>
<param name="version">_auto_</param> <param name="version">_auto_</param>
<param name="versionformat">@PARENT_TAG@</param> <param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param> <param name="changesgenerate">enable</param>

View File

@@ -17,8 +17,8 @@
Name: frr-k8s Name: frr-k8s
Version: 0.0.14 Version: 0.0.16
Release: 0.0.14 Release: 0.0.16
Summary: A kubernetes based daemonset that exposes a subset of the FRR API in a kubernetes compliant manner. Summary: A kubernetes based daemonset that exposes a subset of the FRR API in a kubernetes compliant manner.
License: Apache-2.0 License: Apache-2.0
URL: https://github.com/metallb/frr-k8s URL: https://github.com/metallb/frr-k8s

View File

@@ -4,7 +4,7 @@
<param name="versionformat">@PARENT_TAG@</param> <param name="versionformat">@PARENT_TAG@</param>
<param name="scm">git</param> <param name="scm">git</param>
<param name="exclude">.get</param> <param name="exclude">.get</param>
<param name="revision">v1.0.7</param> <param name="revision">v1.2.1</param>
<param name="versionrewrite-pattern">v(.*)</param> <param name="versionrewrite-pattern">v(.*)</param>
<param name="changesgenerate">enable</param> <param name="changesgenerate">enable</param>
</service> </service>
@@ -15,4 +15,13 @@
<service name="go_modules"> <service name="go_modules">
<param name="compression">gz</param> <param name="compression">gz</param>
</service> </service>
<service mode="buildtime" name="replace_using_env">
<param name="file">hauler.spec</param>
<param name="var">SOURCE_COMMIT</param>
<param name="eval">
SOURCE_COMMIT=$(grep commit hauler.obsinfo | cut -d" " -f2)
</param>
<param name="verbose">1</param>
</service>
<service mode="buildtime" name="set_version" />
</services> </services>

View File

@@ -18,7 +18,7 @@
%define project github.com/hauler-dev/hauler %define project github.com/hauler-dev/hauler
Name: hauler Name: hauler
Version: 1.0.7 Version: 1.2.1
Release: 0 Release: 0
Summary: Airgap Swiss Army Knife Summary: Airgap Swiss Army Knife
License: Apache-2.0 License: Apache-2.0
@@ -26,7 +26,6 @@ URL: https://github.com/hauler-dev/hauler
Source: hauler-%{version}.tar Source: hauler-%{version}.tar
Source1: vendor.tar.gz Source1: vendor.tar.gz
BuildRequires: golang-packaging BuildRequires: golang-packaging
BuildRequires: cosign
%description %description
@@ -38,10 +37,18 @@ BuildRequires: cosign
tar -xf %{SOURCE1} tar -xf %{SOURCE1}
mkdir cmd/hauler/binaries MODULE=hauler.dev/go/hauler
cp `which cosign` cmd/hauler/binaries/cosign-linux-%{go_arch} %define buildtime %(date +%%Y-%%m-%%dT%%H:%%M:%%S%%z)
%define buildcommit %%SOURCE_COMMIT%%
go build -mod=vendor -buildmode=pie -o hauler ./cmd/hauler
go build \
-mod=vendor \
-buildmode=pie \
-o hauler \
-ldflags \
"-X $MODULE/internal/version.gitVersion=v%{version} -X $MODULE/internal/version.gitCommit=%{buildcommit} -X $MODULE/internal/version.buildDate=%{buildtime}" \
./cmd/hauler
%install %install

View File

@@ -1,6 +1,6 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.3 #!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.4
#!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.3-%RELEASE% #!BuildTag: %%IMG_PREFIX%%ironic:26.1.2.4-%RELEASE%
#!BuildVersion: 15.6 #!BuildVersion: 15.6
ARG SLE_VERSION ARG SLE_VERSION
@@ -8,14 +8,8 @@ FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
#!ArchExclusiveLine: x86_64 RUN zypper -n in --no-recommends shim-x86_64 shim-aarch64 grub2-x86_64-efi grub2-arm64-efi dosfstools mtools
RUN if [ "$(uname -m)" = "x86_64" ];then \
zypper -n in --no-recommends gcc git make xz-devel shim dosfstools mtools glibc-extra grub2-x86_64-efi grub2; zypper -n clean; rm -rf /var/log/*; \
fi
#!ArchExclusiveLine: aarch64
RUN if [ "$(uname -m)" = "aarch64" ];then \
zypper -n rm kubic-locale-archive-2.31-10.36.noarch openssl-1_1-1.1.1l-150500.17.37.1.aarch64; zypper -n in --no-recommends gcc git make xz-devel openssl-3 mokutil shim dosfstools mtools glibc glibc-extra grub2 grub2-arm64-efi; zypper -n clean; rm -rf /var/log/* ;\
fi
WORKDIR /tmp WORKDIR /tmp
COPY prepare-efi.sh /bin/ COPY prepare-efi.sh /bin/
RUN set -euo pipefail; chmod +x /bin/prepare-efi.sh RUN set -euo pipefail; chmod +x /bin/prepare-efi.sh
@@ -46,8 +40,8 @@ LABEL org.opencontainers.image.description="Openstack Ironic based on the SLE Ba
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/" LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
LABEL org.opencontainers.image.created="%BUILDTIME%" LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC" LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opencontainers.image.version="26.1.2.3" LABEL org.opencontainers.image.version="26.1.2.4"
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.3-%RELEASE%" LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.4-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%" LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%" LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
LABEL com.suse.eula="SUSE Combined EULA February 2024" LABEL com.suse.eula="SUSE Combined EULA February 2024"
@@ -88,7 +82,8 @@ RUN if [ "$(uname -m)" = "aarch64" ]; then\
cp /usr/share/ipxe/snp-arm64.efi /tftpboot/ipxe.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp-arm64.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp.efi ;\ cp /usr/share/ipxe/snp-arm64.efi /tftpboot/ipxe.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp-arm64.efi; cp /usr/share/ipxe/snp-arm64.efi /tftpboot/snp.efi ;\
fi fi
COPY --from=base /tmp/esp.img /tmp/uefi_esp.img COPY --from=base /tmp/esp-x86_64.img /tmp/uefi_esp-x86_64.img
COPY --from=base /tmp/esp-aarch64.img /tmp/uefi_esp-arm64.img
COPY ironic.conf.j2 /etc/ironic/ COPY ironic.conf.j2 /etc/ironic/
COPY inspector.ipxe.j2 httpd-ironic-api.conf.j2 ipxe_config.template /tmp/ COPY inspector.ipxe.j2 httpd-ironic-api.conf.j2 ipxe_config.template /tmp/

View File

@@ -68,7 +68,7 @@ if [[ -n "$IRONIC_EXTERNAL_IP" ]]; then
fi fi
fi fi
IMAGE_CACHE_PREFIX=/shared/html/images/ironic-python-agent IMAGE_CACHE_PREFIX="/shared/html/images/ironic-python-agent-${DEPLOY_ARCHITECTURE}"
if [[ -f "${IMAGE_CACHE_PREFIX}.kernel" ]] && [[ -f "${IMAGE_CACHE_PREFIX}.initramfs" ]]; then if [[ -f "${IMAGE_CACHE_PREFIX}.kernel" ]] && [[ -f "${IMAGE_CACHE_PREFIX}.initramfs" ]]; then
export IRONIC_DEFAULT_KERNEL="${IMAGE_CACHE_PREFIX}.kernel" export IRONIC_DEFAULT_KERNEL="${IMAGE_CACHE_PREFIX}.kernel"
export IRONIC_DEFAULT_RAMDISK="${IMAGE_CACHE_PREFIX}.initramfs" export IRONIC_DEFAULT_RAMDISK="${IMAGE_CACHE_PREFIX}.initramfs"

View File

@@ -5,6 +5,6 @@ echo In inspector.ipxe
imgfree imgfree
# NOTE(dtantsur): keep inspection kernel params in [mdns]params in # NOTE(dtantsur): keep inspection kernel params in [mdns]params in
# ironic-inspector-image and configuration in configure-ironic.sh # ironic-inspector-image and configuration in configure-ironic.sh
kernel --timeout 60000 http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/images/ironic-python-agent.kernel ipa-insecure=1 ipa-inspection-collectors={{ env.IRONIC_IPA_COLLECTORS }} systemd.journald.forward_to_console=yes BOOTIF=${mac} ipa-debug=1 ipa-enable-vlan-interfaces={{ env.IRONIC_ENABLE_VLAN_INTERFACES }} ipa-inspection-dhcp-all-interfaces=1 ipa-collect-lldp=1 {{ env.INSPECTOR_EXTRA_ARGS }} initrd=ironic-python-agent.initramfs {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} || goto retry_boot kernel --timeout 60000 http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/images/ironic-python-agent-${buildarch}.kernel ipa-insecure=1 ipa-inspection-collectors={{ env.IRONIC_IPA_COLLECTORS }} systemd.journald.forward_to_console=yes BOOTIF=${mac} ipa-debug=1 ipa-enable-vlan-interfaces={{ env.IRONIC_ENABLE_VLAN_INTERFACES }} ipa-inspection-dhcp-all-interfaces=1 ipa-collect-lldp=1 {{ env.INSPECTOR_EXTRA_ARGS }} initrd=ironic-python-agent.initramfs {% if env.IRONIC_RAMDISK_SSH_KEY %}sshkey="{{ env.IRONIC_RAMDISK_SSH_KEY|trim }}"{% endif %} {{ env.IRONIC_KERNEL_PARAMS|trim }} || goto retry_boot
initrd --timeout 60000 http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/images/ironic-python-agent.initramfs || goto retry_boot initrd --timeout 60000 http://{{ env.IRONIC_URL_HOST }}:{{ env.HTTP_PORT }}/images/ironic-python-agent-${buildarch}.initramfs || goto retry_boot
boot boot

View File

@@ -83,7 +83,7 @@ send_sensor_data = {{ env.SEND_SENSOR_DATA }}
# Power state is checked every 60 seconds and BMC activity should # Power state is checked every 60 seconds and BMC activity should
# be avoided more often than once every sixty seconds. # be avoided more often than once every sixty seconds.
send_sensor_data_interval = 160 send_sensor_data_interval = 160
bootloader = {{ env.IRONIC_BOOT_BASE_URL }}/uefi_esp.img bootloader = {{ env.IRONIC_BOOT_BASE_URL }}/uefi_esp-{{ env.DEPLOY_ARCHITECTURE }}.img
verify_step_priority_override = management.clear_job_queue:90 verify_step_priority_override = management.clear_job_queue:90
# We don't use this feature, and it creates an additional load on the database # We don't use this feature, and it creates an additional load on the database
node_history = False node_history = False

View File

@@ -2,41 +2,26 @@
set -euxo pipefail set -euxo pipefail
ARCH=$(uname -m) declare -A efi_arch=(
DEST=${2:-/tmp/esp.img} ["x86_64"]="X64"
OS=${1:-sles} ["aarch64"]="AA64"
)
if [ $ARCH = "aarch64" ]; then for arch in "${!efi_arch[@]}"; do
BOOTEFI=BOOTAA64.EFI
GRUBEFI=grubaa64.efi
else
BOOTEFI=BOOTX64.efi
GRUBEFI=grubx64.efi
fi
dd bs=1024 count=6400 if=/dev/zero of=$DEST DEST=/tmp/esp-${arch}.img
mkfs.msdos -F 12 -n 'ESP_IMAGE' $DEST
dd bs=1024 count=6400 if=/dev/zero of=$DEST
mkfs.msdos -F 12 -n 'ESP_IMAGE' $DEST
mmd -i $DEST EFI
mmd -i $DEST EFI/BOOT
mcopy -i $DEST -v /usr/share/efi/${arch}/shim.efi ::EFI/BOOT/BOOT${efi_arch[$arch]}.EFI
mcopy -i $DEST -v /usr/share/efi/${arch}/grub.efi ::EFI/BOOT/GRUB.EFI
mdir -i $DEST ::EFI/BOOT;
done
mkdir -p /boot/efi/EFI/BOOT
mkdir -p /boot/efi/EFI/$OS
if [ $ARCH = "aarch64" ]; then
cp -L /usr/share/efi/aarch64/shim.efi /boot/efi/EFI/BOOT/$BOOTEFI
cp -L /usr/share/efi/aarch64/grub.efi /boot/efi/EFI/BOOT/grub.efi
cp /usr/share/grub2/arm64-efi/grub.efi /boot/efi/EFI/$OS/grubaa64.efi
else
cp -L /usr/lib64/efi/shim.efi /boot/efi/EFI/BOOT/$BOOTEFI
#cp /usr/share/grub2/x86_64-efi/grub.efi /boot/efi/EFI/$OS/$GRUBEFI
cp /usr/share/grub2/x86_64-efi/grub.efi /boot/efi/EFI/$OS/grub.efi
fi
mmd -i $DEST EFI
mmd -i $DEST EFI/BOOT
mcopy -i $DEST -v /boot/efi/EFI/BOOT/$BOOTEFI ::EFI/BOOT
if [ $ARCH = "aarch64" ]; then
mcopy -i $DEST -v /boot/efi/EFI/BOOT/grub.efi ::EFI/BOOT
mcopy -i $DEST -v /boot/efi/EFI/$OS/$GRUBEFI ::EFI/BOOT
else
mcopy -i $DEST -v /boot/efi/EFI/$OS/grub.efi ::EFI/BOOT
fi
mdir -i $DEST ::EFI/BOOT;

View File

@@ -39,7 +39,7 @@ export INSPECTOR_EXTRA_ARGS
# Copy files to shared mount # Copy files to shared mount
render_j2_config /tmp/inspector.ipxe.j2 /shared/html/inspector.ipxe render_j2_config /tmp/inspector.ipxe.j2 /shared/html/inspector.ipxe
cp /tmp/uefi_esp.img /shared/html/uefi_esp.img cp /tmp/uefi_esp*.img /shared/html/
# Render the core httpd config # Render the core httpd config
render_j2_config /etc/httpd/conf/httpd.conf.j2 /etc/httpd/conf/httpd.conf render_j2_config /etc/httpd/conf/httpd.conf.j2 /etc/httpd/conf/httpd.conf

View File

@@ -1,6 +1,6 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.1 #!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.3
#!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.1-%RELEASE% #!BuildTag: %%IMG_PREFIX%%ironic-ipa-downloader:3.0.3-%RELEASE%
#!BuildVersion: 15.6 #!BuildVersion: 15.6
ARG SLE_VERSION ARG SLE_VERSION
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
@@ -8,15 +8,8 @@ FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
COPY --from=micro / /installroot/ COPY --from=micro / /installroot/
RUN sed -i -e 's%^# rpm.install.excludedocs = no.*%rpm.install.excludedocs = yes%g' /etc/zypp/zypp.conf RUN sed -i -e 's%^# rpm.install.excludedocs = no.*%rpm.install.excludedocs = yes%g' /etc/zypp/zypp.conf
#!ArchExclusiveLine: x86_64 RUN zypper --installroot /installroot --non-interactive install --no-recommends ironic-ipa-ramdisk-x86_64 ironic-ipa-ramdisk-aarch64 tar gawk curl xz zstd shadow cpio findutils
RUN if [ "$(uname -m)" = "x86_64" ];then \
zypper --installroot /installroot --non-interactive install --no-recommends ironic-ipa-ramdisk-x86_64 python311-devel python311 python311-pip tar gawk git curl xz fakeroot shadow sed cpio; zypper -n clean; rm -rf /var/log/*; \
fi
#!ArchExclusiveLine: aarch64
RUN if [ "$(uname -m)" = "aarch64" ];then \
zypper --installroot /installroot --non-interactive install --no-recommends ironic-ipa-ramdisk-aarch64 python311-devel python311 python311-pip tar gawk git curl xz fakeroot shadow sed cpio; zypper -n clean; rm -rf /var/log/*; \
fi
#RUN zypper --installroot /installroot --non-interactive install --no-recommends sles-release;
RUN cp /usr/bin/getopt /installroot/ RUN cp /usr/bin/getopt /installroot/
FROM micro AS final FROM micro AS final
@@ -26,11 +19,11 @@ FROM micro AS final
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)" LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
LABEL org.opencontainers.image.title="SLE Based Ironic IPA Downloader Container Image" LABEL org.opencontainers.image.title="SLE Based Ironic IPA Downloader Container Image"
LABEL org.opencontainers.image.description="ironic-ipa-downloader based on the SLE Base Container Image." LABEL org.opencontainers.image.description="ironic-ipa-downloader based on the SLE Base Container Image."
LABEL org.opencontainers.image.version="3.0.1" LABEL org.opencontainers.image.version="3.0.3"
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/" LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
LABEL org.opencontainers.image.created="%BUILDTIME%" LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC" LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.1-%RELEASE%" LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.3-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%" LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%" LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
LABEL com.suse.eula="SUSE Combined EULA February 2024" LABEL com.suse.eula="SUSE Combined EULA February 2024"
@@ -41,8 +34,9 @@ LABEL com.suse.release-stage="released"
COPY --from=base /installroot / COPY --from=base /installroot /
RUN cp /getopt /usr/bin/ RUN cp /getopt /usr/bin/
RUN cp /srv/tftpboot/openstack-ironic-image/initrd.xz /tmp RUN cp /srv/tftpboot/openstack-ironic-image/initrd*.zst /tmp
RUN cp /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel /tmp RUN cp /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel /tmp
RUN sha256sum /srv/tftpboot/openstack-ironic-image/initrd*.zst /srv/tftpboot/openstack-ironic-image/openstack-ironic-image*.kernel > /tmp/images.sha256
# configure non-root user # configure non-root user
COPY configure-nonroot.sh /bin/ COPY configure-nonroot.sh /bin/
RUN set -euo pipefail; chmod +x /bin/configure-nonroot.sh RUN set -euo pipefail; chmod +x /bin/configure-nonroot.sh

View File

@@ -6,12 +6,33 @@ export http_proxy=${http_proxy:-$HTTP_PROXY}
export https_proxy=${https_proxy:-$HTTPS_PROXY} export https_proxy=${https_proxy:-$HTTPS_PROXY}
export no_proxy=${no_proxy:-$NO_PROXY} export no_proxy=${no_proxy:-$NO_PROXY}
if [ -d "/tmp/ironic-certificates" ]; then
sha256sum /tmp/ironic-certificates/* > /tmp/certificates.sha256
if cmp "/shared/certificates.sha256" "/tmp/certificates.sha256"; then
CERTS_CHANGED=0
else
CERTS_CHANGED=1
fi
fi
# Which image should we use # Which image should we use
if [ -z "${IPA_BASEURI}" ]; then if [ -z "${IPA_BASEURI}" ]; then
# SLES BASED IPA - ironic-ipa-ramdisk-x86_64 package if cmp "/shared/images.sha256" "/tmp/images.sha256"; then
if [ "${CERTS_CHANGED:-0}" = "0" ]; then
# everything is the same exit early
exit 0
fi
fi
IMAGE_CHANGED=1
# SLES BASED IPA - ironic-ipa-ramdisk-x86_64 and ironic-ipa-ramdisk-aarch64 packages
mkdir -p /shared/html/images mkdir -p /shared/html/images
cp /tmp/initrd.xz /shared/html/images/ironic-python-agent.initramfs cp /tmp/initrd-x86_64.zst /shared/html/images/ironic-python-agent-x86_64.initramfs
cp /tmp/openstack-ironic-image*.kernel /shared/html/images/ironic-python-agent.kernel cp /tmp/openstack-ironic-image.x86_64*.kernel /shared/html/images/ironic-python-agent-x86_64.kernel
# Use arm64 as destination for iPXE compatibility
cp /tmp/initrd-aarch64.zst /shared/html/images/ironic-python-agent-arm64.initramfs
cp /tmp/openstack-ironic-image.aarch64*.kernel /shared/html/images/ironic-python-agent-arm64.kernel
cp /tmp/images.sha256 /shared/images.sha256
else else
FILENAME=ironic-python-agent FILENAME=ironic-python-agent
FILENAME_EXT=.tar FILENAME_EXT=.tar
@@ -25,47 +46,56 @@ else
# If we have a CACHEURL and nothing has yet been downloaded # If we have a CACHEURL and nothing has yet been downloaded
# get header info from the cache # get header info from the cache
ls -l ls -l
if [ -n "$CACHEURL" -a ! -e $FFILENAME.headers ] ; then if [ -n "$CACHEURL" ] && [ ! -e $FFILENAME.headers ] ; then
curl -g --verbose --fail -O "$CACHEURL/$FFILENAME.headers" || true curl -g --verbose --fail -O "$CACHEURL/$FFILENAME.headers" || true
fi fi
# Download the most recent version of IPA # Download the most recent version of IPA
if [ -e $FFILENAME.headers ] ; then if [ -e $FFILENAME.headers ] ; then
ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\r") ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\r")
cd $TMPDIR cd "$TMPDIR"
curl -g --verbose --dump-header $FFILENAME.headers -O $IPA_BASEURI/$FFILENAME --header "If-None-Match: $ETAG" || cp /shared/html/images/$FFILENAME.headers . curl -g --verbose --dump-header $FFILENAME.headers -O "$IPA_BASEURI/$FFILENAME" --header "If-None-Match: $ETAG" || cp /shared/html/images/$FFILENAME.headers .
# curl didn't download anything because we have the ETag already # curl didn't download anything because we have the ETag already
# but we don't have it in the images directory # but we don't have it in the images directory
# Its in the cache, go get it # Its in the cache, go get it
ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\"\r") ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\"\r")
if [ ! -s $FFILENAME -a ! -e /shared/html/images/$FILENAME-$ETAG/$FFILENAME ] ; then if [ ! -s $FFILENAME ] && [ ! -e "/shared/html/images/$FILENAME-$ETAG/$FFILENAME" ] ; then
mv /shared/html/images/$FFILENAME.headers . mv /shared/html/images/$FFILENAME.headers .
curl -g --verbose -O "$CACHEURL/$FILENAME-$ETAG/$FFILENAME" curl -g --verbose -O "$CACHEURL/$FILENAME-$ETAG/$FFILENAME"
fi fi
else else
cd $TMPDIR cd "$TMPDIR"
curl -g --verbose --dump-header $FFILENAME.headers -O $IPA_BASEURI/$FFILENAME curl -g --verbose --dump-header $FFILENAME.headers -O "$IPA_BASEURI/$FFILENAME"
fi fi
if [ -s $FFILENAME ] ; then if [ -s $FFILENAME ] ; then
tar -xf $FFILENAME tar -xf $FFILENAME
xz -d -c -k --fast $FILENAME.initramfs | zstd -c > $FILENAME.initramfs.zstd
mv $FILENAME.initramfs.zstd $FILENAME.initramfs
ARCH=$(file -b ${FILENAME}.kernel | cut -d ' ' -f 3)
if [ "$ARCH" = "x86" ]; then
ARCH="x86_64"
fi
ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\"\r") ETAG=$(awk '/ETag:/ {print $2}' $FFILENAME.headers | tr -d "\"\r")
cd - cd -
chmod 755 $TMPDIR chmod 755 "$TMPDIR"
mv $TMPDIR $FILENAME-$ETAG mv "$TMPDIR" "$FILENAME-$ETAG"
ln -sf $FILENAME-$ETAG/$FFILENAME.headers $FFILENAME.headers ln -sf "$FILENAME-$ETAG/$FFILENAME.headers" "$FFILENAME.headers"
ln -sf $FILENAME-$ETAG/$FILENAME.initramfs $FILENAME.initramfs ln -sf "$FILENAME-$ETAG/$FILENAME.initramfs" "$FILENAME-${ARCH,,}.initramfs"
ln -sf $FILENAME-$ETAG/$FILENAME.kernel $FILENAME.kernel ln -sf "$FILENAME-$ETAG/$FILENAME.kernel" "$FILENAME-${ARCH,,}.kernel"
IMAGE_CHANGED=1
else else
rm -rf $TMPDIR rm -rf "$TMPDIR"
fi fi
fi fi
if [ -d "/tmp/ironic-certificates" ]; then if [ "${CERTS_CHANGED:-0}" = "1" ] || [ "${IMAGE_CHANGED:-0}" = "1" ]; then
mkdir -p /tmp/ca/tmp-initrd && cd /tmp/ca/tmp-initrd mkdir -p /tmp/ca/tmp-initrd && cd /tmp/ca/tmp-initrd
xz -d -c -k --fast /shared/html/images/ironic-python-agent.initramfs | fakeroot -s ../initrd.fakeroot cpio -i
mkdir -p etc/ironic-python-agent.d/ca-certs mkdir -p etc/ironic-python-agent.d/ca-certs
cp /tmp/ironic-certificates/* etc/ironic-python-agent.d/ca-certs/ cp /tmp/ironic-certificates/* etc/ironic-python-agent.d/ca-certs/
find . | fakeroot -i ../initrd.fakeroot cpio -o -H newc | xz --check=crc32 --x86 --lzma2 --fast > /shared/html/images/ironic-python-agent.initramfs for initramfs in /shared/html/images/ironic-python-agent-*.initramfs; do
find . | cpio -o -H newc --reproducible | zstd -c >> "${initramfs}"
done
cp /tmp/certificates.sha256 /shared/certificates.sha256
fi fi

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<image schemaversion="7.4" name="openstack-ironic-image-301"> <image schemaversion="7.4" name="openstack-ironic-image">
<description type="system"> <description type="system">
<author>Cloud developers</author> <author>Cloud developers</author>
<contact>cloud-devel@suse.de</contact> <contact>cloud-devel@suse.de</contact>

View File

@@ -19,7 +19,7 @@
Name: ironic-ipa-ramdisk Name: ironic-ipa-ramdisk
Version: 3.0.1 Version: 3.0.3
Release: 0 Release: 0
Summary: Kernel and ramdisk image for OpenStack Ironic Summary: Kernel and ramdisk image for OpenStack Ironic
License: SUSE-EULA License: SUSE-EULA
@@ -148,10 +148,8 @@ TDIR=`mktemp -d /tmp/openstack-ironic-image.XXXXX`
cd /tmp/openstack-ironic-image/img/build/image-root cd /tmp/openstack-ironic-image/img/build/image-root
find . | cpio --create --format=newc --quiet > $TDIR/initrdtmp find . | cpio --create --format=newc --quiet > $TDIR/initrdtmp
cd $TDIR cd $TDIR
gzip -9 -f initrdtmp zstd initrdtmp -o initrd-%{_arch}.zst
INITRDGZ=`ls *.gz | head -1` INITRD=`ls *.zst | head -1`
gzip -cd $INITRDGZ | xz --check=crc32 -c9 > initrd.xz
INITRD=`ls *.xz | head -1`
ls /tmp/openstack-ironic-image/img/openstack-ironic-image* ls /tmp/openstack-ironic-image/img/openstack-ironic-image*
KERNEL=`ls /tmp/openstack-ironic-image/img/openstack-ironic-image*default*kernel | head -1` KERNEL=`ls /tmp/openstack-ironic-image/img/openstack-ironic-image*default*kernel | head -1`

BIN
ironic-ipa-ramdisk/root.tar.bz2 (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,20 +1,18 @@
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.1-%RELEASE% #!BuildTag: %%IMG_PREFIX%%kiwi-builder:10.1.16.1
#!BuildTag: %%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.1 #!BuildTag: %%IMG_PREFIX%%kiwi-builder:10.1.16.1-%RELEASE%
FROM registry.suse.com/bci/kiwi:10.1.16
ARG KIWIVERSION="10.2.12" MAINTAINER SUSE LLC (https://www.suse.com/)
FROM registry.suse.com/bci/kiwi:${KIWIVERSION}
ARG KIWIVERSION
# Define labels according to https://en.opensuse.org/Building_derived_containers # Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=com.suse.application.akri # labelprefix=com.suse.application.akri
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)" LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
LABEL org.opencontainers.image.title="SLE Kiwi Builder Container Image" LABEL org.opencontainers.image.title="SLE Kiwi Builder Container Image"
LABEL org.opencontainers.image.description="kiwi-builder based on the SLE Base Container Image." LABEL org.opencontainers.image.description="kiwi-builder based on the SLE Base Container Image."
LABEL org.opencontainers.image.version="%%kiwi_version%%" LABEL org.opencontainers.image.version="%PACKAGE_VERSION%"
LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/" LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
LABEL org.opencontainers.image.created="%BUILDTIME%" LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC" LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kiwi-builder:%%kiwi_version%%.1-%RELEASE%" LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kiwi-builder:10.1.16.1"
LABEL org.openbuildservice.disturl="%DISTURL%" LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%" LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
LABEL com.suse.eula="SUSE Combined EULA February 2024" LABEL com.suse.eula="SUSE Combined EULA February 2024"
@@ -23,8 +21,8 @@ LABEL com.suse.image-type="application"
LABEL com.suse.release-stage="released" LABEL com.suse.release-stage="released"
# endlabelprefix # endlabelprefix
# help the build service understand the need for python3-kiwi # Configure Kiwi to use kpartx
RUN zypper -n install -d -D python3-kiwi; [ "%%kiwi_version%%" = "${KIWIVERSION}" ] || { echo "expected kiwi version ${KIWIVERSION}: version mismatch"; exit 1; } RUN echo -e "mapper:\n - part_mapper: kpartx" > /etc/kiwi.yml
# Copy build script into image and make it executable # Copy build script into image and make it executable
ADD build-image.sh /usr/bin/build-image ADD build-image.sh /usr/bin/build-image

View File

@@ -2,13 +2,13 @@
Kiwi SDK Image Instructions Kiwi SDK Image Instructions
########################### ###########################
Please ensure that you're running this on a registered SLE Micro 6.0 system, and make sure that SELinux is disabled: Please ensure that you're running this on a registered SUSE Linux Micro 6.1 system, and make sure that SELinux is disabled:
# setenforce 0 # setenforce 0
Next, download the podman image: Next, download the podman image:
# podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 # podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1
Make a local output directory (where the images will reside): Make a local output directory (where the images will reside):
@@ -16,40 +16,40 @@ Make a local output directory (where the images will reside):
Then, to build a standard "Base" image, run the following in podman: Then, to build a standard "Base" image, run the following in podman:
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image
To build a "Base" SelfInstall ISO, you can add additional flags, for example: To build a "Base" SelfInstall ISO, you can add additional flags, for example:
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image -p Base-SelfInstall # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Base-SelfInstall
Then, to build a standard "Default" image, run the following in podman: Then, to build a standard "Default" image, run the following in podman:
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image -p Default # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Default
To build a "Default" SelfInstall ISO, you can add additional flags, for example: To build a "Default" SelfInstall ISO, you can add additional flags, for example:
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image -p Default-SelfInstall # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Default-SelfInstall
To build an image with a RealTime kernel, e.g. a RAW disk image ("Default"), use the following: To build an image with a RealTime kernel, e.g. a RAW disk image ("Default"), use the following:
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image -p Base-RT # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Base-RT
To build an image that supports a large block/sectorsize (4096), use the "-b" flag, for example: To build an image that supports a large block/sectorsize (4096), use the "-b" flag, for example:
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image -p Default-SelfInstall -b # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image -p Default-SelfInstall -b
# mkdir mydefs/ # mkdir mydefs/
# cp /path/to/SL-Micro.kiwi mydefs/ # cp /path/to/SL-Micro.kiwi mydefs/
# cp /path/to/config.sh mydefs/ # cp /path/to/config.sh mydefs/
# podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -v ./mydefs/:/micro-sdk/defs/ -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:%%kiwi_version%%.1 build-image # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -v ./mydefs/:/micro-sdk/defs/ -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.1.16.1 build-image
All output will be in the local $(pwd)/output directory, for example: All output will be in the local $(pwd)/output directory, for example:
# ls -1 output/ # ls -1 output/
SL-Micro.x86_64-6.0.changes SLE-Micro.x86_64-6.1.changes
SL-Micro.x86_64-6.0.packages SLE-Micro.x86_64-6.1.packages
SL-Micro.x86_64-6.0.raw SLE-Micro.x86_64-6.1.raw
SL-Micro.x86_64-6.0.verified SLE-Micro.x86_64-6.1.verified
build build
kiwi.result kiwi.result
kiwi.result.json kiwi.result.json

View File

@@ -33,6 +33,12 @@
<profile name="aarch64-self_install" description="Raw disk for aarch64" arch="aarch64"> <profile name="aarch64-self_install" description="Raw disk for aarch64" arch="aarch64">
<requires profile="bootloader"/> <requires profile="bootloader"/>
</profile> </profile>
<profile name="aarch64-rt" description="Raw disk for aarch64 with RT kernel" arch="aarch64">
<requires profile="bootloader"/>
</profile>
<profile name="aarch64-rt-self_install" description="Raw disk for aarch64 with RT kernel" arch="aarch64">
<requires profile="bootloader"/>
</profile>
<profile name="x86-legacy" description="Raw disk for x86_64 - legacy boot" arch="x86_64"> <profile name="x86-legacy" description="Raw disk for x86_64 - legacy boot" arch="x86_64">
<requires profile="bootloader"/> <requires profile="bootloader"/>
</profile> </profile>
@@ -63,6 +69,21 @@
<profile name="s390-fba" description="Raw disk for s390 - DASD" arch="s390x"> <profile name="s390-fba" description="Raw disk for s390 - DASD" arch="s390x">
<requires profile="bootloader"/> <requires profile="bootloader"/>
</profile> </profile>
<profile name="s390-fcp" description="Raw disk for s390 - SCSI" arch="s390x">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-512ss" description="Raw disk for PPc64 - 512 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-4096ss" description="Raw disk for PPc64 - 4096 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-512ss-self_install" description="Raw disk for PPc64 - 512 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-4096ss-self_install" description="Raw disk for PPc64 - 4096 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<!-- Images (flavor + platform) --> <!-- Images (flavor + platform) -->
<profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="x86_64"> <profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="x86_64">
<requires profile="full"/> <requires profile="full"/>
@@ -140,6 +161,15 @@
<requires profile="x86-rt-self_install"/> <requires profile="x86-rt-self_install"/>
<requires profile="self_install"/> <requires profile="self_install"/>
</profile> </profile>
<profile name="Base-RT" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64">
<requires profile="container-host"/>
<requires profile="aarch64-rt"/>
</profile>
<profile name="Base-RT-SelfInstall" description="SL Micro with Podman as raw image with uEFI boot - SelfInstall" arch="aarch64">
<requires profile="container-host"/>
<requires profile="aarch64-rt-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Default-qcow" description="SL Micro with Podman and KVM as raw image for KVM on System z" arch="s390x"> <profile name="Default-qcow" description="SL Micro with Podman and KVM as raw image for KVM on System z" arch="s390x">
<requires profile="full"/> <requires profile="full"/>
<requires profile="s390-kvm"/> <requires profile="s390-kvm"/>
@@ -164,6 +194,14 @@
<requires profile="container-host"/> <requires profile="container-host"/>
<requires profile="s390-fba"/> <requires profile="s390-fba"/>
</profile> </profile>
<profile name="Default-fcp" description="SL Micro with Podman and KVM as raw image for zFCP on System z" arch="s390x">
<requires profile="full"/>
<requires profile="s390-fcp"/>
</profile>
<profile name="Base-fcp" description="SL Micro with Podman as raw image for zFCP on System z" arch="s390x">
<requires profile="container-host"/>
<requires profile="s390-fcp"/>
</profile>
<profile name="Default-legacy" description="SL Micro with Podman as raw image with legacy boot" arch="x86_64"> <profile name="Default-legacy" description="SL Micro with Podman as raw image with legacy boot" arch="x86_64">
<requires profile="full"/> <requires profile="full"/>
<requires profile="x86-legacy"/> <requires profile="x86-legacy"/>
@@ -184,10 +222,47 @@
<requires profile="container-host"/> <requires profile="container-host"/>
<requires profile="aarch64-qcow"/> <requires profile="aarch64-qcow"/>
</profile> </profile>
<profile name="Base-512" description="SL Micro with Podman as raw image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-512ss"/>
</profile>
<profile name="Base-4096" description="SL Micro with Podman as raw image for ppc64le with 4096b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-4096ss"/>
</profile>
<profile name="Base-512-SelfInstall" description="SL Micro with Podman as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-512ss-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Base-4096-SelfInstall" description="SL Micro with Podman as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-4096ss-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Default-512" description="SL Micro with Podman and KVM as raw image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-512ss"/>
</profile>
<profile name="Default-4096" description="SL Micro with Podman and KVM as raw image for ppc64le with 4096b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-4096ss"/>
</profile>
<profile name="Default-512-SelfInstall" description="SL Micro with Podman and KVM as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-512ss-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Default-4096-SelfInstall" description="SL Micro with Podman and KVM as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-4096ss-self_install"/>
<requires profile="self_install"/>
</profile>
</profiles> </profiles>
<preferences profiles="x86-encrypted,x86-rt-encrypted"> <preferences profiles="x86-encrypted,x86-rt-encrypted">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -198,7 +273,7 @@
initrd_system="dracut" initrd_system="dracut"
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@@ -211,7 +286,7 @@
luks_pbkdf="pbkdf2" luks_pbkdf="pbkdf2"
> >
<luksformat> <luksformat>
<option name="--cipher" value="aes"/> <option name="--cipher" value="aes-xts-plain64"/>
</luksformat> </luksformat>
<bootloader name="grub2" console="gfxterm" use_disk_password="true" /> <bootloader name="grub2" console="gfxterm" use_disk_password="true" />
<systemdisk> <systemdisk>
@@ -230,7 +305,7 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="x86,x86-rt"> <preferences profiles="x86,x86-rt">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -241,7 +316,7 @@
initrd_system="dracut" initrd_system="dracut"
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@@ -266,7 +341,7 @@
</preferences> </preferences>
<preferences profiles="x86-self_install,x86-rt-self_install"> <preferences profiles="x86-self_install,x86-rt-self_install">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -276,11 +351,12 @@
image="oem" image="oem"
initrd_system="dracut" initrd_system="dracut"
installiso="true" installiso="true"
installpxe="true"
filesystem="btrfs" filesystem="btrfs"
installboot="install" installboot="install"
install_continue_on_timeout="false" install_continue_on_timeout="false"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@@ -304,8 +380,8 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="rpi"> <preferences profiles="rpi,aarch64-rt">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -320,7 +396,7 @@
install_continue_on_timeout="false" install_continue_on_timeout="false"
fsmountoptions="noatime" fsmountoptions="noatime"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200n8 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0"
bootpartition="false" bootpartition="false"
devicepersistency="by-uuid" devicepersistency="by-uuid"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
@@ -344,8 +420,8 @@
</systemdisk> </systemdisk>
</type> </type>
</preferences> </preferences>
<preferences profiles="aarch64-self_install"> <preferences profiles="aarch64-self_install,aarch64-rt-self_install">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -355,12 +431,13 @@
image="oem" image="oem"
initrd_system="dracut" initrd_system="dracut"
installiso="true" installiso="true"
installpxe="true"
filesystem="btrfs" filesystem="btrfs"
installboot="install" installboot="install"
install_continue_on_timeout="false" install_continue_on_timeout="false"
firmware="uefi" firmware="uefi"
efipartsize="128" efipartsize="128"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@@ -385,22 +462,22 @@
</preferences> </preferences>
<preferences profiles="s390-kvm"> <preferences profiles="s390-kvm">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs> <rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale> <locale>en_US</locale>
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type <type
image="oem" image="oem"
filesystem="btrfs" filesystem="btrfs"
bootpartition="true" bootpartition="true"
bootpartsize="300" bootpartsize="300"
bootfilesystem="ext2" bootfilesystem="ext4"
initrd_system="dracut" initrd_system="dracut"
format="qcow2" format="qcow2"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet" kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 ignition.platform.id=metal"
devicepersistency="by-uuid" devicepersistency="by-uuid"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true" btrfs_root_is_readonly_snapshot="true"
@@ -423,7 +500,7 @@
<preferences profiles="s390-dasd"> <preferences profiles="s390-dasd">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -434,9 +511,9 @@
filesystem="btrfs" filesystem="btrfs"
bootpartition="true" bootpartition="true"
bootpartsize="300" bootpartsize="300"
bootfilesystem="ext2" bootfilesystem="ext4"
initrd_system="dracut" initrd_system="dracut"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet" kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1"
devicepersistency="by-uuid" devicepersistency="by-uuid"
target_blocksize="4096" target_blocksize="4096"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
@@ -461,7 +538,7 @@
<preferences profiles="s390-fba"> <preferences profiles="s390-fba">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -472,9 +549,9 @@
filesystem="btrfs" filesystem="btrfs"
bootpartition="true" bootpartition="true"
bootpartsize="300" bootpartsize="300"
bootfilesystem="ext2" bootfilesystem="ext4"
initrd_system="dracut" initrd_system="dracut"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet" kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1"
devicepersistency="by-uuid" devicepersistency="by-uuid"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true" btrfs_root_is_readonly_snapshot="true"
@@ -495,9 +572,47 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="s390-fcp">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<type
image="oem"
filesystem="btrfs"
installpxe="true"
bootpartition="true"
bootpartsize="300"
bootfilesystem="ext4"
initrd_system="dracut"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<oemconfig>
<oem-multipath-scan>true</oem-multipath-scan>
</oemconfig>
<bootloader name="grub2_s390x_emu" console="serial" timeout="3" targettype="SCSI"/>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/s390x-emu" mountpoint="boot/grub2/s390x-emu"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
<size unit="G">5</size>
</type>
</preferences>
<preferences profiles="x86-vmware"> <preferences profiles="x86-vmware">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -532,7 +647,7 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="x86-qcow"> <preferences profiles="x86-qcow">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -543,7 +658,7 @@
format="qcow2" format="qcow2"
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=qemu" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=qemu"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@@ -569,7 +684,7 @@
</preferences> </preferences>
<preferences profiles="aarch64-qcow"> <preferences profiles="aarch64-qcow">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -581,7 +696,7 @@
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
efipartsize="128" efipartsize="128"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=qemu" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=qemu"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@@ -592,7 +707,7 @@
<systemdisk> <systemdisk>
<volume name="home"/> <volume name="home"/>
<volume name="root"/> <volume name="root"/>
<volume name="opt"/> <volume name="opt"/>
<volume name="srv"/> <volume name="srv"/>
<volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/> <volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/>
<volume name="boot/writable"/> <volume name="boot/writable"/>
@@ -603,6 +718,161 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="ppc64le-512ss">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<preferences profiles="ppc64le-4096ss">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- TODO: supposedly this is needed as type attribute, but kiwi needs patching
disk_start_sector="256" -->
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
target_blocksize="4096"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<preferences profiles="ppc64le-512ss-self_install">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
installiso="true"
installpxe="true"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<installmedia>
<initrd action="omit">
<dracut module="drm"/>
</initrd>
</installmedia>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<preferences profiles="ppc64le-4096ss-self_install">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- TODO: supposedly this is needed as type attribute, but kiwi needs patching
disk_start_sector="256" -->
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
installiso="true"
installpxe="true"
target_blocksize="4096"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<installmedia>
<initrd action="omit">
<dracut module="drm"/>
</initrd>
</installmedia>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<repository type="rpm-md" > <repository type="rpm-md" >
<source path='obsrepositories:/'/> <source path='obsrepositories:/'/>
</repository> </repository>
@@ -628,7 +898,6 @@
<package name="firewalld"/> <package name="firewalld"/>
<package name="wpa_supplicant" arch="x86_64,aarch64"/> <package name="wpa_supplicant" arch="x86_64,aarch64"/>
<package name="libpwquality-tools"/> <package name="libpwquality-tools"/>
<!-- <package name="k3s-install"/> -->
</packages> </packages>
<packages type="image" profiles="x86-encrypted,x86-rt-encrypted"> <packages type="image" profiles="x86-encrypted,x86-rt-encrypted">
@@ -648,8 +917,6 @@
<package name="patterns-base-transactional"/> <package name="patterns-base-transactional"/>
<namedCollection name="container_runtime_podman"/> <namedCollection name="container_runtime_podman"/>
<package name="patterns-container-runtime_podman"/> <package name="patterns-container-runtime_podman"/>
<namedCollection name="cockpit"/>
<package name="patterns-base-cockpit"/>
<namedCollection name="selinux"/> <namedCollection name="selinux"/>
<package name="patterns-base-selinux"/> <package name="patterns-base-selinux"/>
<package name="suseconnect-ng"/> <package name="suseconnect-ng"/>
@@ -713,7 +980,8 @@
<package name="grub2-x86_64-efi" arch="x86_64"/> <package name="grub2-x86_64-efi" arch="x86_64"/>
<package name="grub2-arm64-efi" arch="aarch64"/> <package name="grub2-arm64-efi" arch="aarch64"/>
<package name="grub2-s390x-emu" arch="s390x"/> <package name="grub2-s390x-emu" arch="s390x"/>
<package name="grub2-branding-SLE" bootinclude="true" arch="x86_64,aarch64"/> <package name="grub2-powerpc-ieee1275" arch="ppc64le"/>
<package name="grub2-branding-SLE" bootinclude="true" arch="x86_64,aarch64,ppc64le"/>
<package name="grub2-snapper-plugin"/> <package name="grub2-snapper-plugin"/>
<package name="shim" arch="x86_64,aarch64"/> <package name="shim" arch="x86_64,aarch64"/>
<package name="mokutil" arch="x86_64,aarch64"/> <package name="mokutil" arch="x86_64,aarch64"/>
@@ -721,46 +989,44 @@
<package name="kpartx" arch="s390x"/>--> <!-- previous releases picked it always, now kiwi picks partx instead --> <package name="kpartx" arch="s390x"/>--> <!-- previous releases picked it always, now kiwi picks partx instead -->
</packages> </packages>
<!-- rpi kernel-default-base does not provide all necessary drivers --> <!-- rpi kernel-default-base does not provide all necessary drivers -->
<packages type="image" profiles="x86,x86-encrypted,x86-legacy,x86-self_install,x86-vmware,x86-qcow,aarch64-qcow,s390-kvm,s390-dasd,s390-fba"> <packages type="image" profiles="rpi,aarch64-self_install,x86,x86-encrypted,x86-legacy,x86-self_install,x86-vmware,x86-qcow,aarch64-qcow,s390-kvm,s390-dasd,s390-fba,s390-fcp,ppc64le-512ss,ppc64le-4096ss,ppc64le-512ss-self_install,ppc64le-4096ss-self_install">
<package name="kernel-default"/> <package name="kernel-default"/>
<package name="kernel-firmware-all"/> <package name="kernel-firmware-all"/>
</packages> </packages>
<packages type="image" profiles="x86-rt,x86-rt-self_install,x86-rt-encrypted"> <packages type="image" profiles="x86-rt,x86-rt-self_install,x86-rt-encrypted,aarch64-rt,aarch64-rt-self_install">
<package name="kernel-rt"/> <package name="kernel-rt"/>
<package name="kernel-firmware-all"/> <package name="kernel-firmware-all"/>
<!-- FIXME intentionally removed from ALP code stream <!-- FIXME intentionally removed from ALP code stream
<package name="cpuset"/> --> <package name="cpuset"/> -->
</packages> </packages>
<!-- makes the image build, but also include kernel-default <packages type="image" profiles="s390-kvm,s390-dasd,s390-fba,s390-fcp">
<packages type="image" profiles="x86-rt-encrypted"> <package name="dracut-kiwi-oem-dump"/>
<package name="kernel-default-extra"/>
</packages> -->
<packages type="image" profiles="s390-kvm,s390-dasd,s390-fba">
<package name="dracut-kiwi-oem-repart"/> <package name="dracut-kiwi-oem-repart"/>
<package name="blog"/> <package name="blog"/>
</packages> </packages>
<packages type="image" profiles="x86,x86-encrypted,x86-rt-encrypted,x86-self_install,x86-legacy,x86-vmware,x86-rt,x86-rt-self_install,x86-qcow,aarch64-qcow,rpi,aarch64-self_install"> <!-- FCP is usually used multipathed. -->
<packages type="image" profiles="s390-fcp">
<package name="multipath-tools"/>
</packages>
<packages type="image" profiles="x86,x86-encrypted,x86-rt-encrypted,x86-self_install,x86-legacy,x86-vmware,x86-rt,x86-rt-self_install,x86-qcow,aarch64-qcow,rpi,aarch64-self_install,aarch64-rt,aarch64-rt-self_install,ppc64le-512ss,ppc64le-4096ss,ppc64le-512ss-self_install,ppc64le-4096ss-self_install">
<package name="dracut-kiwi-oem-repart"/> <package name="dracut-kiwi-oem-repart"/>
<package name="dracut-kiwi-oem-dump"/> <package name="dracut-kiwi-oem-dump"/>
</packages> </packages>
<packages type="image" profiles="rpi,aarch64-self_install"> <packages type="image" profiles="rpi,aarch64-self_install,aarch64-rt,aarch64-rt-self_install">
<package name="raspberrypi-firmware" arch="aarch64"/> <package name="raspberrypi-firmware" arch="aarch64"/>
<package name="raspberrypi-firmware-config" arch="aarch64"/> <package name="raspberrypi-firmware-config" arch="aarch64"/>
<package name="raspberrypi-firmware-dt" arch="aarch64"/> <package name="raspberrypi-firmware-dt" arch="aarch64"/>
<package name="u-boot-rpiarm64" arch="aarch64"/> <package name="u-boot-rpiarm64" arch="aarch64"/>
<package name="dracut-kiwi-oem-repart"/> <package name="dracut-kiwi-oem-repart"/>
<package name="bcm43xx-firmware"/> <package name="bcm43xx-firmware"/>
<package name="kernel-firmware-all"/><!-- Fix choice between kernel-firmware and kernel-firmware-all -->
<package name="wireless-regdb"/> <package name="wireless-regdb"/>
<package name="wireless-tools"/> <package name="wireless-tools"/>
<package name="wpa_supplicant"/> <package name="wpa_supplicant"/>
<package name="grub2-arm64-efi"/> <package name="grub2-arm64-efi"/>
<!-- kernel-default-base does not have all required drivers -->
<package name="kernel-default"/>
</packages> </packages>
<packages type="bootstrap"> <packages type="bootstrap">
<package name="coreutils"/>
<package name="filesystem"/> <package name="filesystem"/>
<package name="coreutils"/>
<package name="ca-certificates"/> <package name="ca-certificates"/>
<package name="ca-certificates-mozilla"/> <package name="ca-certificates-mozilla"/>
</packages> </packages>
@@ -774,4 +1040,14 @@
<packages type="image" profiles="x86-qcow,aarch64-qcow"> <packages type="image" profiles="x86-qcow,aarch64-qcow">
<package name="qemu-guest-agent"/> <package name="qemu-guest-agent"/>
</packages> </packages>
<!-- jsc#PED-8599 -->
<packages type="image" profiles="Base,Base-encrypted,Base-RT,Base-RT-encrypted,Base-fba,Base-dasd,Base-fcp,Base-512,Base-4096,Default,Default-encrypted,Default-fba,Default-dasd,Default-fcp,Default-512,Default-4096">
<package name="usbguard"/>
</packages>
<!-- jsc#PED-8788 -->
<packages type="image" profiles="Base-RT,Base-RT-encrypted,x86-rt-encrypted,x86-rt,x86-rt-self_install,aarch64-rt,aarch64-rt-self_install">
<package name="stalld"/>
</packages>
</image> </image>

View File

@@ -33,6 +33,12 @@
<profile name="aarch64-self_install" description="Raw disk for aarch64" arch="aarch64"> <profile name="aarch64-self_install" description="Raw disk for aarch64" arch="aarch64">
<requires profile="bootloader"/> <requires profile="bootloader"/>
</profile> </profile>
<profile name="aarch64-rt" description="Raw disk for aarch64 with RT kernel" arch="aarch64">
<requires profile="bootloader"/>
</profile>
<profile name="aarch64-rt-self_install" description="Raw disk for aarch64 with RT kernel" arch="aarch64">
<requires profile="bootloader"/>
</profile>
<profile name="x86-legacy" description="Raw disk for x86_64 - legacy boot" arch="x86_64"> <profile name="x86-legacy" description="Raw disk for x86_64 - legacy boot" arch="x86_64">
<requires profile="bootloader"/> <requires profile="bootloader"/>
</profile> </profile>
@@ -63,6 +69,21 @@
<profile name="s390-fba" description="Raw disk for s390 - DASD" arch="s390x"> <profile name="s390-fba" description="Raw disk for s390 - DASD" arch="s390x">
<requires profile="bootloader"/> <requires profile="bootloader"/>
</profile> </profile>
<profile name="s390-fcp" description="Raw disk for s390 - SCSI" arch="s390x">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-512ss" description="Raw disk for PPc64 - 512 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-4096ss" description="Raw disk for PPc64 - 4096 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-512ss-self_install" description="Raw disk for PPc64 - 512 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<profile name="ppc64le-4096ss-self_install" description="Raw disk for PPc64 - 4096 sector size" arch="ppc64le">
<requires profile="bootloader"/>
</profile>
<!-- Images (flavor + platform) --> <!-- Images (flavor + platform) -->
<profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="x86_64"> <profile name="Default" description="SL Micro with Podman and KVM as raw image with uEFI boot" arch="x86_64">
<requires profile="full"/> <requires profile="full"/>
@@ -140,6 +161,15 @@
<requires profile="x86-rt-self_install"/> <requires profile="x86-rt-self_install"/>
<requires profile="self_install"/> <requires profile="self_install"/>
</profile> </profile>
<profile name="Base-RT" description="SL Micro with Podman as raw image with uEFI boot" arch="aarch64">
<requires profile="container-host"/>
<requires profile="aarch64-rt"/>
</profile>
<profile name="Base-RT-SelfInstall" description="SL Micro with Podman as raw image with uEFI boot - SelfInstall" arch="aarch64">
<requires profile="container-host"/>
<requires profile="aarch64-rt-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Default-qcow" description="SL Micro with Podman and KVM as raw image for KVM on System z" arch="s390x"> <profile name="Default-qcow" description="SL Micro with Podman and KVM as raw image for KVM on System z" arch="s390x">
<requires profile="full"/> <requires profile="full"/>
<requires profile="s390-kvm"/> <requires profile="s390-kvm"/>
@@ -164,6 +194,14 @@
<requires profile="container-host"/> <requires profile="container-host"/>
<requires profile="s390-fba"/> <requires profile="s390-fba"/>
</profile> </profile>
<profile name="Default-fcp" description="SL Micro with Podman and KVM as raw image for zFCP on System z" arch="s390x">
<requires profile="full"/>
<requires profile="s390-fcp"/>
</profile>
<profile name="Base-fcp" description="SL Micro with Podman as raw image for zFCP on System z" arch="s390x">
<requires profile="container-host"/>
<requires profile="s390-fcp"/>
</profile>
<profile name="Default-legacy" description="SL Micro with Podman as raw image with legacy boot" arch="x86_64"> <profile name="Default-legacy" description="SL Micro with Podman as raw image with legacy boot" arch="x86_64">
<requires profile="full"/> <requires profile="full"/>
<requires profile="x86-legacy"/> <requires profile="x86-legacy"/>
@@ -184,10 +222,47 @@
<requires profile="container-host"/> <requires profile="container-host"/>
<requires profile="aarch64-qcow"/> <requires profile="aarch64-qcow"/>
</profile> </profile>
<profile name="Base-512" description="SL Micro with Podman as raw image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-512ss"/>
</profile>
<profile name="Base-4096" description="SL Micro with Podman as raw image for ppc64le with 4096b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-4096ss"/>
</profile>
<profile name="Base-512-SelfInstall" description="SL Micro with Podman as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-512ss-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Base-4096-SelfInstall" description="SL Micro with Podman as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="container-host"/>
<requires profile="ppc64le-4096ss-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Default-512" description="SL Micro with Podman and KVM as raw image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-512ss"/>
</profile>
<profile name="Default-4096" description="SL Micro with Podman and KVM as raw image for ppc64le with 4096b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-4096ss"/>
</profile>
<profile name="Default-512-SelfInstall" description="SL Micro with Podman and KVM as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-512ss-self_install"/>
<requires profile="self_install"/>
</profile>
<profile name="Default-4096-SelfInstall" description="SL Micro with Podman and KVM as self-install image for ppc64le with 512b sector size" arch="ppc64le">
<requires profile="full"/>
<requires profile="ppc64le-4096ss-self_install"/>
<requires profile="self_install"/>
</profile>
</profiles> </profiles>
<preferences profiles="x86-encrypted,x86-rt-encrypted"> <preferences profiles="x86-encrypted,x86-rt-encrypted">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -198,7 +273,7 @@
initrd_system="dracut" initrd_system="dracut"
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@@ -213,7 +288,7 @@
efipartsize="200" efipartsize="200"
> >
<luksformat> <luksformat>
<option name="--cipher" value="aes"/> <option name="--cipher" value="aes-xts-plain64"/>
</luksformat> </luksformat>
<bootloader name="grub2" console="gfxterm" use_disk_password="true" /> <bootloader name="grub2" console="gfxterm" use_disk_password="true" />
<systemdisk> <systemdisk>
@@ -232,7 +307,7 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="x86,x86-rt"> <preferences profiles="x86,x86-rt">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -243,7 +318,7 @@
initrd_system="dracut" initrd_system="dracut"
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@@ -270,7 +345,7 @@
</preferences> </preferences>
<preferences profiles="x86-self_install,x86-rt-self_install"> <preferences profiles="x86-self_install,x86-rt-self_install">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -280,11 +355,12 @@
image="oem" image="oem"
initrd_system="dracut" initrd_system="dracut"
installiso="true" installiso="true"
installpxe="true"
filesystem="btrfs" filesystem="btrfs"
installboot="install" installboot="install"
install_continue_on_timeout="false" install_continue_on_timeout="false"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@@ -310,8 +386,8 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="rpi"> <preferences profiles="rpi,aarch64-rt">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -326,7 +402,7 @@
install_continue_on_timeout="false" install_continue_on_timeout="false"
fsmountoptions="noatime" fsmountoptions="noatime"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200n8 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0"
bootpartition="false" bootpartition="false"
devicepersistency="by-uuid" devicepersistency="by-uuid"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
@@ -350,8 +426,8 @@
</systemdisk> </systemdisk>
</type> </type>
</preferences> </preferences>
<preferences profiles="aarch64-self_install"> <preferences profiles="aarch64-self_install,aarch64-rt-self_install">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -361,12 +437,13 @@
image="oem" image="oem"
initrd_system="dracut" initrd_system="dracut"
installiso="true" installiso="true"
installpxe="true"
filesystem="btrfs" filesystem="btrfs"
installboot="install" installboot="install"
install_continue_on_timeout="false" install_continue_on_timeout="false"
firmware="uefi" firmware="uefi"
efipartsize="128" efipartsize="128"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0" kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@@ -391,22 +468,22 @@
</preferences> </preferences>
<preferences profiles="s390-kvm"> <preferences profiles="s390-kvm">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs> <rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale> <locale>en_US</locale>
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type <type
image="oem" image="oem"
filesystem="btrfs" filesystem="btrfs"
bootpartition="true" bootpartition="true"
bootpartsize="300" bootpartsize="300"
bootfilesystem="ext2" bootfilesystem="ext4"
initrd_system="dracut" initrd_system="dracut"
format="qcow2" format="qcow2"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet" kernelcmdline="security=selinux selinux=1 quiet systemd.show_status=1 ignition.platform.id=metal"
devicepersistency="by-uuid" devicepersistency="by-uuid"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true" btrfs_root_is_readonly_snapshot="true"
@@ -429,7 +506,7 @@
<preferences profiles="s390-dasd"> <preferences profiles="s390-dasd">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -440,9 +517,9 @@
filesystem="btrfs" filesystem="btrfs"
bootpartition="true" bootpartition="true"
bootpartsize="300" bootpartsize="300"
bootfilesystem="ext2" bootfilesystem="ext4"
initrd_system="dracut" initrd_system="dracut"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet" kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1"
devicepersistency="by-uuid" devicepersistency="by-uuid"
target_blocksize="4096" target_blocksize="4096"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
@@ -467,7 +544,7 @@
<preferences profiles="s390-fba"> <preferences profiles="s390-fba">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -478,9 +555,9 @@
filesystem="btrfs" filesystem="btrfs"
bootpartition="true" bootpartition="true"
bootpartsize="300" bootpartsize="300"
bootfilesystem="ext2" bootfilesystem="ext4"
initrd_system="dracut" initrd_system="dracut"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet" kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1"
devicepersistency="by-uuid" devicepersistency="by-uuid"
btrfs_root_is_snapshot="true" btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true" btrfs_root_is_readonly_snapshot="true"
@@ -501,9 +578,47 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="s390-fcp">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<type
image="oem"
filesystem="btrfs"
installpxe="true"
bootpartition="true"
bootpartsize="300"
bootfilesystem="ext4"
initrd_system="dracut"
kernelcmdline="hvc_iucv=8 TERM=dumb security=selinux selinux=1 quiet systemd.show_status=1"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<oemconfig>
<oem-multipath-scan>true</oem-multipath-scan>
</oemconfig>
<bootloader name="grub2_s390x_emu" console="serial" timeout="3" targettype="SCSI"/>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/s390x-emu" mountpoint="boot/grub2/s390x-emu"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
<size unit="G">5</size>
</type>
</preferences>
<preferences profiles="x86-vmware"> <preferences profiles="x86-vmware">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -538,7 +653,7 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="x86-qcow"> <preferences profiles="x86-qcow">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -549,7 +664,7 @@
format="qcow2" format="qcow2"
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=qemu" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=qemu"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@@ -577,7 +692,7 @@
</preferences> </preferences>
<preferences profiles="aarch64-qcow"> <preferences profiles="aarch64-qcow">
<version>6.0</version> <version>6.1</version>
<packagemanager>zypper</packagemanager> <packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme> <bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme> <bootloader-theme>SLE</bootloader-theme>
@@ -589,7 +704,7 @@
filesystem="btrfs" filesystem="btrfs"
firmware="uefi" firmware="uefi"
efipartsize="128" efipartsize="128"
kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=qemu" kernelcmdline="console=ttyS0,115200 console=tty0 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=qemu"
bootpartition="false" bootpartition="false"
bootkernel="custom" bootkernel="custom"
devicepersistency="by-uuid" devicepersistency="by-uuid"
@@ -600,7 +715,7 @@
<systemdisk> <systemdisk>
<volume name="home"/> <volume name="home"/>
<volume name="root"/> <volume name="root"/>
<volume name="opt"/> <volume name="opt"/>
<volume name="srv"/> <volume name="srv"/>
<volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/> <volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi"/>
<volume name="boot/writable"/> <volume name="boot/writable"/>
@@ -611,6 +726,161 @@
</type> </type>
</preferences> </preferences>
<preferences profiles="ppc64le-512ss">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<preferences profiles="ppc64le-4096ss">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- TODO: supposedly this is needed as type attribute, but kiwi needs patching
disk_start_sector="256" -->
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
target_blocksize="4096"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<preferences profiles="ppc64le-512ss-self_install">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
installiso="true"
installpxe="true"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<installmedia>
<initrd action="omit">
<dracut module="drm"/>
</initrd>
</installmedia>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<preferences profiles="ppc64le-4096ss-self_install">
<version>6.1</version>
<packagemanager>zypper</packagemanager>
<bootsplash-theme>SLE</bootsplash-theme>
<bootloader-theme>SLE</bootloader-theme>
<rpm-excludedocs>true</rpm-excludedocs>
<locale>en_US</locale>
<!-- TODO: supposedly this is needed as type attribute, but kiwi needs patching
disk_start_sector="256" -->
<!-- Use ignition.platform.id=metal to avoid bsc#1227689 -->
<type
image="oem"
installiso="true"
installpxe="true"
target_blocksize="4096"
filesystem="btrfs"
firmware="ofw"
kernelcmdline="console=hvc0,115200 security=selinux selinux=1 quiet systemd.show_status=1 net.ifnames=0 ignition.platform.id=metal"
bootpartition="false"
bootkernel="custom"
devicepersistency="by-uuid"
btrfs_root_is_snapshot="true"
btrfs_root_is_readonly_snapshot="true"
btrfs_quota_groups="true"
>
<installmedia>
<initrd action="omit">
<dracut module="drm"/>
</initrd>
</installmedia>
<systemdisk>
<volume name="home"/>
<volume name="root"/>
<!-- on tmpfs jsc#SMO-2 <volume name="tmp"/> -->
<volume name="opt"/>
<volume name="srv"/>
<volume name="boot/grub2/powerpc-ieee1275"/>
<volume name="boot/writable"/>
<volume name="usr/local"/>
<volume name="var" copy_on_write="false"/>
</systemdisk>
</type>
</preferences>
<repository type="rpm-md" > <repository type="rpm-md" >
<source path='obsrepositories:/'/> <source path='obsrepositories:/'/>
</repository> </repository>
@@ -655,8 +925,6 @@
<package name="patterns-base-transactional"/> <package name="patterns-base-transactional"/>
<namedCollection name="container_runtime_podman"/> <namedCollection name="container_runtime_podman"/>
<package name="patterns-container-runtime_podman"/> <package name="patterns-container-runtime_podman"/>
<namedCollection name="cockpit"/>
<package name="patterns-base-cockpit"/>
<namedCollection name="selinux"/> <namedCollection name="selinux"/>
<package name="patterns-base-selinux"/> <package name="patterns-base-selinux"/>
<package name="suseconnect-ng"/> <package name="suseconnect-ng"/>
@@ -720,7 +988,8 @@
<package name="grub2-x86_64-efi" arch="x86_64"/> <package name="grub2-x86_64-efi" arch="x86_64"/>
<package name="grub2-arm64-efi" arch="aarch64"/> <package name="grub2-arm64-efi" arch="aarch64"/>
<package name="grub2-s390x-emu" arch="s390x"/> <package name="grub2-s390x-emu" arch="s390x"/>
<package name="grub2-branding-SLE" bootinclude="true" arch="x86_64,aarch64"/> <package name="grub2-powerpc-ieee1275" arch="ppc64le"/>
<package name="grub2-branding-SLE" bootinclude="true" arch="x86_64,aarch64,ppc64le"/>
<package name="grub2-snapper-plugin"/> <package name="grub2-snapper-plugin"/>
<package name="shim" arch="x86_64,aarch64"/> <package name="shim" arch="x86_64,aarch64"/>
<package name="mokutil" arch="x86_64,aarch64"/> <package name="mokutil" arch="x86_64,aarch64"/>
@@ -728,46 +997,44 @@
<package name="kpartx" arch="s390x"/>--> <!-- previous releases picked it always, now kiwi picks partx instead --> <package name="kpartx" arch="s390x"/>--> <!-- previous releases picked it always, now kiwi picks partx instead -->
</packages> </packages>
<!-- rpi kernel-default-base does not provide all necessary drivers --> <!-- rpi kernel-default-base does not provide all necessary drivers -->
<packages type="image" profiles="x86,x86-encrypted,x86-legacy,x86-self_install,x86-vmware,x86-qcow,aarch64-qcow,s390-kvm,s390-dasd,s390-fba"> <packages type="image" profiles="rpi,aarch64-self_install,x86,x86-encrypted,x86-legacy,x86-self_install,x86-vmware,x86-qcow,aarch64-qcow,s390-kvm,s390-dasd,s390-fba,s390-fcp,ppc64le-512ss,ppc64le-4096ss,ppc64le-512ss-self_install,ppc64le-4096ss-self_install">
<package name="kernel-default"/> <package name="kernel-default"/>
<package name="kernel-firmware-all"/> <package name="kernel-firmware-all"/>
</packages> </packages>
<packages type="image" profiles="x86-rt,x86-rt-self_install,x86-rt-encrypted"> <packages type="image" profiles="x86-rt,x86-rt-self_install,x86-rt-encrypted,aarch64-rt,aarch64-rt-self_install">
<package name="kernel-rt"/> <package name="kernel-rt"/>
<package name="kernel-firmware-all"/> <package name="kernel-firmware-all"/>
<!-- FIXME intentionally removed from ALP code stream <!-- FIXME intentionally removed from ALP code stream
<package name="cpuset"/> --> <package name="cpuset"/> -->
</packages> </packages>
<!-- makes the image build, but also include kernel-default <packages type="image" profiles="s390-kvm,s390-dasd,s390-fba,s390-fcp">
<packages type="image" profiles="x86-rt-encrypted"> <package name="dracut-kiwi-oem-dump"/>
<package name="kernel-default-extra"/>
</packages> -->
<packages type="image" profiles="s390-kvm,s390-dasd,s390-fba">
<package name="dracut-kiwi-oem-repart"/> <package name="dracut-kiwi-oem-repart"/>
<package name="blog"/> <package name="blog"/>
</packages> </packages>
<packages type="image" profiles="x86,x86-encrypted,x86-rt-encrypted,x86-self_install,x86-legacy,x86-vmware,x86-rt,x86-rt-self_install,x86-qcow,aarch64-qcow,rpi,aarch64-self_install"> <!-- FCP is usually used multipathed. -->
<packages type="image" profiles="s390-fcp">
<package name="multipath-tools"/>
</packages>
<packages type="image" profiles="x86,x86-encrypted,x86-rt-encrypted,x86-self_install,x86-legacy,x86-vmware,x86-rt,x86-rt-self_install,x86-qcow,aarch64-qcow,rpi,aarch64-self_install,aarch64-rt,aarch64-rt-self_install,ppc64le-512ss,ppc64le-4096ss,ppc64le-512ss-self_install,ppc64le-4096ss-self_install">
<package name="dracut-kiwi-oem-repart"/> <package name="dracut-kiwi-oem-repart"/>
<package name="dracut-kiwi-oem-dump"/> <package name="dracut-kiwi-oem-dump"/>
</packages> </packages>
<packages type="image" profiles="rpi,aarch64-self_install"> <packages type="image" profiles="rpi,aarch64-self_install,aarch64-rt,aarch64-rt-self_install">
<package name="raspberrypi-firmware" arch="aarch64"/> <package name="raspberrypi-firmware" arch="aarch64"/>
<package name="raspberrypi-firmware-config" arch="aarch64"/> <package name="raspberrypi-firmware-config" arch="aarch64"/>
<package name="raspberrypi-firmware-dt" arch="aarch64"/> <package name="raspberrypi-firmware-dt" arch="aarch64"/>
<package name="u-boot-rpiarm64" arch="aarch64"/> <package name="u-boot-rpiarm64" arch="aarch64"/>
<package name="dracut-kiwi-oem-repart"/> <package name="dracut-kiwi-oem-repart"/>
<package name="bcm43xx-firmware"/> <package name="bcm43xx-firmware"/>
<package name="kernel-firmware-all"/><!-- Fix choice between kernel-firmware and kernel-firmware-all -->
<package name="wireless-regdb"/> <package name="wireless-regdb"/>
<package name="wireless-tools"/> <package name="wireless-tools"/>
<package name="wpa_supplicant"/> <package name="wpa_supplicant"/>
<package name="grub2-arm64-efi"/> <package name="grub2-arm64-efi"/>
<!-- kernel-default-base does not have all required drivers -->
<package name="kernel-default"/>
</packages> </packages>
<packages type="bootstrap"> <packages type="bootstrap">
<package name="coreutils"/>
<package name="filesystem"/> <package name="filesystem"/>
<package name="coreutils"/>
<package name="ca-certificates"/> <package name="ca-certificates"/>
<package name="ca-certificates-mozilla"/> <package name="ca-certificates-mozilla"/>
</packages> </packages>
@@ -781,4 +1048,14 @@
<packages type="image" profiles="x86-qcow,aarch64-qcow"> <packages type="image" profiles="x86-qcow,aarch64-qcow">
<package name="qemu-guest-agent"/> <package name="qemu-guest-agent"/>
</packages> </packages>
<!-- jsc#PED-8599 -->
<packages type="image" profiles="Base,Base-encrypted,Base-RT,Base-RT-encrypted,Base-fba,Base-dasd,Base-fcp,Base-512,Base-4096,Default,Default-encrypted,Default-fba,Default-dasd,Default-fcp,Default-512,Default-4096">
<package name="usbguard"/>
</packages>
<!-- jsc#PED-8788 -->
<packages type="image" profiles="Base-RT,Base-RT-encrypted,x86-rt-encrypted,x86-rt,x86-rt-self_install,aarch64-rt,aarch64-rt-self_install">
<package name="stalld"/>
</packages>
</image> </image>

View File

@@ -16,14 +16,4 @@
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param> <param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
<param name="var">SUPPORT_LEVEL</param> <param name="var">SUPPORT_LEVEL</param>
</service> </service>
<service mode="buildtime" name="replace_using_package_version">
<param name="file">Dockerfile</param>
<param name="regex">%%kiwi_version%%</param>
<param name="package">python3-kiwi</param>
</service>
<service mode="buildtime" name="replace_using_package_version">
<param name="file">README</param>
<param name="regex">%%kiwi_version%%</param>
<param name="package">python3-kiwi</param>
</service>
</services> </services>

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# Permission is hereby granted, free of charge, to any person obtaining a copy # Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal # of this software and associated documentation files (the "Software"), to deal
@@ -27,9 +27,9 @@ LARGEBLOCK=false
# Print usage # Print usage
usage(){ usage(){
cat <<-EOF cat <<-EOF
============================== =====================================
SLE Micro 6.0 Kiwi SDK Builder SUSE Linux Micro 6.1 Kiwi SDK Builder
============================== =====================================
Usage: ${0} [-p <profile>] [-b] Usage: ${0} [-p <profile>] [-b]

View File

@@ -35,14 +35,6 @@ mkdir /var/lib/misc/reconfig_system
#-------------------------------------- #--------------------------------------
echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..." echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..."
#======================================
# This is a workaround - someone,
# somewhere needs to load the xts crypto
# module, otherwise luksOpen will fail while
# creating the image.
#--------------------------------------
modprobe xts || true
#====================================== #======================================
# add missing fonts # add missing fonts
#-------------------------------------- #--------------------------------------
@@ -139,9 +131,6 @@ for i in /usr/lib/rpm/gnupg/keys/gpg-pubkey*asc; do
rpm --import $i || true rpm --import $i || true
done done
# Temporary workaround for bsc#1212187
echo "techpreview.ZYPP_MEDIANETWORK=1" >> /etc/zypp/zypp.conf
#====================================== #======================================
# Enable kubelet if installed # Enable kubelet if installed
#-------------------------------------- #--------------------------------------
@@ -170,8 +159,18 @@ if [ "${kiwi_btrfs_root_is_snapshot-false}" = 'true' ]; then
sed -i'' 's/^NUMBER_LIMIT_IMPORTANT=.*$/NUMBER_LIMIT_IMPORTANT="4-10"/g' /etc/snapper/configs/root sed -i'' 's/^NUMBER_LIMIT_IMPORTANT=.*$/NUMBER_LIMIT_IMPORTANT="4-10"/g' /etc/snapper/configs/root
fi fi
# Enable jeos-firstboot if installed, disabled by combustion/ignition # Enable multipathd for MP images
if rpm -q --whatprovides jeos-firstboot >/dev/null; then if [ "${kiwi_oemmultipath_scan-false}" = 'true' ]; then
systemctl enable multipathd.service
fi
# On those s390 targets the console is not capable of running jeos-firstboot,
# use systemd-firstboot as minimal alternative.
if [[ "$kiwi_profiles" =~ s390-(dasd|fba|fcp) ]]; then
systemctl enable systemd-firstboot
# Enable prompting for the root password
echo 'root:!unprovisioned' | chpasswd -e
elif rpm -q --whatprovides jeos-firstboot >/dev/null; then
mkdir -p /var/lib/YaST2 mkdir -p /var/lib/YaST2
touch /var/lib/YaST2/reconfig_system touch /var/lib/YaST2/reconfig_system
systemctl enable jeos-firstboot.service systemctl enable jeos-firstboot.service
@@ -281,7 +280,7 @@ if [[ "$kiwi_profiles" == *"RaspberryPi"* ]]; then
options smsc95xx turbo_mode=N options smsc95xx turbo_mode=N
EOF EOF
cat > /usr/lib/sysctl.d/50-rpi3.conf <<-EOF cat > /etc/sysctl.d/50-rpi3.conf <<-EOF
# Avoid running out of DMA pages for smsc95xx (bsc#1012449) # Avoid running out of DMA pages for smsc95xx (bsc#1012449)
vm.min_free_kbytes = 2048 vm.min_free_kbytes = 2048
EOF EOF

View File

@@ -1,9 +1,9 @@
#!BuildTag: %%IMG_PREFIX%%kubevirt-chart:%%CHART_MAJOR%%.0.0_up0.4.0-%RELEASE% #!BuildTag: %%IMG_PREFIX%%kubevirt-chart:%%CHART_MAJOR%%.0.0_up0.5.0-%RELEASE%
#!BuildTag: %%IMG_PREFIX%%kubevirt-chart:%%CHART_MAJOR%%.0.0_up0.4.0 #!BuildTag: %%IMG_PREFIX%%kubevirt-chart:%%CHART_MAJOR%%.0.0_up0.5.0
apiVersion: v2 apiVersion: v2
appVersion: 1.3.1 appVersion: 1.4.0
description: A Helm chart for KubeVirt description: A Helm chart for KubeVirt
icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/kubevirt/icon/color/kubevirt-icon-color.svg icon: https://raw.githubusercontent.com/cncf/artwork/main/projects/kubevirt/icon/color/kubevirt-icon-color.svg
name: kubevirt name: kubevirt
type: application type: application
version: "%%CHART_MAJOR%%.0.0+up0.4.0" version: "%%CHART_MAJOR%%.0.0+up0.5.0"

View File

@@ -231,6 +231,17 @@ spec:
type: object type: object
type: object type: object
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
commonInstancetypesDeployment:
description: CommonInstancetypesDeployment controls the deployment
of common-instancetypes resources
nullable: true
properties:
enabled:
description: Enabled controls the deployment of common-instancetypes
resources, defaults to True.
nullable: true
type: boolean
type: object
controllerConfiguration: controllerConfiguration:
description: |- description: |-
ReloadableComponentConfiguration holds all generic k8s configuration options which can ReloadableComponentConfiguration holds all generic k8s configuration options which can
@@ -412,6 +423,23 @@ spec:
description: PullPolicy describes a policy for if/when to pull description: PullPolicy describes a policy for if/when to pull
a container image a container image
type: string type: string
instancetype:
description: Instancetype configuration
nullable: true
properties:
referencePolicy:
description: |-
ReferencePolicy defines how an instance type or preference should be referenced by the VM after submission, supported values are:
reference (default) - Where a copy of the original object is stashed in a ControllerRevision and referenced by the VM.
expand - Where the instance type or preference are expanded into the VM if no revisionNames have been populated.
expandAll - Where the instance type or preference are expanded into the VM regardless of revisionNames previously being populated.
enum:
- reference
- expand
- expandAll
nullable: true
type: string
type: object
ksmConfiguration: ksmConfiguration:
description: KSMConfiguration holds the information regarding description: KSMConfiguration holds the information regarding
the enabling the KSM in the nodes (if available). the enabling the KSM in the nodes (if available).
@@ -470,8 +498,9 @@ spec:
features features
properties: properties:
maxCpuSockets: maxCpuSockets:
description: MaxCpuSockets holds the maximum amount of sockets description: |-
that can be hotplugged MaxCpuSockets provides a MaxSockets value for VMs that do not provide their own.
For VMs with more sockets than maximum the MaxSockets will be set to equal number of sockets.
format: int32 format: int32
type: integer type: integer
maxGuest: maxGuest:
@@ -577,7 +606,7 @@ spec:
description: |- description: |-
CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take. CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take.
If a live-migration takes longer to migrate than this value multiplied by the size of the VMI, If a live-migration takes longer to migrate than this value multiplied by the size of the VMI,
the migration will be cancelled, unless AllowPostCopy is true. Defaults to 800 the migration will be cancelled, unless AllowPostCopy is true. Defaults to 150
format: int64 format: int64
type: integer type: integer
disableTLS: disableTLS:
@@ -640,34 +669,6 @@ spec:
ComputeResourceOverhead specifies the resource overhead that should be added to the compute container when using the binding. ComputeResourceOverhead specifies the resource overhead that should be added to the compute container when using the binding.
version: v1alphav1 version: v1alphav1
properties: properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry
in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
limits: limits:
additionalProperties: additionalProperties:
anyOf: anyOf:
@@ -696,7 +697,7 @@ spec:
domainAttachmentType: domainAttachmentType:
description: |- description: |-
DomainAttachmentType is a standard domain network attachment method kubevirt supports. DomainAttachmentType is a standard domain network attachment method kubevirt supports.
Supported values: "tap". Supported values: "tap", "managedTap" (since v1.4).
The standard domain attachment can be used instead or in addition to the sidecarImage. The standard domain attachment can be used instead or in addition to the sidecarImage.
version: 1alphav1 version: 1alphav1
type: string type: string
@@ -874,37 +875,10 @@ spec:
usually idle and don't require a lot of memory or cpu. usually idle and don't require a lot of memory or cpu.
properties: properties:
resources: resources:
description: ResourceRequirements describes the compute description: |-
resource requirements. ResourceRequirementsWithoutClaims describes the compute resource requirements.
This struct was taken from the k8s.ResourceRequirements and cleaned up the 'Claims' field.
properties: properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry in
PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
limits: limits:
additionalProperties: additionalProperties:
anyOf: anyOf:
@@ -958,10 +932,8 @@ spec:
MinTLSVersion is a way to specify the minimum protocol version that is acceptable for TLS connections. MinTLSVersion is a way to specify the minimum protocol version that is acceptable for TLS connections.
Protocol versions are based on the following most common TLS configurations: Protocol versions are based on the following most common TLS configurations:
https://ssl-config.mozilla.org/ https://ssl-config.mozilla.org/
Note that SSLv3.0 is not a supported protocol version due to well known Note that SSLv3.0 is not a supported protocol version due to well known
vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE
enum: enum:
@@ -1091,10 +1063,13 @@ spec:
referenced object inside the same namespace. referenced object inside the same namespace.
properties: properties:
name: name:
default: ""
description: |- description: |-
Name of the referent. Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?
type: string type: string
type: object type: object
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
@@ -1411,7 +1386,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -1426,7 +1401,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -1594,7 +1569,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -1609,7 +1584,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -1775,7 +1750,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -1790,7 +1765,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -1958,7 +1933,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -1973,7 +1948,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -2164,7 +2139,6 @@ spec:
BatchEvictionInterval Represents the interval to wait before issuing the next BatchEvictionInterval Represents the interval to wait before issuing the next
batch of shutdowns batch of shutdowns
Defaults to 1 minute Defaults to 1 minute
type: string type: string
batchEvictionSize: batchEvictionSize:
@@ -2172,7 +2146,6 @@ spec:
BatchEvictionSize Represents the number of VMIs that can be forced updated per BatchEvictionSize Represents the number of VMIs that can be forced updated per
the BatchShutdownInteral interval the BatchShutdownInteral interval
Defaults to 10 Defaults to 10
type: integer type: integer
workloadUpdateMethods: workloadUpdateMethods:
@@ -2183,7 +2156,6 @@ spec:
precedence over more disruptive methods. For example if both LiveMigrate and Shutdown precedence over more disruptive methods. For example if both LiveMigrate and Shutdown
methods are listed, only VMs which are not live migratable will be restarted/shutdown methods are listed, only VMs which are not live migratable will be restarted/shutdown
An empty list defaults to no automated workload updating An empty list defaults to no automated workload updating
items: items:
type: string type: string
@@ -2491,7 +2463,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -2506,7 +2478,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -2674,7 +2646,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -2689,7 +2661,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -2855,7 +2827,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -2870,7 +2842,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -3038,7 +3010,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -3053,7 +3025,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -3516,6 +3488,17 @@ spec:
type: object type: object
type: object type: object
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
commonInstancetypesDeployment:
description: CommonInstancetypesDeployment controls the deployment
of common-instancetypes resources
nullable: true
properties:
enabled:
description: Enabled controls the deployment of common-instancetypes
resources, defaults to True.
nullable: true
type: boolean
type: object
controllerConfiguration: controllerConfiguration:
description: |- description: |-
ReloadableComponentConfiguration holds all generic k8s configuration options which can ReloadableComponentConfiguration holds all generic k8s configuration options which can
@@ -3697,6 +3680,23 @@ spec:
description: PullPolicy describes a policy for if/when to pull description: PullPolicy describes a policy for if/when to pull
a container image a container image
type: string type: string
instancetype:
description: Instancetype configuration
nullable: true
properties:
referencePolicy:
description: |-
ReferencePolicy defines how an instance type or preference should be referenced by the VM after submission, supported values are:
reference (default) - Where a copy of the original object is stashed in a ControllerRevision and referenced by the VM.
expand - Where the instance type or preference are expanded into the VM if no revisionNames have been populated.
expandAll - Where the instance type or preference are expanded into the VM regardless of revisionNames previously being populated.
enum:
- reference
- expand
- expandAll
nullable: true
type: string
type: object
ksmConfiguration: ksmConfiguration:
description: KSMConfiguration holds the information regarding description: KSMConfiguration holds the information regarding
the enabling the KSM in the nodes (if available). the enabling the KSM in the nodes (if available).
@@ -3755,8 +3755,9 @@ spec:
features features
properties: properties:
maxCpuSockets: maxCpuSockets:
description: MaxCpuSockets holds the maximum amount of sockets description: |-
that can be hotplugged MaxCpuSockets provides a MaxSockets value for VMs that do not provide their own.
For VMs with more sockets than maximum the MaxSockets will be set to equal number of sockets.
format: int32 format: int32
type: integer type: integer
maxGuest: maxGuest:
@@ -3862,7 +3863,7 @@ spec:
description: |- description: |-
CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take. CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take.
If a live-migration takes longer to migrate than this value multiplied by the size of the VMI, If a live-migration takes longer to migrate than this value multiplied by the size of the VMI,
the migration will be cancelled, unless AllowPostCopy is true. Defaults to 800 the migration will be cancelled, unless AllowPostCopy is true. Defaults to 150
format: int64 format: int64
type: integer type: integer
disableTLS: disableTLS:
@@ -3925,34 +3926,6 @@ spec:
ComputeResourceOverhead specifies the resource overhead that should be added to the compute container when using the binding. ComputeResourceOverhead specifies the resource overhead that should be added to the compute container when using the binding.
version: v1alphav1 version: v1alphav1
properties: properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry
in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
limits: limits:
additionalProperties: additionalProperties:
anyOf: anyOf:
@@ -3981,7 +3954,7 @@ spec:
domainAttachmentType: domainAttachmentType:
description: |- description: |-
DomainAttachmentType is a standard domain network attachment method kubevirt supports. DomainAttachmentType is a standard domain network attachment method kubevirt supports.
Supported values: "tap". Supported values: "tap", "managedTap" (since v1.4).
The standard domain attachment can be used instead or in addition to the sidecarImage. The standard domain attachment can be used instead or in addition to the sidecarImage.
version: 1alphav1 version: 1alphav1
type: string type: string
@@ -4159,37 +4132,10 @@ spec:
usually idle and don't require a lot of memory or cpu. usually idle and don't require a lot of memory or cpu.
properties: properties:
resources: resources:
description: ResourceRequirements describes the compute description: |-
resource requirements. ResourceRequirementsWithoutClaims describes the compute resource requirements.
This struct was taken from the k8s.ResourceRequirements and cleaned up the 'Claims' field.
properties: properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry in
PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
limits: limits:
additionalProperties: additionalProperties:
anyOf: anyOf:
@@ -4243,10 +4189,8 @@ spec:
MinTLSVersion is a way to specify the minimum protocol version that is acceptable for TLS connections. MinTLSVersion is a way to specify the minimum protocol version that is acceptable for TLS connections.
Protocol versions are based on the following most common TLS configurations: Protocol versions are based on the following most common TLS configurations:
https://ssl-config.mozilla.org/ https://ssl-config.mozilla.org/
Note that SSLv3.0 is not a supported protocol version due to well known Note that SSLv3.0 is not a supported protocol version due to well known
vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE
enum: enum:
@@ -4376,10 +4320,13 @@ spec:
referenced object inside the same namespace. referenced object inside the same namespace.
properties: properties:
name: name:
default: ""
description: |- description: |-
Name of the referent. Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?
type: string type: string
type: object type: object
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
@@ -4696,7 +4643,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -4711,7 +4658,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -4879,7 +4826,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -4894,7 +4841,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -5060,7 +5007,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -5075,7 +5022,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -5243,7 +5190,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -5258,7 +5205,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -5449,7 +5396,6 @@ spec:
BatchEvictionInterval Represents the interval to wait before issuing the next BatchEvictionInterval Represents the interval to wait before issuing the next
batch of shutdowns batch of shutdowns
Defaults to 1 minute Defaults to 1 minute
type: string type: string
batchEvictionSize: batchEvictionSize:
@@ -5457,7 +5403,6 @@ spec:
BatchEvictionSize Represents the number of VMIs that can be forced updated per BatchEvictionSize Represents the number of VMIs that can be forced updated per
the BatchShutdownInteral interval the BatchShutdownInteral interval
Defaults to 10 Defaults to 10
type: integer type: integer
workloadUpdateMethods: workloadUpdateMethods:
@@ -5468,7 +5413,6 @@ spec:
precedence over more disruptive methods. For example if both LiveMigrate and Shutdown precedence over more disruptive methods. For example if both LiveMigrate and Shutdown
methods are listed, only VMs which are not live migratable will be restarted/shutdown methods are listed, only VMs which are not live migratable will be restarted/shutdown
An empty list defaults to no automated workload updating An empty list defaults to no automated workload updating
items: items:
type: string type: string
@@ -5776,7 +5720,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -5791,7 +5735,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -5959,7 +5903,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -5974,7 +5918,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -6140,7 +6084,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -6155,7 +6099,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -6323,7 +6267,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set. Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array
@@ -6338,7 +6282,7 @@ spec:
pod labels will be ignored. The default value is empty. pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items: items:
type: string type: string
type: array type: array

View File

@@ -606,15 +606,35 @@ rules:
- apiGroups: - apiGroups:
- snapshot.kubevirt.io - snapshot.kubevirt.io
resources: resources:
- '*' - virtualmachinesnapshots
- virtualmachinesnapshots/status
- virtualmachinesnapshotcontents
- virtualmachinesnapshotcontents/status
- virtualmachinesnapshotcontents/finalizers
- virtualmachinerestores
- virtualmachinerestores/status
verbs: verbs:
- '*' - get
- list
- watch
- create
- update
- delete
- patch
- apiGroups: - apiGroups:
- export.kubevirt.io - export.kubevirt.io
resources: resources:
- '*' - virtualmachineexports
- virtualmachineexports/status
- virtualmachineexports/finalizers
verbs: verbs:
- '*' - get
- list
- watch
- create
- update
- delete
- patch
- apiGroups: - apiGroups:
- pool.kubevirt.io - pool.kubevirt.io
resources: resources:
@@ -636,6 +656,12 @@ rules:
- '*' - '*'
verbs: verbs:
- '*' - '*'
- apiGroups:
- kubevirt.io
resources:
- virtualmachines/finalizers
verbs:
- update
- apiGroups: - apiGroups:
- subresources.kubevirt.io - subresources.kubevirt.io
resources: resources:
@@ -844,6 +870,7 @@ rules:
- virtualmachineinstances/userlist - virtualmachineinstances/userlist
- virtualmachineinstances/sev/fetchcertchain - virtualmachineinstances/sev/fetchcertchain
- virtualmachineinstances/sev/querylaunchmeasurement - virtualmachineinstances/sev/querylaunchmeasurement
- virtualmachineinstances/usbredir
verbs: verbs:
- get - get
- apiGroups: - apiGroups:
@@ -992,6 +1019,7 @@ rules:
- virtualmachineinstances/userlist - virtualmachineinstances/userlist
- virtualmachineinstances/sev/fetchcertchain - virtualmachineinstances/sev/fetchcertchain
- virtualmachineinstances/sev/querylaunchmeasurement - virtualmachineinstances/sev/querylaunchmeasurement
- virtualmachineinstances/usbredir
verbs: verbs:
- get - get
- apiGroups: - apiGroups:
@@ -1264,7 +1292,7 @@ metadata:
name: virt-operator name: virt-operator
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
spec: spec:
replicas: 2 replicas: {{ .Values.operator.replicas }}
selector: selector:
matchLabels: matchLabels:
kubevirt.io: virt-operator kubevirt.io: virt-operator
@@ -1279,17 +1307,7 @@ spec:
name: virt-operator name: virt-operator
spec: spec:
affinity: affinity:
podAntiAffinity: {{- .Values.operator.affinity | toYaml | nindent 8 }}
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: kubevirt.io
operator: In
values:
- virt-operator
topologyKey: kubernetes.io/hostname
weight: 1
containers: containers:
- args: - args:
- --port - --port
@@ -1325,9 +1343,7 @@ spec:
initialDelaySeconds: 5 initialDelaySeconds: 5
timeoutSeconds: 10 timeoutSeconds: 10
resources: resources:
requests: {{- .Values.operator.resources | toYaml | nindent 12 }}
cpu: 10m
memory: 450Mi
securityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:

View File

@@ -20,6 +20,10 @@ spec:
{{- if .Values.kubevirt.uninstallStrategy }} {{- if .Values.kubevirt.uninstallStrategy }}
uninstallStrategy: {{ .Values.kubevirt.uninstallStrategy }} uninstallStrategy: {{ .Values.kubevirt.uninstallStrategy }}
{{- end }} {{- end }}
{{- with .Values.kubevirt.workloads }}
workloads:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.kubevirt.workloadUpdateStrategy }} {{- with .Values.kubevirt.workloadUpdateStrategy }}
workloadUpdateStrategy: workloadUpdateStrategy:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}

View File

@@ -1,7 +1,24 @@
operator: operator:
image: registry.suse.com/suse/sles/15.6/virt-operator image: registry.suse.com/suse/sles/15.6/virt-operator
version: 1.3.1-150600.5.9.1 version: 1.4.0-150600.5.15.1
replicas: 2
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: kubevirt.io
operator: In
values:
- virt-operator
topologyKey: kubernetes.io/hostname
weight: 1
resources:
requests:
cpu: 10m
memory: 450Mi
kubevirt: kubevirt:
# Holds kubevirt configurations. Same as the virt-configMap. # Holds kubevirt configurations. Same as the virt-configMap.
@@ -14,6 +31,8 @@ kubevirt:
# Specifies if KubeVirt can be deleted if workloads are still present. # Specifies if KubeVirt can be deleted if workloads are still present.
# This is mainly a precaution to avoid accidental data loss. # This is mainly a precaution to avoid accidental data loss.
uninstallStrategy: "" uninstallStrategy: ""
# Selectors and tolerations that should apply to KubeVirt workloads.
workloads: {}
# WorkloadUpdateStrategy defines at the cluster level how to handle automated workload updates. # WorkloadUpdateStrategy defines at the cluster level how to handle automated workload updates.
workloadUpdateStrategy: {} workloadUpdateStrategy: {}
# Optionally enable ServiceMonitor for prometheus, see # Optionally enable ServiceMonitor for prometheus, see

View File

@@ -1,22 +1,22 @@
#!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0 #!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.1
#!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1 #!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.1_up1.3.0
#!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.0_up1.2.1-%RELEASE% #!BuildTag: %%IMG_PREFIX%%kubevirt-dashboard-extension-chart:%%CHART_MAJOR%%.0.1_up1.3.0-%RELEASE%
annotations: annotations:
catalog.cattle.io/certified: rancher catalog.cattle.io/certified: rancher
catalog.cattle.io/display-name: KubeVirt
catalog.cattle.io/kube-version: '>= v1.26.0-0'
catalog.cattle.io/namespace: cattle-ui-plugin-system catalog.cattle.io/namespace: cattle-ui-plugin-system
catalog.cattle.io/os: linux catalog.cattle.io/os: linux
catalog.cattle.io/permits-os: linux, windows catalog.cattle.io/permits-os: linux, windows
catalog.cattle.io/rancher-version: '>= 2.10.0-0'
catalog.cattle.io/scope: management catalog.cattle.io/scope: management
catalog.cattle.io/ui-component: plugins catalog.cattle.io/ui-component: plugins
catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0" catalog.cattle.io/display-name: KubeVirt
catalog.cattle.io/rancher-version: '>= 2.11.0-0'
catalog.cattle.io/ui-extensions-version: '>= 3.0.4 < 4.0.0'
catalog.cattle.io/kube-version: '>= v1.26.0-0'
apiVersion: v2 apiVersion: v2
appVersion: 302.0.0+up1.2.1 appVersion: 303.0.1+up1.3.0
description: 'SUSE Edge: KubeVirt extension for Rancher Dashboard' description: 'SUSE Edge: KubeVirt extension for Rancher Dashboard'
name: kubevirt-dashboard-extension name: kubevirt-dashboard-extension
type: application type: application
version: "%%CHART_MAJOR%%.0.0+up1.2.1" version: "%%CHART_MAJOR%%.0.1+up1.3.0"
icon: >- icon: >-
https://raw.githubusercontent.com/cncf/artwork/master/projects/kubevirt/icon/color/kubevirt-icon-color.svg https://raw.githubusercontent.com/cncf/artwork/master/projects/kubevirt/icon/color/kubevirt-icon-color.svg

View File

@@ -8,7 +8,7 @@ spec:
plugin: plugin:
name: {{ include "extension-server.fullname" . }} name: {{ include "extension-server.fullname" . }}
version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }} version: {{ (semver (default .Chart.AppVersion .Values.plugin.versionOverride)).Original }}
endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/kubevirt-dashboard-extension/302.0.0+up1.2.1 endpoint: https://raw.githubusercontent.com/suse-edge/dashboard-extensions/gh-pages/extensions/kubevirt-dashboard-extension/303.0.1+up1.3.0
noCache: {{ .Values.plugin.noCache }} noCache: {{ .Values.plugin.noCache }}
noAuth: {{ .Values.plugin.noAuth }} noAuth: {{ .Values.plugin.noAuth }}
metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }} metadata: {{ include "extension-server.pluginMetadata" . | indent 6 }}

View File

@@ -7,6 +7,6 @@ plugin:
noAuth: false noAuth: false
metadata: metadata:
catalog.cattle.io/display-name: KubeVirt catalog.cattle.io/display-name: KubeVirt
catalog.cattle.io/rancher-version: ">= 2.10.0-0" catalog.cattle.io/rancher-version: ">= 2.11.0-0"
catalog.cattle.io/ui-extensions-version: ">= 3.0.0 < 4.0.0" catalog.cattle.io/ui-extensions-version: ">= 3.0.4 < 4.0.0"
catalog.cattle.io/kube-version: ">= v1.26.0-0" catalog.cattle.io/kube-version: ">= v1.26.0-0"

View File

@@ -1,16 +1,16 @@
#!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.1_up0.9.4 #!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.2_up0.11.0
#!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.1_up0.9.4-%RELEASE% #!BuildTag: %%IMG_PREFIX%%metal3-chart:%%CHART_MAJOR%%.0.2_up0.11.0-%RELEASE%
apiVersion: v2 apiVersion: v2
appVersion: 0.9.4 appVersion: 0.11.0
dependencies: dependencies:
- alias: metal3-baremetal-operator - alias: metal3-baremetal-operator
name: baremetal-operator name: baremetal-operator
repository: file://./charts/baremetal-operator repository: file://./charts/baremetal-operator
version: 0.6.1 version: 0.9.1
- alias: metal3-ironic - alias: metal3-ironic
name: ironic name: ironic
repository: file://./charts/ironic repository: file://./charts/ironic
version: 0.9.3 version: 0.10.0
- alias: metal3-mariadb - alias: metal3-mariadb
condition: global.enable_mariadb condition: global.enable_mariadb
name: mariadb name: mariadb
@@ -25,4 +25,4 @@ description: A Helm chart that installs all of the dependencies needed for Metal
icon: https://github.com/cncf/artwork/raw/master/projects/metal3/icon/color/metal3-icon-color.svg icon: https://github.com/cncf/artwork/raw/master/projects/metal3/icon/color/metal3-icon-color.svg
name: metal3 name: metal3
type: application type: application
version: "%%CHART_MAJOR%%.0.1+up0.9.4" version: "%%CHART_MAJOR%%.0.2+up0.11.0"

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
appVersion: 0.8.0 appVersion: 0.9.1
description: A Helm chart for baremetal-operator, used by Metal3 description: A Helm chart for baremetal-operator, used by Metal3
name: baremetal-operator name: baremetal-operator
type: application type: application
version: 0.6.1 version: 0.9.1

View File

@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.12.1 controller-gen.kubebuilder.io/version: v0.16.5
labels: labels:
clusterctl.cluster.x-k8s.io: "" clusterctl.cluster.x-k8s.io: ""
name: bmceventsubscriptions.metal3.io name: bmceventsubscriptions.metal3.io
@@ -34,14 +34,19 @@ spec:
description: BMCEventSubscription is the Schema for the fast eventing API description: BMCEventSubscription is the Schema for the fast eventing API
properties: properties:
apiVersion: apiVersion:
description: 'APIVersion defines the versioned schema of this representation description: |-
of an object. Servers should convert recognized schemas to the latest APIVersion defines the versioned schema of this representation of an object.
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string type: string
kind: kind:
description: 'Kind is a string value representing the REST resource this description: |-
object represents. Servers may infer this from the endpoint the client Kind is a string value representing the REST resource this object represents.
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string type: string
metadata: metadata:
type: object type: object
@@ -57,8 +62,9 @@ spec:
description: A reference to a BareMetalHost description: A reference to a BareMetalHost
type: string type: string
httpHeadersRef: httpHeadersRef:
description: A secret containing HTTP headers which should be passed description: |-
along to the Destination when making a request A secret containing HTTP headers which should be passed along to the Destination
when making a request
properties: properties:
name: name:
description: name is unique within a namespace to reference a description: name is unique within a namespace to reference a

View File

@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.12.1 controller-gen.kubebuilder.io/version: v0.16.5
name: dataimages.metal3.io name: dataimages.metal3.io
spec: spec:
group: metal3.io group: metal3.io
@@ -20,14 +20,19 @@ spec:
description: DataImage is the Schema for the dataimages API. description: DataImage is the Schema for the dataimages API.
properties: properties:
apiVersion: apiVersion:
description: 'APIVersion defines the versioned schema of this representation description: |-
of an object. Servers should convert recognized schemas to the latest APIVersion defines the versioned schema of this representation of an object.
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string type: string
kind: kind:
description: 'Kind is a string value representing the REST resource this description: |-
object represents. Servers may infer this from the endpoint the client Kind is a string value representing the REST resource this object represents.
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string type: string
metadata: metadata:
type: object type: object
@@ -35,7 +40,8 @@ spec:
description: DataImageSpec defines the desired state of DataImage. description: DataImageSpec defines the desired state of DataImage.
properties: properties:
url: url:
description: Url is the address of the dataImage that we want to attach description: |-
Url is the address of the dataImage that we want to attach
to a BareMetalHost to a BareMetalHost
type: string type: string
required: required:

View File

@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.12.1 controller-gen.kubebuilder.io/version: v0.16.5
labels: labels:
clusterctl.cluster.x-k8s.io: "" clusterctl.cluster.x-k8s.io: ""
name: firmwareschemas.metal3.io name: firmwareschemas.metal3.io
@@ -22,14 +22,19 @@ spec:
description: FirmwareSchema is the Schema for the firmwareschemas API. description: FirmwareSchema is the Schema for the firmwareschemas API.
properties: properties:
apiVersion: apiVersion:
description: 'APIVersion defines the versioned schema of this representation description: |-
of an object. Servers should convert recognized schemas to the latest APIVersion defines the versioned schema of this representation of an object.
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string type: string
kind: kind:
description: 'Kind is a string value representing the REST resource this description: |-
object represents. Servers may infer this from the endpoint the client Kind is a string value representing the REST resource this object represents.
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string type: string
metadata: metadata:
type: object type: object
@@ -73,8 +78,9 @@ spec:
description: Whether or not this setting is read only. description: Whether or not this setting is read only.
type: boolean type: boolean
unique: unique:
description: Whether or not this setting's value is unique to description: |-
this node, e.g. a serial number. Whether or not this setting's value is unique to this node, e.g.
a serial number.
type: boolean type: boolean
upper_bound: upper_bound:
description: The highest value for an Integer type setting. description: The highest value for an Integer type setting.

View File

@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.12.1 controller-gen.kubebuilder.io/version: v0.16.5
labels: labels:
clusterctl.cluster.x-k8s.io: "" clusterctl.cluster.x-k8s.io: ""
name: hardwaredata.metal3.io name: hardwaredata.metal3.io
@@ -29,14 +29,19 @@ spec:
description: HardwareData is the Schema for the hardwaredata API. description: HardwareData is the Schema for the hardwaredata API.
properties: properties:
apiVersion: apiVersion:
description: 'APIVersion defines the versioned schema of this representation description: |-
of an object. Servers should convert recognized schemas to the latest APIVersion defines the versioned schema of this representation of an object.
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string type: string
kind: kind:
description: 'Kind is a string value representing the REST resource this description: |-
object represents. Servers may infer this from the endpoint the client Kind is a string value representing the REST resource this object represents.
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string type: string
metadata: metadata:
type: object type: object
@@ -47,7 +52,7 @@ spec:
description: The hardware discovered on the host during its inspection. description: The hardware discovered on the host during its inspection.
properties: properties:
cpu: cpu:
description: CPU describes one processor on the host. description: Details of the CPU(s) in the system.
properties: properties:
arch: arch:
type: string type: string
@@ -65,7 +70,7 @@ spec:
type: string type: string
type: object type: object
firmware: firmware:
description: Firmware describes the firmware on the host. description: System firmware information.
properties: properties:
bios: bios:
description: The BIOS for this firmware description: The BIOS for this firmware
@@ -84,14 +89,15 @@ spec:
hostname: hostname:
type: string type: string
nics: nics:
description: List of network interfaces for the host.
items: items:
description: NIC describes one network interface on the host. description: NIC describes one network interface on the host.
properties: properties:
ip: ip:
description: The IP address of the interface. This will description: |-
be an IPv4 or IPv6 address if one is present. If both The IP address of the interface. This will be an IPv4 or IPv6 address
IPv4 and IPv6 addresses are present in a dual-stack environment, if one is present. If both IPv4 and IPv6 addresses are present in a
two nics will be output, one with each IP. dual-stack environment, two nics will be output, one with each IP.
type: string type: string
mac: mac:
description: The device MAC address description: The device MAC address
@@ -134,16 +140,20 @@ spec:
type: object type: object
type: array type: array
ramMebibytes: ramMebibytes:
description: The host's amount of memory in Mebibytes.
type: integer type: integer
storage: storage:
description: List of storage (disk, SSD, etc.) available to the
host.
items: items:
description: Storage describes one storage device (disk, SSD, description: Storage describes one storage device (disk, SSD,
etc.) on the host. etc.) on the host.
properties: properties:
alternateNames: alternateNames:
description: A list of alternate Linux device names of the description: |-
disk, e.g. "/dev/sda". Note that this list is not exhaustive, A list of alternate Linux device names of the disk, e.g. "/dev/sda".
and names may not be stable across reboots. Note that this list is not exhaustive, and names may not be stable
across reboots.
items: items:
type: string type: string
type: array type: array
@@ -154,15 +164,17 @@ spec:
description: Hardware model description: Hardware model
type: string type: string
name: name:
description: A Linux device name of the disk, e.g. "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0". description: |-
This will be a name that is stable across reboots if one A Linux device name of the disk, e.g.
is available. "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0". This will be a name
that is stable across reboots if one is available.
type: string type: string
rotational: rotational:
description: Whether this disk represents rotational storage. description: |-
This field is not recommended for usage, please prefer Whether this disk represents rotational storage.
using 'Type' field instead, this field will be deprecated This field is not recommended for usage, please
eventually. prefer using 'Type' field instead, this field
will be deprecated eventually.
type: boolean type: boolean
serialNumber: serialNumber:
description: The serial number of the device description: The serial number of the device
@@ -193,8 +205,7 @@ spec:
type: object type: object
type: array type: array
systemVendor: systemVendor:
description: HardwareSystemVendor stores details about the whole description: System vendor information.
hardware system.
properties: properties:
manufacturer: manufacturer:
type: string type: string

View File

@@ -3,7 +3,9 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.12.1 controller-gen.kubebuilder.io/version: v0.16.5
labels:
clusterctl.cluster.x-k8s.io: ""
name: hostfirmwarecomponents.metal3.io name: hostfirmwarecomponents.metal3.io
spec: spec:
group: metal3.io group: metal3.io
@@ -21,14 +23,19 @@ spec:
API. API.
properties: properties:
apiVersion: apiVersion:
description: 'APIVersion defines the versioned schema of this representation description: |-
of an object. Servers should convert recognized schemas to the latest APIVersion defines the versioned schema of this representation of an object.
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string type: string
kind: kind:
description: 'Kind is a string value representing the REST resource this description: |-
object represents. Servers may infer this from the endpoint the client Kind is a string value representing the REST resource this object represents.
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string type: string
metadata: metadata:
type: object type: object
@@ -82,43 +89,35 @@ spec:
description: Track whether updates stored in the spec are valid based description: Track whether updates stored in the spec are valid based
on the schema on the schema
items: items:
description: "Condition contains details for one aspect of the current description: Condition contains details for one aspect of the current
state of this API Resource. --- This struct is intended for direct state of this API Resource.
use as an array at the field path .status.conditions. For example,
\n type FooStatus struct{ // Represents the observations of a
foo's current state. // Known .status.conditions.type are: \"Available\",
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
// +listType=map // +listMapKey=type Conditions []metav1.Condition
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties: properties:
lastTransitionTime: lastTransitionTime:
description: lastTransitionTime is the last time the condition description: |-
transitioned from one status to another. This should be when lastTransitionTime is the last time the condition transitioned from one status to another.
the underlying condition changed. If that is not known, then This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
using the time when the API field changed is acceptable.
format: date-time format: date-time
type: string type: string
message: message:
description: message is a human readable message indicating description: |-
details about the transition. This may be an empty string. message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768 maxLength: 32768
type: string type: string
observedGeneration: observedGeneration:
description: observedGeneration represents the .metadata.generation description: |-
that the condition was set based upon. For instance, if .metadata.generation observedGeneration represents the .metadata.generation that the condition was set based upon.
is currently 12, but the .status.conditions[x].observedGeneration For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
is 9, the condition is out of date with respect to the current with respect to the current state of the instance.
state of the instance.
format: int64 format: int64
minimum: 0 minimum: 0
type: integer type: integer
reason: reason:
description: reason contains a programmatic identifier indicating description: |-
the reason for the condition's last transition. Producers reason contains a programmatic identifier indicating the reason for the condition's last transition.
of specific condition types may define expected values and Producers of specific condition types may define expected values and meanings for this field,
meanings for this field, and whether the values are considered and whether the values are considered a guaranteed API.
a guaranteed API. The value should be a CamelCase string. The value should be a CamelCase string.
This field may not be empty. This field may not be empty.
maxLength: 1024 maxLength: 1024
minLength: 1 minLength: 1
@@ -133,10 +132,6 @@ spec:
type: string type: string
type: type:
description: type of condition in CamelCase or in foo.example.com/CamelCase. description: type of condition in CamelCase or in foo.example.com/CamelCase.
--- Many .condition.type values are consistent across resources
like Available, but because arbitrary conditions can be useful
(see .node.status.conditions), the ability to deconflict is
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316 maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string type: string
@@ -156,8 +151,9 @@ spec:
format: date-time format: date-time
type: string type: string
updates: updates:
description: Updates is the list of all firmware components that should description: |-
be updated they are specified via name and url fields. Updates is the list of all firmware components that should be updated
they are specified via name and url fields.
items: items:
description: FirmwareUpdate defines a firmware update specification. description: FirmwareUpdate defines a firmware update specification.
properties: properties:

View File

@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.12.1 controller-gen.kubebuilder.io/version: v0.16.5
labels: labels:
clusterctl.cluster.x-k8s.io: "" clusterctl.cluster.x-k8s.io: ""
name: hostfirmwaresettings.metal3.io name: hostfirmwaresettings.metal3.io
@@ -25,14 +25,19 @@ spec:
API. API.
properties: properties:
apiVersion: apiVersion:
description: 'APIVersion defines the versioned schema of this representation description: |-
of an object. Servers should convert recognized schemas to the latest APIVersion defines the versioned schema of this representation of an object.
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string type: string
kind: kind:
description: 'Kind is a string value representing the REST resource this description: |-
object represents. Servers may infer this from the endpoint the client Kind is a string value representing the REST resource this object represents.
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string type: string
metadata: metadata:
type: object type: object
@@ -59,43 +64,35 @@ spec:
description: Track whether settings stored in the spec are valid based description: Track whether settings stored in the spec are valid based
on the schema on the schema
items: items:
description: "Condition contains details for one aspect of the current description: Condition contains details for one aspect of the current
state of this API Resource. --- This struct is intended for direct state of this API Resource.
use as an array at the field path .status.conditions. For example,
\n type FooStatus struct{ // Represents the observations of a
foo's current state. // Known .status.conditions.type are: \"Available\",
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
// +listType=map // +listMapKey=type Conditions []metav1.Condition
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties: properties:
lastTransitionTime: lastTransitionTime:
description: lastTransitionTime is the last time the condition description: |-
transitioned from one status to another. This should be when lastTransitionTime is the last time the condition transitioned from one status to another.
the underlying condition changed. If that is not known, then This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
using the time when the API field changed is acceptable.
format: date-time format: date-time
type: string type: string
message: message:
description: message is a human readable message indicating description: |-
details about the transition. This may be an empty string. message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768 maxLength: 32768
type: string type: string
observedGeneration: observedGeneration:
description: observedGeneration represents the .metadata.generation description: |-
that the condition was set based upon. For instance, if .metadata.generation observedGeneration represents the .metadata.generation that the condition was set based upon.
is currently 12, but the .status.conditions[x].observedGeneration For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
is 9, the condition is out of date with respect to the current with respect to the current state of the instance.
state of the instance.
format: int64 format: int64
minimum: 0 minimum: 0
type: integer type: integer
reason: reason:
description: reason contains a programmatic identifier indicating description: |-
the reason for the condition's last transition. Producers reason contains a programmatic identifier indicating the reason for the condition's last transition.
of specific condition types may define expected values and Producers of specific condition types may define expected values and meanings for this field,
meanings for this field, and whether the values are considered and whether the values are considered a guaranteed API.
a guaranteed API. The value should be a CamelCase string. The value should be a CamelCase string.
This field may not be empty. This field may not be empty.
maxLength: 1024 maxLength: 1024
minLength: 1 minLength: 1
@@ -110,10 +107,6 @@ spec:
type: string type: string
type: type:
description: type of condition in CamelCase or in foo.example.com/CamelCase. description: type of condition in CamelCase or in foo.example.com/CamelCase.
--- Many .condition.type values are consistent across resources
like Available, but because arbitrary conditions can be useful
(see .node.status.conditions), the ability to deconflict is
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316 maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string type: string
@@ -133,8 +126,9 @@ spec:
format: date-time format: date-time
type: string type: string
schema: schema:
description: FirmwareSchema is a reference to the Schema used to describe description: |-
each FirmwareSetting. By default, this will be a Schema in the same FirmwareSchema is a reference to the Schema used to describe each
FirmwareSetting. By default, this will be a Schema in the same
Namespace as the settings but it can be overwritten in the Spec Namespace as the settings but it can be overwritten in the Spec
properties: properties:
name: name:

View File

@@ -0,0 +1,62 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.5
labels:
clusterctl.cluster.x-k8s.io: ""
name: hostupdatepolicies.metal3.io
spec:
group: metal3.io
names:
kind: HostUpdatePolicy
listKind: HostUpdatePolicyList
plural: hostupdatepolicies
singular: hostupdatepolicy
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: HostUpdatePolicy is the Schema for the hostupdatepolicy API.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: HostUpdatePolicySpec defines the desired state of HostUpdatePolicy.
properties:
firmwareSettings:
description: Defines policy for changing firmware settings
enum:
- onPreparing
- onReboot
type: string
firmwareUpdates:
description: Defines policy for updating firmware
enum:
- onPreparing
- onReboot
type: string
type: object
status:
description: HostUpdatePolicyStatus defines the observed state of HostUpdatePolicy.
type: object
type: object
served: true
storage: true

View File

@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.12.1 controller-gen.kubebuilder.io/version: v0.16.5
labels: labels:
clusterctl.cluster.x-k8s.io: "" clusterctl.cluster.x-k8s.io: ""
name: preprovisioningimages.metal3.io name: preprovisioningimages.metal3.io
@@ -34,14 +34,19 @@ spec:
API. API.
properties: properties:
apiVersion: apiVersion:
description: 'APIVersion defines the versioned schema of this representation description: |-
of an object. Servers should convert recognized schemas to the latest APIVersion defines the versioned schema of this representation of an object.
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string type: string
kind: kind:
description: 'Kind is a string value representing the REST resource this description: |-
object represents. Servers may infer this from the endpoint the client Kind is a string value representing the REST resource this object represents.
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string type: string
metadata: metadata:
type: object type: object
@@ -62,8 +67,9 @@ spec:
to build the image. to build the image.
type: string type: string
networkDataName: networkDataName:
description: networkDataName is the name of a Secret in the local description: |-
namespace that contains network data to build in to the image. networkDataName is the name of a Secret in the local namespace that
contains network data to build in to the image.
type: string type: string
type: object type: object
status: status:
@@ -77,43 +83,35 @@ spec:
conditions: conditions:
description: conditions describe the state of the built image description: conditions describe the state of the built image
items: items:
description: "Condition contains details for one aspect of the current description: Condition contains details for one aspect of the current
state of this API Resource. --- This struct is intended for direct state of this API Resource.
use as an array at the field path .status.conditions. For example,
\n type FooStatus struct{ // Represents the observations of a
foo's current state. // Known .status.conditions.type are: \"Available\",
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
// +listType=map // +listMapKey=type Conditions []metav1.Condition
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties: properties:
lastTransitionTime: lastTransitionTime:
description: lastTransitionTime is the last time the condition description: |-
transitioned from one status to another. This should be when lastTransitionTime is the last time the condition transitioned from one status to another.
the underlying condition changed. If that is not known, then This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
using the time when the API field changed is acceptable.
format: date-time format: date-time
type: string type: string
message: message:
description: message is a human readable message indicating description: |-
details about the transition. This may be an empty string. message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768 maxLength: 32768
type: string type: string
observedGeneration: observedGeneration:
description: observedGeneration represents the .metadata.generation description: |-
that the condition was set based upon. For instance, if .metadata.generation observedGeneration represents the .metadata.generation that the condition was set based upon.
is currently 12, but the .status.conditions[x].observedGeneration For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
is 9, the condition is out of date with respect to the current with respect to the current state of the instance.
state of the instance.
format: int64 format: int64
minimum: 0 minimum: 0
type: integer type: integer
reason: reason:
description: reason contains a programmatic identifier indicating description: |-
the reason for the condition's last transition. Producers reason contains a programmatic identifier indicating the reason for the condition's last transition.
of specific condition types may define expected values and Producers of specific condition types may define expected values and meanings for this field,
meanings for this field, and whether the values are considered and whether the values are considered a guaranteed API.
a guaranteed API. The value should be a CamelCase string. The value should be a CamelCase string.
This field may not be empty. This field may not be empty.
maxLength: 1024 maxLength: 1024
minLength: 1 minLength: 1
@@ -128,10 +126,6 @@ spec:
type: string type: string
type: type:
description: type of condition in CamelCase or in foo.example.com/CamelCase. description: type of condition in CamelCase or in foo.example.com/CamelCase.
--- Many .condition.type values are consistent across resources
like Available, but because arbitrary conditions can be useful
(see .node.status.conditions), the ability to deconflict is
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316 maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string type: string
@@ -147,13 +141,14 @@ spec:
- type - type
x-kubernetes-list-type: map x-kubernetes-list-type: map
extraKernelParams: extraKernelParams:
description: extraKernelParams is a string with extra parameters to description: |-
pass to the kernel when booting the image over network. Only makes extraKernelParams is a string with extra parameters to pass to the
sense for initrd images. kernel when booting the image over network. Only makes sense for initrd images.
type: string type: string
format: format:
description: 'format is the type of image that is available at the description: |-
download url: either iso or initrd.' format is the type of image that is available at the download url:
either iso or initrd.
enum: enum:
- iso - iso
- initrd - initrd
@@ -163,12 +158,14 @@ spec:
downloaded. downloaded.
type: string type: string
kernelUrl: kernelUrl:
description: kernelUrl is the URL from which the kernel of the image description: |-
can be downloaded. Only makes sense for initrd images. kernelUrl is the URL from which the kernel of the image can be downloaded.
Only makes sense for initrd images.
type: string type: string
networkData: networkData:
description: networkData is a reference to the version of the Secret description: |-
containing the network data used to build the image. networkData is a reference to the version of the Secret containing the
network data used to build the image.
properties: properties:
name: name:
type: string type: string

View File

@@ -184,3 +184,23 @@ rules:
- get - get
- patch - patch
- update - update
- apiGroups:
- metal3.io
resources:
- hostupdatepolicies
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- metal3.io
resources:
- hostupdatepolicies/status
verbs:
- get
- patch
- update

View File

@@ -5,6 +5,7 @@
{{- $ironicApiHost := print $ironicIP ":6385" }} {{- $ironicApiHost := print $ironicIP ":6385" }}
{{- $ironicBootHost := print $ironicIP ":6180" }} {{- $ironicBootHost := print $ironicIP ":6180" }}
{{- $ironicCacheHost := print $ironicIP ":6180" }} {{- $ironicCacheHost := print $ironicIP ":6180" }}
{{- $deployArch := .Values.global.deployArchitecture }}
apiVersion: v1 apiVersion: v1
data: data:
@@ -19,8 +20,9 @@ data:
{{- $protocol = "http" }} {{- $protocol = "http" }}
{{- end }} {{- end }}
CACHEURL: "{{ $protocol }}://{{ $ironicCacheHost }}/images" CACHEURL: "{{ $protocol }}://{{ $ironicCacheHost }}/images"
DEPLOY_KERNEL_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent.kernel" DEPLOY_KERNEL_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.kernel"
DEPLOY_RAMDISK_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent.initramfs" DEPLOY_RAMDISK_URL: "{{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.initramfs"
DEPLOY_ARCHITECTURE: "{{ $deployArch }}"
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: baremetal-operator-ironic name: baremetal-operator-ironic

View File

@@ -24,8 +24,8 @@ spec:
spec: spec:
containers: containers:
- args: - args:
- --metrics-addr=127.0.0.1:8085
- --enable-leader-election - --enable-leader-election
- --tls-min-version=TLS13
env: env:
- name: POD_NAME - name: POD_NAME
valueFrom: valueFrom:
@@ -56,6 +56,9 @@ spec:
- containerPort: 9443 - containerPort: 9443
name: webhook-server name: webhook-server
protocol: TCP protocol: TCP
- containerPort: 8443
protocol: TCP
name: https
readinessProbe: readinessProbe:
failureThreshold: 10 failureThreshold: 10
httpGet: httpGet:
@@ -84,19 +87,6 @@ spec:
mountPath: "/opt/metal3/certs/ca" mountPath: "/opt/metal3/certs/ca"
readOnly: true readOnly: true
{{- end }} {{- end }}
- args:
- --secure-listen-address=0.0.0.0:8443
- --upstream=http://127.0.0.1:8085/
- --logtostderr=true
- --v=10
image: "{{ .Values.images.rbacProxy.repository }}:{{ .Values.images.rbacProxy.tag }}"
imagePullPolicy: {{ .Values.images.rbacProxy.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 10 }}
name: kube-rbac-proxy
ports:
- containerPort: 8443
name: https
serviceAccountName: {{ include "baremetal-operator.serviceAccountName" . }} serviceAccountName: {{ include "baremetal-operator.serviceAccountName" . }}
terminationGracePeriodSeconds: 10 terminationGracePeriodSeconds: 10
volumes: volumes:

View File

@@ -1,7 +1,7 @@
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
metadata: metadata:
name: {{ include "baremetal-operator.fullname" . }}-proxy-role name: {{ include "baremetal-operator.fullname" . }}-metrics-auth-role
labels: labels:
{{- include "baremetal-operator.labels" . | nindent 4 }} {{- include "baremetal-operator.labels" . | nindent 4 }}
rules: rules:

View File

@@ -1,13 +1,13 @@
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:
name: {{ include "baremetal-operator.fullname" . }}-proxy-rolebinding name: {{ include "baremetal-operator.fullname" . }}-metrics-auth-rolebinding
labels: labels:
{{- include "baremetal-operator.labels" . | nindent 4 }} {{- include "baremetal-operator.labels" . | nindent 4 }}
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole
name: {{ include "baremetal-operator.fullname" . }}-proxy-role name: {{ include "baremetal-operator.fullname" . }}-metrics-auth-role
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ include "baremetal-operator.serviceAccountName" . }} name: {{ include "baremetal-operator.serviceAccountName" . }}

View File

@@ -6,6 +6,6 @@ metadata:
{{- include "baremetal-operator.labels" . | nindent 4 }} {{- include "baremetal-operator.labels" . | nindent 4 }}
rules: rules:
- nonResourceURLs: - nonResourceURLs:
- /metrics - "/metrics"
verbs: verbs:
- get - get

View File

@@ -28,11 +28,7 @@ images:
baremetalOperator: baremetalOperator:
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/baremetal-operator repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/baremetal-operator
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
tag: "0.8.0" tag: "0.9.1"
rbacProxy:
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/kube-rbac-proxy
pullPolicy: IfNotPresent
tag: "0.18.1"
imagePullSecrets: [] imagePullSecrets: []
nameOverride: "manger" nameOverride: "manger"

View File

@@ -3,4 +3,4 @@ appVersion: 26.1.2
description: A Helm chart for Ironic, used by Metal3 description: A Helm chart for Ironic, used by Metal3
name: ironic name: ironic
type: application type: application
version: 0.9.3 version: 0.10.0

View File

@@ -12,6 +12,7 @@ data:
{{- $ironicApiHost := print $ironicIP ":6385" }} {{- $ironicApiHost := print $ironicIP ":6385" }}
{{- $ironicBootHost := print $ironicIP ":6180" }} {{- $ironicBootHost := print $ironicIP ":6180" }}
{{- $ironicCacheHost := print $ironicIP ":6180" }} {{- $ironicCacheHost := print $ironicIP ":6180" }}
{{- $deployArch := .Values.global.deployArchitecture }}
{{- if ( .Values.global.enable_dnsmasq ) }} {{- if ( .Values.global.enable_dnsmasq ) }}
DNSMASQ_BOOT_SERVER_ADDRESS: {{ $ironicBootHost }} DNSMASQ_BOOT_SERVER_ADDRESS: {{ $ironicBootHost }}
@@ -39,8 +40,9 @@ data:
{{- end }} {{- end }}
IRONIC_EXTERNAL_HTTP_URL: {{ $protocol }}://{{ $ironicCacheHost }} IRONIC_EXTERNAL_HTTP_URL: {{ $protocol }}://{{ $ironicCacheHost }}
CACHEURL: {{ $protocol }}://{{ $ironicCacheHost }}/images CACHEURL: {{ $protocol }}://{{ $ironicCacheHost }}/images
DEPLOY_KERNEL_URL: {{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent.kernel DEPLOY_KERNEL_URL: {{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.kernel
DEPLOY_RAMDISK_URL: {{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent.initramfs DEPLOY_RAMDISK_URL: {{ $protocol }}://{{ $ironicBootHost }}/images/ironic-python-agent-{{ $deployArch }}.initramfs
DEPLOY_ARCHITECTURE: {{ $deployArch }}
IRONIC_BOOT_BASE_URL: {{ $protocol }}://{{ $ironicBootHost }} IRONIC_BOOT_BASE_URL: {{ $protocol }}://{{ $ironicBootHost }}
IRONIC_VMEDIA_HTTPD_SERVER_NAME: {{ $ironicBootHost }} IRONIC_VMEDIA_HTTPD_SERVER_NAME: {{ $ironicBootHost }}
ENABLE_PXE_BOOT: "{{ .Values.global.enable_pxe_boot }}" ENABLE_PXE_BOOT: "{{ .Values.global.enable_pxe_boot }}"

View File

@@ -56,11 +56,11 @@ images:
ironic: ironic:
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
tag: 26.1.2.3 tag: 26.1.2.4
ironicIPADownloader: ironicIPADownloader:
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic-ipa-downloader repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic-ipa-downloader
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
tag: 3.0.1 tag: 3.0.3
nameOverride: "" nameOverride: ""
fullnameOverride: "" fullnameOverride: ""

View File

@@ -63,6 +63,9 @@ global:
# Name for the MariaDB service # Name for the MariaDB service
databaseServiceName: metal3-mariadb databaseServiceName: metal3-mariadb
# Architecture for deployed nodes (either x86_64 or arm64)
deployArchitecture: x86_64
# In a multi-node cluster use the node selector to ensure the pods # In a multi-node cluster use the node selector to ensure the pods
# all run on the same host where the dnsmasqDNSServer and provisioningIP # all run on the same host where the dnsmasqDNSServer and provisioningIP
# and /opt/media exist. Uncomment the nodeSelector and update the # and /opt/media exist. Uncomment the nodeSelector and update the

View File

@@ -1,17 +1,17 @@
#!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.1_up0.14.9 #!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.0_up0.14.9
#!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.1_up0.14.9-%RELEASE% #!BuildTag: %%IMG_PREFIX%%metallb-chart:%%CHART_MAJOR%%.0.0_up0.14.9-%RELEASE%
apiVersion: v2 apiVersion: v2
appVersion: v0.14.3 appVersion: v0.14.9
dependencies: dependencies:
- condition: crds.enabled
name: crds
repository: file://./charts/crds
version: 0.14.9
- alias: metallb-frr-k8s - alias: metallb-frr-k8s
condition: frrk8s.enabled condition: frrk8s.enabled
name: frr-k8s name: frr-k8s
repository: file://./charts/frr-k8s repository: file://./charts/frr-k8s
version: 0.0.15 version: 0.0.16
- condition: crds.enabled
name: metallb-crds
repository: file://./charts/metallb-crds
version: 0.14.8
description: A network load-balancer implementation for Kubernetes using standard description: A network load-balancer implementation for Kubernetes using standard
routing protocols routing protocols
home: https://metallb.universe.tf home: https://metallb.universe.tf
@@ -21,4 +21,4 @@ name: metallb
sources: sources:
- https://github.com/metallb/metallb - https://github.com/metallb/metallb
type: application type: application
version: "%%CHART_MAJOR%%.0.1+up0.14.9" version: "%%CHART_MAJOR%%.0.0+up0.14.9"

View File

@@ -1,6 +1,6 @@
# metallb # metallb
![Version: 0.14.8](https://img.shields.io/badge/Version-0.14.8-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.14.8](https://img.shields.io/badge/AppVersion-v0.14.8-informational?style=flat-square) ![Version: 0.14.9](https://img.shields.io/badge/Version-0.14.9-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.14.9](https://img.shields.io/badge/AppVersion-v0.14.9-informational?style=flat-square)
A network load-balancer implementation for Kubernetes using standard routing protocols A network load-balancer implementation for Kubernetes using standard routing protocols
@@ -16,8 +16,8 @@ Kubernetes: `>= 1.19.0-0`
| Repository | Name | Version | | Repository | Name | Version |
|------------|------|---------| |------------|------|---------|
| | crds | 0.14.8 | | | crds | 0.14.9 |
| https://metallb.github.io/frr-k8s | frr-k8s | 0.0.14 | | https://metallb.github.io/frr-k8s | frr-k8s | 0.0.16 |
## Values ## Values
@@ -79,17 +79,17 @@ Kubernetes: `>= 1.19.0-0`
| prometheus.podMonitor.relabelings | list | `[]` | | | prometheus.podMonitor.relabelings | list | `[]` | |
| prometheus.prometheusRule.additionalLabels | object | `{}` | | | prometheus.prometheusRule.additionalLabels | object | `{}` | |
| prometheus.prometheusRule.addressPoolExhausted.enabled | bool | `true` | | | prometheus.prometheusRule.addressPoolExhausted.enabled | bool | `true` | |
| prometheus.prometheusRule.addressPoolExhausted.labels.severity | string | `"alert"` | | | prometheus.prometheusRule.addressPoolExhausted.labels.severity | string | `"critical"` | |
| prometheus.prometheusRule.addressPoolUsage.enabled | bool | `true` | | | prometheus.prometheusRule.addressPoolUsage.enabled | bool | `true` | |
| prometheus.prometheusRule.addressPoolUsage.thresholds[0].labels.severity | string | `"warning"` | | | prometheus.prometheusRule.addressPoolUsage.thresholds[0].labels.severity | string | `"warning"` | |
| prometheus.prometheusRule.addressPoolUsage.thresholds[0].percent | int | `75` | | | prometheus.prometheusRule.addressPoolUsage.thresholds[0].percent | int | `75` | |
| prometheus.prometheusRule.addressPoolUsage.thresholds[1].labels.severity | string | `"warning"` | | | prometheus.prometheusRule.addressPoolUsage.thresholds[1].labels.severity | string | `"warning"` | |
| prometheus.prometheusRule.addressPoolUsage.thresholds[1].percent | int | `85` | | | prometheus.prometheusRule.addressPoolUsage.thresholds[1].percent | int | `85` | |
| prometheus.prometheusRule.addressPoolUsage.thresholds[2].labels.severity | string | `"alert"` | | | prometheus.prometheusRule.addressPoolUsage.thresholds[2].labels.severity | string | `"critical"` | |
| prometheus.prometheusRule.addressPoolUsage.thresholds[2].percent | int | `95` | | | prometheus.prometheusRule.addressPoolUsage.thresholds[2].percent | int | `95` | |
| prometheus.prometheusRule.annotations | object | `{}` | | | prometheus.prometheusRule.annotations | object | `{}` | |
| prometheus.prometheusRule.bgpSessionDown.enabled | bool | `true` | | | prometheus.prometheusRule.bgpSessionDown.enabled | bool | `true` | |
| prometheus.prometheusRule.bgpSessionDown.labels.severity | string | `"alert"` | | | prometheus.prometheusRule.bgpSessionDown.labels.severity | string | `"critical"` | |
| prometheus.prometheusRule.configNotLoaded.enabled | bool | `true` | | | prometheus.prometheusRule.configNotLoaded.enabled | bool | `true` | |
| prometheus.prometheusRule.configNotLoaded.labels.severity | string | `"warning"` | | | prometheus.prometheusRule.configNotLoaded.labels.severity | string | `"warning"` | |
| prometheus.prometheusRule.enabled | bool | `false` | | | prometheus.prometheusRule.enabled | bool | `false` | |
@@ -99,7 +99,7 @@ Kubernetes: `>= 1.19.0-0`
| prometheus.rbacPrometheus | bool | `true` | | | prometheus.rbacPrometheus | bool | `true` | |
| prometheus.rbacProxy.pullPolicy | string | `nil` | | | prometheus.rbacProxy.pullPolicy | string | `nil` | |
| prometheus.rbacProxy.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy"` | | | prometheus.rbacProxy.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy"` | |
| prometheus.rbacProxy.tag | string | `"v0.12.0"` | | | prometheus.rbacProxy.tag | string | `"v0.18.0"` | |
| prometheus.scrapeAnnotations | bool | `false` | | | prometheus.scrapeAnnotations | bool | `false` | |
| prometheus.serviceAccount | string | `""` | | | prometheus.serviceAccount | string | `""` | |
| prometheus.serviceMonitor.controller.additionalLabels | object | `{}` | | | prometheus.serviceMonitor.controller.additionalLabels | object | `{}` | |
@@ -122,7 +122,7 @@ Kubernetes: `>= 1.19.0-0`
| speaker.frr.enabled | bool | `true` | | | speaker.frr.enabled | bool | `true` | |
| speaker.frr.image.pullPolicy | string | `nil` | | | speaker.frr.image.pullPolicy | string | `nil` | |
| speaker.frr.image.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/frr"` | | | speaker.frr.image.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/frr"` | |
| speaker.frr.image.tag | string | `"8.4.2"` | | | speaker.frr.image.tag | string | `"8.5.6"` | |
| speaker.frr.metricsPort | int | `7473` | | | speaker.frr.metricsPort | int | `7473` | |
| speaker.frr.resources | object | `{}` | | | speaker.frr.resources | object | `{}` | |
| speaker.frrMetrics.resources | object | `{}` | | | speaker.frrMetrics.resources | object | `{}` | |

View File

@@ -3,8 +3,8 @@ appVersion: v0.14.9
description: MetalLB CRDs description: MetalLB CRDs
home: https://metallb.universe.tf home: https://metallb.universe.tf
icon: https://metallb.universe.tf/images/logo/metallb-white.png icon: https://metallb.universe.tf/images/logo/metallb-white.png
name: metallb-crds name: crds
sources: sources:
- https://github.com/metallb/metallb - https://github.com/metallb/metallb
type: application type: application
version: 0.14.8 version: 0.14.9

View File

@@ -0,0 +1,14 @@
# crds
![Version: 0.0.0](https://img.shields.io/badge/Version-0.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.0.0](https://img.shields.io/badge/AppVersion-v0.0.0-informational?style=flat-square)
MetalLB CRDs
**Homepage:** <https://metallb.universe.tf>
## Source Code
* <https://github.com/metallb/metallb>
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0)

View File

@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.14.0 controller-gen.kubebuilder.io/version: v0.16.3
name: bfdprofiles.metallb.io name: bfdprofiles.metallb.io
spec: spec:
group: metallb.io group: metallb.io
@@ -123,7 +123,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.14.0 controller-gen.kubebuilder.io/version: v0.16.3
name: bgpadvertisements.metallb.io name: bgpadvertisements.metallb.io
spec: spec:
group: metallb.io group: metallb.io
@@ -329,7 +329,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.14.0 controller-gen.kubebuilder.io/version: v0.16.3
name: bgppeers.metallb.io name: bgppeers.metallb.io
spec: spec:
conversion: conversion:
@@ -365,6 +365,8 @@ spec:
- jsonPath: .spec.ebgpMultiHop - jsonPath: .spec.ebgpMultiHop
name: Multi Hops name: Multi Hops
type: string type: string
deprecated: true
deprecationWarning: v1beta1 is deprecated, please use v1beta2
name: v1beta1 name: v1beta1
schema: schema:
openAPIV3Schema: openAPIV3Schema:
@@ -526,15 +528,26 @@ spec:
default: false default: false
description: To set if we want to disable MP BGP that will separate IPv4 and IPv6 route exchanges into distinct BGP sessions. description: To set if we want to disable MP BGP that will separate IPv4 and IPv6 route exchanges into distinct BGP sessions.
type: boolean type: boolean
dynamicASN:
description: |-
DynamicASN detects the AS number to use for the remote end of the session
without explicitly setting it via the ASN field. Limited to:
internal - if the neighbor's ASN is different than MyASN connection is denied.
external - if the neighbor's ASN is the same as MyASN the connection is denied.
ASN and DynamicASN are mutually exclusive and one of them must be specified.
enum:
- internal
- external
type: string
ebgpMultiHop: ebgpMultiHop:
description: To set if the BGPPeer is multi-hops away. Needed for FRR mode only. description: To set if the BGPPeer is multi-hops away. Needed for FRR mode only.
type: boolean type: boolean
enableGracefulRestart: enableGracefulRestart:
description: |- description: |-
EnableGracefulRestart allows BGP peer to continue to forward data packets along EnableGracefulRestart allows BGP peer to continue to forward data packets
known routes while the routing protocol information is being restored. along known routes while the routing protocol information is being
This field is immutable because it requires restart of the BGP session restored. This field is immutable because it requires restart of the BGP
Supported for FRR mode only. session. Supported for FRR mode only.
type: boolean type: boolean
x-kubernetes-validations: x-kubernetes-validations:
- message: EnableGracefulRestart cannot be changed after creation - message: EnableGracefulRestart cannot be changed after creation
@@ -622,7 +635,9 @@ spec:
type: object type: object
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
peerASN: peerASN:
description: AS number to expect from the remote end of the session. description: |-
AS number to expect from the remote end of the session.
ASN and DynamicASN are mutually exclusive and one of them must be specified.
format: int32 format: int32
maximum: 4294967295 maximum: 4294967295
minimum: 0 minimum: 0
@@ -649,7 +664,6 @@ spec:
type: string type: string
required: required:
- myASN - myASN
- peerASN
- peerAddress - peerAddress
type: object type: object
status: status:
@@ -665,7 +679,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.14.0 controller-gen.kubebuilder.io/version: v0.16.3
name: communities.metallb.io name: communities.metallb.io
spec: spec:
group: metallb.io group: metallb.io
@@ -730,7 +744,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.14.0 controller-gen.kubebuilder.io/version: v0.16.3
name: ipaddresspools.metallb.io name: ipaddresspools.metallb.io
spec: spec:
group: metallb.io group: metallb.io
@@ -940,7 +954,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.14.0 controller-gen.kubebuilder.io/version: v0.16.3
name: l2advertisements.metallb.io name: l2advertisements.metallb.io
spec: spec:
group: metallb.io group: metallb.io
@@ -1120,7 +1134,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.14.0 controller-gen.kubebuilder.io/version: v0.16.3
name: servicel2statuses.metallb.io name: servicel2statuses.metallb.io
spec: spec:
group: metallb.io group: metallb.io

View File

@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -0,0 +1,6 @@
dependencies:
- name: crds
repository: ""
version: 0.0.16
digest: sha256:b54ee64c5e61f1dd38e89efc87ebd1e36cdb7c4dd7c897d9985040dccd713dba
generated: "2024-11-22T11:40:47.152053909+01:00"

View File

@@ -1,5 +1,10 @@
apiVersion: v2 apiVersion: v2
appVersion: v0.0.14 appVersion: v0.0.16
dependencies:
- condition: crds.enabled
name: crds
repository: file://./charts/crds
version: 0.0.16
description: A cloud native wrapper of FRR description: A cloud native wrapper of FRR
home: https://metallb.universe.tf home: https://metallb.universe.tf
icon: https://metallb.universe.tf/images/logo/metallb-white.png icon: https://metallb.universe.tf/images/logo/metallb-white.png
@@ -8,4 +13,4 @@ name: frr-k8s
sources: sources:
- https://github.com/metallb/frr-k8s - https://github.com/metallb/frr-k8s
type: application type: application
version: 0.0.15 version: 0.0.16

View File

@@ -1,6 +1,6 @@
# frr-k8s # frr-k8s
![Version: 0.0.14](https://img.shields.io/badge/Version-0.0.14-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.0.14](https://img.shields.io/badge/AppVersion-v0.0.14-informational?style=flat-square) ![Version: 0.0.16](https://img.shields.io/badge/Version-0.0.16-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.0.16](https://img.shields.io/badge/AppVersion-v0.0.16-informational?style=flat-square)
A cloud native wrapper of FRR A cloud native wrapper of FRR
@@ -16,7 +16,7 @@ Kubernetes: `>= 1.19.0-0`
| Repository | Name | Version | | Repository | Name | Version |
|------------|------|---------| |------------|------|---------|
| | crds | 0.0.14 | | | crds | 0.0.16 |
## Values ## Values
@@ -27,17 +27,17 @@ Kubernetes: `>= 1.19.0-0`
| frrk8s.affinity | object | `{}` | | | frrk8s.affinity | object | `{}` | |
| frrk8s.alwaysBlock | string | `""` | | | frrk8s.alwaysBlock | string | `""` | |
| frrk8s.disableCertRotation | bool | `false` | | | frrk8s.disableCertRotation | bool | `false` | |
| frrk8s.frr.acceptIncomingBGPConnections | bool | `false` | |
| frrk8s.frr.image.pullPolicy | string | `nil` | | | frrk8s.frr.image.pullPolicy | string | `nil` | |
| frrk8s.frr.image.repository | string | `"quay.io/frrouting/frr"` | | | frrk8s.frr.image.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/frr"` | |
| frrk8s.frr.image.tag | string | `"9.1.0"` | | | frrk8s.frr.image.tag | string | `"8.5.6"` | |
| frrk8s.frr.metricsBindAddress | string | `"127.0.0.1"` | | | frrk8s.frr.metricsBindAddress | string | `"127.0.0.1"` | |
| frrk8s.frr.metricsPort | int | `7573` | | | frrk8s.frr.metricsPort | int | `7573` | |
| frrk8s.frr.resources | object | `{}` | | | frrk8s.frr.resources | object | `{}` | |
| frrk8s.frr.secureMetricsPort | int | `9141` | | | frrk8s.frr.secureMetricsPort | int | `9141` | |
| frrk8s.frrMetrics.resources | object | `{}` | | | frrk8s.frrMetrics.resources | object | `{}` | |
| frrk8s.healthPort | int | `8081` | |
| frrk8s.image.pullPolicy | string | `nil` | | | frrk8s.image.pullPolicy | string | `nil` | |
| frrk8s.image.repository | string | `"quay.io/metallb/frr-k8s"` | | | frrk8s.image.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/frr-k8s"` | |
| frrk8s.image.tag | string | `nil` | | | frrk8s.image.tag | string | `nil` | |
| frrk8s.labels.app | string | `"frr-k8s"` | | | frrk8s.labels.app | string | `"frr-k8s"` | |
| frrk8s.livenessProbe.enabled | bool | `true` | | | frrk8s.livenessProbe.enabled | bool | `true` | |
@@ -77,8 +77,8 @@ Kubernetes: `>= 1.19.0-0`
| prometheus.namespace | string | `""` | | | prometheus.namespace | string | `""` | |
| prometheus.rbacPrometheus | bool | `false` | | | prometheus.rbacPrometheus | bool | `false` | |
| prometheus.rbacProxy.pullPolicy | string | `nil` | | | prometheus.rbacProxy.pullPolicy | string | `nil` | |
| prometheus.rbacProxy.repository | string | `"gcr.io/kubebuilder/kube-rbac-proxy"` | | | prometheus.rbacProxy.repository | string | `"registry.opensuse.org/isv/suse/edge/metallb/images/kube-rbac-proxy"` | |
| prometheus.rbacProxy.tag | string | `"v0.12.0"` | | | prometheus.rbacProxy.tag | string | `"v0.18.0"` | |
| prometheus.scrapeAnnotations | bool | `false` | | | prometheus.scrapeAnnotations | bool | `false` | |
| prometheus.secureMetricsPort | int | `9140` | | | prometheus.secureMetricsPort | int | `9140` | |
| prometheus.serviceAccount | string | `""` | | | prometheus.serviceAccount | string | `""` | |

View File

@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -0,0 +1,10 @@
apiVersion: v2
appVersion: v0.0.16
description: FRR K8s CRDs
home: https://metallb.universe.tf
icon: https://metallb.universe.tf/images/logo/metallb-white.png
name: crds
sources:
- https://github.com/metallb/frr-k8s
type: application
version: 0.0.16

View File

@@ -0,0 +1,14 @@
# crds
![Version: 0.0.0](https://img.shields.io/badge/Version-0.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.0.0](https://img.shields.io/badge/AppVersion-v0.0.0-informational?style=flat-square)
FRR-K8s CRDs
**Homepage:** <https://metallb.universe.tf>
## Source Code
* <https://github.com/metallb/frr-k8s>
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0)

View File

@@ -156,8 +156,9 @@ spec:
the session with. the session with.
type: string type: string
asn: asn:
description: ASN is the AS number to use for the local description: |-
end of the session. ASN is the AS number to use for the local end of the session.
ASN and DynamicASN are mutually exclusive and one of them must be specified.
format: int32 format: int32
maximum: 4294967295 maximum: 4294967295
minimum: 0 minimum: 0
@@ -187,6 +188,17 @@ spec:
will separate IPv4 and IPv6 route exchanges into will separate IPv4 and IPv6 route exchanges into
distinct BGP sessions. distinct BGP sessions.
type: boolean type: boolean
dynamicASN:
description: |-
DynamicASN detects the AS number to use for the local end of the session
without explicitly setting it via the ASN field. Limited to:
internal - if the neighbor's ASN is different than the router's the connection is denied.
external - if the neighbor's ASN is the same as the router's the connection is denied.
ASN and DynamicASN are mutually exclusive and one of them must be specified.
enum:
- internal
- external
type: string
ebgpMultiHop: ebgpMultiHop:
description: EBGPMultiHop indicates if the BGPPeer description: EBGPMultiHop indicates if the BGPPeer
is multi-hops away. is multi-hops away.
@@ -366,7 +378,6 @@ spec:
type: object type: object
required: required:
- address - address
- asn
type: object type: object
type: array type: array
prefixes: prefixes:

View File

@@ -50,7 +50,7 @@ data:
# #
vtysh_enable=yes vtysh_enable=yes
zebra_options=" -A 127.0.0.1 -s 90000000" zebra_options=" -A 127.0.0.1 -s 90000000"
bgpd_options=" -A 127.0.0.1" bgpd_options=" -A 127.0.0.1 {{ if not .Values.frrk8s.frr.acceptIncomingBGPConnections }} -p 0 {{- end }}"
ospfd_options=" -A 127.0.0.1" ospfd_options=" -A 127.0.0.1"
ospf6d_options=" -A ::1" ospf6d_options=" -A ::1"
ripd_options=" -A 127.0.0.1" ripd_options=" -A 127.0.0.1"
@@ -199,7 +199,6 @@ spec:
{{- with .Values.frrk8s.logLevel }} {{- with .Values.frrk8s.logLevel }}
- --log-level={{ . }} - --log-level={{ . }}
{{- end }} {{- end }}
- --health-probe-bind-address={{.Values.prometheus.metricsBindAddress}}:{{ .Values.frrk8s.healthPort }}
{{- if .Values.frrk8s.alwaysBlock }} {{- if .Values.frrk8s.alwaysBlock }}
- --always-block={{ .Values.frrk8s.alwaysBlock }} - --always-block={{ .Values.frrk8s.alwaysBlock }}
{{- end }} {{- end }}
@@ -222,8 +221,8 @@ spec:
{{- if .Values.frrk8s.livenessProbe.enabled }} {{- if .Values.frrk8s.livenessProbe.enabled }}
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /healthz path: /metrics
port: {{ .Values.frrk8s.healthPort }} port: monitoring
host: {{ .Values.prometheus.metricsBindAddress }} host: {{ .Values.prometheus.metricsBindAddress }}
initialDelaySeconds: {{ .Values.frrk8s.livenessProbe.initialDelaySeconds }} initialDelaySeconds: {{ .Values.frrk8s.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.frrk8s.livenessProbe.periodSeconds }} periodSeconds: {{ .Values.frrk8s.livenessProbe.periodSeconds }}
@@ -234,8 +233,8 @@ spec:
{{- if .Values.frrk8s.readinessProbe.enabled }} {{- if .Values.frrk8s.readinessProbe.enabled }}
readinessProbe: readinessProbe:
httpGet: httpGet:
path: /healthz path: /metrics
port: {{ .Values.frrk8s.healthPort }} port: monitoring
host: {{ .Values.prometheus.metricsBindAddress }} host: {{ .Values.prometheus.metricsBindAddress }}
initialDelaySeconds: {{ .Values.frrk8s.readinessProbe.initialDelaySeconds }} initialDelaySeconds: {{ .Values.frrk8s.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.frrk8s.readinessProbe.periodSeconds }} periodSeconds: {{ .Values.frrk8s.readinessProbe.periodSeconds }}

View File

@@ -46,7 +46,7 @@ spec:
- "--restart-on-rotator-secret-refresh=true" - "--restart-on-rotator-secret-refresh=true"
{{- end }} {{- end }}
- "--namespace=$(NAMESPACE)" - "--namespace=$(NAMESPACE)"
- --health-probe-bind-address=:8081 - "--metrics-bind-address=:{{ .Values.prometheus.metricsPort }}"
env: env:
- name: NAMESPACE - name: NAMESPACE
valueFrom: valueFrom:
@@ -63,11 +63,14 @@ spec:
drop: drop:
- ALL - ALL
readOnlyRootFilesystem: true readOnlyRootFilesystem: true
ports:
- containerPort: {{ .Values.prometheus.metricsPort }}
name: monitoring
{{- if .Values.frrk8s.livenessProbe.enabled }} {{- if .Values.frrk8s.livenessProbe.enabled }}
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /healthz path: /metrics
port: 8081 port: monitoring
initialDelaySeconds: {{ .Values.frrk8s.livenessProbe.initialDelaySeconds }} initialDelaySeconds: {{ .Values.frrk8s.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.frrk8s.livenessProbe.periodSeconds }} periodSeconds: {{ .Values.frrk8s.livenessProbe.periodSeconds }}
failureThreshold: {{ .Values.frrk8s.livenessProbe.failureThreshold }} failureThreshold: {{ .Values.frrk8s.livenessProbe.failureThreshold }}
@@ -75,8 +78,8 @@ spec:
{{- if .Values.frrk8s.readinessProbe.enabled }} {{- if .Values.frrk8s.readinessProbe.enabled }}
readinessProbe: readinessProbe:
httpGet: httpGet:
path: /readyz path: /metrics
port: 8081 port: monitoring
initialDelaySeconds: {{ .Values.frrk8s.readinessProbe.initialDelaySeconds }} initialDelaySeconds: {{ .Values.frrk8s.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.frrk8s.readinessProbe.periodSeconds }} periodSeconds: {{ .Values.frrk8s.readinessProbe.periodSeconds }}
failureThreshold: {{ .Values.frrk8s.readinessProbe.failureThreshold }} failureThreshold: {{ .Values.frrk8s.readinessProbe.failureThreshold }}

View File

@@ -98,7 +98,7 @@ frrk8s:
tolerateMaster: true tolerateMaster: true
image: image:
repository: "registry.opensuse.org/isv/suse/edge/metallb/images/frr-k8s" repository: "registry.opensuse.org/isv/suse/edge/metallb/images/frr-k8s"
tag: "v0.0.14" tag: "v0.0.16"
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
## @param controller.updateStrategy.type FRR-K8s controller daemonset strategy type ## @param controller.updateStrategy.type FRR-K8s controller daemonset strategy type
## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/ ## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/
@@ -132,7 +132,6 @@ frrk8s:
podAnnotations: {} podAnnotations: {}
labels: labels:
app: frr-k8s app: frr-k8s
healthPort: 8081
livenessProbe: livenessProbe:
enabled: true enabled: true
failureThreshold: 3 failureThreshold: 3
@@ -162,15 +161,17 @@ frrk8s:
frr: frr:
image: image:
repository: "registry.opensuse.org/isv/suse/edge/metallb/images/frr" repository: "registry.opensuse.org/isv/suse/edge/metallb/images/frr"
tag: "8.4" tag: "8.5.6"
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
metricsBindAddress: 127.0.0.1 metricsBindAddress: 127.0.0.1
metricsPort: 7573 metricsPort: 7573
resources: {} resources: {}
secureMetricsPort: 9141 secureMetricsPort: 9141
acceptIncomingBGPConnections: false
reloader: reloader:
resources: {} resources: {}
frrMetrics: frrMetrics:
resources: {} resources: {}
crds: crds:
enabled: true
validationFailurePolicy: Fail validationFailurePolicy: Fail

View File

@@ -1,11 +0,0 @@
# crds
![Version: 0.14.3](https://img.shields.io/badge/Version-0.14.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.14.3](https://img.shields.io/badge/AppVersion-v0.14.3-informational?style=flat-square)
MetalLB CRDs
**Homepage:** <https://metallb.universe.tf>
## Source Code
* <https://github.com/metallb/metallb>

View File

@@ -111,3 +111,4 @@ Create the name of the settings Secret to use.
{{ .Values.speaker.frr.metricsPort }} {{ .Values.speaker.frr.metricsPort }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View File

@@ -84,7 +84,7 @@ spec:
- name: METALLB_DEPLOYMENT - name: METALLB_DEPLOYMENT
value: {{ template "metallb.fullname" . }}-controller value: {{ template "metallb.fullname" . }}-controller
{{- end }} {{- end }}
{{- if .Values.speaker.frr.enabled }} {{- if and .Values.speaker.enabled .Values.speaker.frr.enabled }}
- name: METALLB_BGP_TYPE - name: METALLB_BGP_TYPE
value: frr value: frr
{{- end }} {{- end }}

View File

@@ -36,6 +36,7 @@ spec:
relabelings: relabelings:
{{- toYaml .Values.prometheus.podMonitor.relabelings | nindent 4 }} {{- toYaml .Values.prometheus.podMonitor.relabelings | nindent 4 }}
{{- end }} {{- end }}
{{- if .Values.speaker.enabled }}
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: PodMonitor kind: PodMonitor
@@ -74,6 +75,7 @@ spec:
relabelings: relabelings:
{{- toYaml .Values.prometheus.podMonitor.relabelings | nindent 4 }} {{- toYaml .Values.prometheus.podMonitor.relabelings | nindent 4 }}
{{- end }} {{- end }}
{{- end }}
--- ---
{{- if .Values.prometheus.rbacPrometheus }} {{- if .Values.prometheus.rbacPrometheus }}
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1

View File

@@ -19,8 +19,8 @@ spec:
{{- if .Values.prometheus.prometheusRule.staleConfig.enabled }} {{- if .Values.prometheus.prometheusRule.staleConfig.enabled }}
- alert: MetalLBStaleConfig - alert: MetalLBStaleConfig
annotations: annotations:
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod summary: {{`'Stale config on {{ $labels.pod }}'`}}
}} has a stale config for > 1 minute'`}} description: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has a stale config for > 1 minute'`}}
expr: metallb_k8s_client_config_stale_bool{job=~"{{ template "metallb.fullname" . }}.*"} == 1 expr: metallb_k8s_client_config_stale_bool{job=~"{{ template "metallb.fullname" . }}.*"} == 1
for: 1m for: 1m
{{- with .Values.prometheus.prometheusRule.staleConfig.labels }} {{- with .Values.prometheus.prometheusRule.staleConfig.labels }}
@@ -31,8 +31,8 @@ spec:
{{- if .Values.prometheus.prometheusRule.configNotLoaded.enabled }} {{- if .Values.prometheus.prometheusRule.configNotLoaded.enabled }}
- alert: MetalLBConfigNotLoaded - alert: MetalLBConfigNotLoaded
annotations: annotations:
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod summary: {{`'Config on {{ $labels.pod }} has not been loaded'`}}
}} has not loaded for > 1 minute'`}} description: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has not loaded for > 1 minute'`}}
expr: metallb_k8s_client_config_loaded_bool{job=~"{{ template "metallb.fullname" . }}.*"} == 0 expr: metallb_k8s_client_config_loaded_bool{job=~"{{ template "metallb.fullname" . }}.*"} == 0
for: 1m for: 1m
{{- with .Values.prometheus.prometheusRule.configNotLoaded.labels }} {{- with .Values.prometheus.prometheusRule.configNotLoaded.labels }}
@@ -43,8 +43,8 @@ spec:
{{- if .Values.prometheus.prometheusRule.addressPoolExhausted.enabled }} {{- if .Values.prometheus.prometheusRule.addressPoolExhausted.enabled }}
- alert: MetalLBAddressPoolExhausted - alert: MetalLBAddressPoolExhausted
annotations: annotations:
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod summary: {{`'Exhausted address pool on {{ $labels.pod }}'`}}
}} has exhausted address pool {{ $labels.pool }} for > 1 minute'`}} description: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has exhausted address pool {{ $labels.pool }} for > 1 minute'`}}
expr: metallb_allocator_addresses_in_use_total >= on(pool) metallb_allocator_addresses_total expr: metallb_allocator_addresses_in_use_total >= on(pool) metallb_allocator_addresses_total
for: 1m for: 1m
{{- with .Values.prometheus.prometheusRule.addressPoolExhausted.labels }} {{- with .Values.prometheus.prometheusRule.addressPoolExhausted.labels }}
@@ -57,8 +57,8 @@ spec:
{{- range .Values.prometheus.prometheusRule.addressPoolUsage.thresholds }} {{- range .Values.prometheus.prometheusRule.addressPoolUsage.thresholds }}
- alert: MetalLBAddressPoolUsage{{ .percent }}Percent - alert: MetalLBAddressPoolUsage{{ .percent }}Percent
annotations: annotations:
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod summary: {{`'Exhausted address pool on {{ $labels.pod }}'`}}
}} has address pool {{ $labels.pool }} past `}}{{ .percent }}{{`% usage for > 1 minute'`}} message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has address pool {{ $labels.pool }} past `}}{{ .percent }}{{`% usage for > 1 minute'`}}
expr: ( metallb_allocator_addresses_in_use_total / on(pool) metallb_allocator_addresses_total ) * 100 > {{ .percent }} expr: ( metallb_allocator_addresses_in_use_total / on(pool) metallb_allocator_addresses_total ) * 100 > {{ .percent }}
{{- with .labels }} {{- with .labels }}
labels: labels:
@@ -69,8 +69,8 @@ spec:
{{- if .Values.prometheus.prometheusRule.bgpSessionDown.enabled }} {{- if .Values.prometheus.prometheusRule.bgpSessionDown.enabled }}
- alert: MetalLBBGPSessionDown - alert: MetalLBBGPSessionDown
annotations: annotations:
message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod summary: {{`'BGP session down on {{ $labels.pod }}'`}}
}} has BGP session {{ $labels.peer }} down for > 1 minute'`}} message: {{`'{{ $labels.job }} - MetalLB {{ $labels.container }} on {{ $labels.pod }} has BGP session {{ $labels.peer }} down for > 1 minute'`}}
expr: metallb_bgp_session_up{job=~"{{ template "metallb.fullname" . }}.*"} == 0 expr: metallb_bgp_session_up{job=~"{{ template "metallb.fullname" . }}.*"} == 0
for: 1m for: 1m
{{- with .Values.prometheus.prometheusRule.bgpSessionDown.labels }} {{- with .Values.prometheus.prometheusRule.bgpSessionDown.labels }}

View File

@@ -19,11 +19,11 @@ rules:
resources: ["events"] resources: ["events"]
verbs: ["create", "patch"] verbs: ["create", "patch"]
- apiGroups: ["admissionregistration.k8s.io"] - apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"] resources: ["validatingwebhookconfigurations"]
resourceNames: ["metallb-webhook-configuration"] resourceNames: ["metallb-webhook-configuration"]
verbs: ["create", "delete", "get", "list", "patch", "update", "watch"] verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
- apiGroups: ["admissionregistration.k8s.io"] - apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"] resources: ["validatingwebhookconfigurations"]
verbs: ["list", "watch"] verbs: ["list", "watch"]
- apiGroups: ["apiextensions.k8s.io"] - apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"] resources: ["customresourcedefinitions"]
@@ -41,6 +41,7 @@ rules:
resources: ["subjectaccessreviews"] resources: ["subjectaccessreviews"]
verbs: ["create"] verbs: ["create"]
{{- end }} {{- end }}
{{- if .Values.speaker.enabled }}
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
@@ -72,7 +73,7 @@ rules:
{{- if or .Values.frrk8s.enabled .Values.frrk8s.external }} {{- if or .Values.frrk8s.enabled .Values.frrk8s.external }}
- apiGroups: ["frrk8s.metallb.io"] - apiGroups: ["frrk8s.metallb.io"]
resources: ["frrconfigurations"] resources: ["frrconfigurations"]
verbs: ["get", "list", "watch","create","update"] verbs: ["get", "list", "watch","create","update","delete"]
{{- end }} {{- end }}
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
@@ -109,6 +110,7 @@ rules:
- apiGroups: ["metallb.io"] - apiGroups: ["metallb.io"]
resources: ["communities"] resources: ["communities"]
verbs: ["get", "list", "watch"] verbs: ["get", "list", "watch"]
{{- end }}
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: Role kind: Role
@@ -117,7 +119,7 @@ metadata:
namespace: {{ .Release.Namespace | quote }} namespace: {{ .Release.Namespace | quote }}
labels: {{- include "metallb.labels" . | nindent 4 }} labels: {{- include "metallb.labels" . | nindent 4 }}
rules: rules:
{{- if .Values.speaker.memberlist.enabled }} {{- if and .Values.speaker.enabled .Values.speaker.memberlist.enabled }}
- apiGroups: [""] - apiGroups: [""]
resources: ["secrets"] resources: ["secrets"]
verbs: ["create", "get", "list", "watch"] verbs: ["create", "get", "list", "watch"]
@@ -166,6 +168,7 @@ roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole
name: {{ template "metallb.fullname" . }}:controller name: {{ template "metallb.fullname" . }}:controller
{{- if .Values.speaker.enabled }}
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
@@ -195,6 +198,7 @@ roleRef:
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ include "metallb.speaker.serviceAccountName" . }} name: {{ include "metallb.speaker.serviceAccountName" . }}
{{- end }}
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding

View File

@@ -13,7 +13,7 @@ metadata:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- if .Values.speaker.serviceAccount.create }} {{- if and .Values.speaker.enabled .Values.speaker.serviceAccount.create }}
--- ---
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount

View File

@@ -1,4 +1,9 @@
{{- if and .Values.prometheus.serviceMonitor.enabled .Values.prometheus.podMonitor.enabled }}
{{- fail "prometheus.serviceMonitor.enabled and prometheus.podMonitor.enabled cannot both be set" }}
{{- end }}
{{- if .Values.prometheus.serviceMonitor.enabled }} {{- if .Values.prometheus.serviceMonitor.enabled }}
{{- if .Values.speaker.enabled }}
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
metadata: metadata:
@@ -89,6 +94,7 @@ spec:
{{- end }} {{- end }}
sessionAffinity: None sessionAffinity: None
type: ClusterIP type: ClusterIP
{{- end }}
--- ---
apiVersion: monitoring.coreos.com/v1 apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
@@ -97,7 +103,6 @@ metadata:
namespace: {{ .Release.Namespace | quote }} namespace: {{ .Release.Namespace | quote }}
labels: labels:
{{- include "metallb.labels" . | nindent 4 }} {{- include "metallb.labels" . | nindent 4 }}
app.kubernetes.io/component: speaker
{{- if .Values.prometheus.serviceMonitor.controller.additionalLabels }} {{- if .Values.prometheus.serviceMonitor.controller.additionalLabels }}
{{ toYaml .Values.prometheus.serviceMonitor.controller.additionalLabels | indent 4 }} {{ toYaml .Values.prometheus.serviceMonitor.controller.additionalLabels | indent 4 }}
{{- end }} {{- end }}

View File

@@ -45,7 +45,7 @@ prometheus:
# certificate to be used. # certificate to be used.
controllerMetricsTLSSecret: "" controllerMetricsTLSSecret: ""
# prometheus doens't have the permission to scrape all namespaces so we give it permission to scrape metallb's one # prometheus doesn't have the permission to scrape all namespaces so we give it permission to scrape metallb's one
rbacPrometheus: true rbacPrometheus: true
# the service account used by prometheus # the service account used by prometheus
@@ -67,7 +67,7 @@ prometheus:
# enable support for Prometheus Operator # enable support for Prometheus Operator
enabled: false enabled: false
# optional additionnal labels for podMonitors # optional additional labels for podMonitors
additionalLabels: {} additionalLabels: {}
# optional annotations for podMonitors # optional annotations for podMonitors
@@ -146,7 +146,7 @@ prometheus:
# enable alertmanager alerts # enable alertmanager alerts
enabled: false enabled: false
# optional additionnal labels for prometheusRules # optional additional labels for prometheusRules
additionalLabels: {} additionalLabels: {}
# optional annotations for prometheusRules # optional annotations for prometheusRules
@@ -168,7 +168,7 @@ prometheus:
addressPoolExhausted: addressPoolExhausted:
enabled: true enabled: true
labels: labels:
severity: alert severity: critical
addressPoolUsage: addressPoolUsage:
enabled: true enabled: true
@@ -181,13 +181,13 @@ prometheus:
severity: warning severity: warning
- percent: 95 - percent: 95
labels: labels:
severity: alert severity: critical
# MetalLBBGPSessionDown # MetalLBBGPSessionDown
bgpSessionDown: bgpSessionDown:
enabled: true enabled: true
labels: labels:
severity: alert severity: critical
extraAlerts: [] extraAlerts: []
@@ -201,7 +201,7 @@ controller:
# webhookMode: enabled # webhookMode: enabled
image: image:
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%metallb-controller" repository: "%%IMG_REPO%%/%%IMG_PREFIX%%metallb-controller"
tag: "v0.14.8" tag: "v0.14.9"
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
## @param controller.updateStrategy.type Metallb controller deployment strategy type. ## @param controller.updateStrategy.type Metallb controller deployment strategy type.
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
@@ -282,7 +282,7 @@ speaker:
image: image:
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%metallb-speaker" repository: "%%IMG_REPO%%/%%IMG_PREFIX%%metallb-speaker"
tag: "v0.14.8" tag: "v0.14.9"
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
## @param speaker.updateStrategy.type Speaker daemonset strategy type ## @param speaker.updateStrategy.type Speaker daemonset strategy type
## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/ ## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/
@@ -346,7 +346,7 @@ speaker:
enabled: false enabled: false
image: image:
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%frr" repository: "%%IMG_REPO%%/%%IMG_PREFIX%%frr"
tag: "8.4" tag: "8.5.6"
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
metricsPort: 7473 metricsPort: 7473
resources: {} resources: {}

View File

@@ -2,7 +2,7 @@
<service name="obs_scm"> <service name="obs_scm">
<param name="url">https://github.com/metallb/metallb</param> <param name="url">https://github.com/metallb/metallb</param>
<param name="scm">git</param> <param name="scm">git</param>
<param name="revision">v0.14.8</param> <param name="revision">v0.14.9</param>
<param name="version">_auto_</param> <param name="version">_auto_</param>
<param name="versionformat">@PARENT_TAG@</param> <param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param> <param name="changesgenerate">enable</param>

View File

@@ -17,8 +17,8 @@
Name: metallb Name: metallb
Version: 0.14.8 Version: 0.14.9
Release: 0.14.8 Release: 0.14.9
Summary: Load Balancer for bare metal Kubernetes clusters Summary: Load Balancer for bare metal Kubernetes clusters
License: Apache-2.0 License: Apache-2.0
URL: https://github.com/metallb/metallb URL: https://github.com/metallb/metallb
@@ -54,7 +54,7 @@ This package contains the speaker binary.
cp ./frr-tools/reloader/frr-reloader.sh frr-reloader.sh cp ./frr-tools/reloader/frr-reloader.sh frr-reloader.sh
%build %build
go install -v -mod vendor -buildmode=pie ./controller ./speaker ./frr-tools/metrics go install -v -mod vendor -buildmode=pie ./controller ./speaker ./frr-tools/metrics ./frr-tools/cp-tool
mv $HOME/go/bin/metrics $HOME/go/bin/frr-metrics mv $HOME/go/bin/metrics $HOME/go/bin/frr-metrics
%install %install
@@ -63,6 +63,7 @@ mkdir -p %{buildroot}%{_sbindir}/
install -D -m 0755 $HOME/go/bin/controller %{buildroot}/ install -D -m 0755 $HOME/go/bin/controller %{buildroot}/
install -D -m 0755 $HOME/go/bin/speaker %{buildroot}/ install -D -m 0755 $HOME/go/bin/speaker %{buildroot}/
install -D -m 0755 $HOME/go/bin/frr-metrics %{buildroot}/ install -D -m 0755 $HOME/go/bin/frr-metrics %{buildroot}/
install -D -m 0755 $HOME/go/bin/cp-tool %{buildroot}/
install -D -m 0755 frr-reloader.sh %{buildroot}/ install -D -m 0755 frr-reloader.sh %{buildroot}/
%files controller %files controller
@@ -73,6 +74,7 @@ install -D -m 0755 frr-reloader.sh %{buildroot}/
%license LICENSE %license LICENSE
/speaker /speaker
/frr-metrics /frr-metrics
/cp-tool
/frr-reloader.sh /frr-reloader.sh
%changelog %changelog

View File

@@ -1 +0,0 @@
*.obscpio filter=lfs diff=lfs merge=lfs -text

Some files were not shown because too many files have changed in this diff Show More