diff --git a/.obs/common.py b/.obs/common.py
index ede08bb..89a38f0 100644
--- a/.obs/common.py
+++ b/.obs/common.py
@@ -1,3 +1,3 @@
-PROJECT = "isv:SUSE:Edge:Factory"
+PROJECT = "isv:SUSE:Edge:3.2"
REPOSITORY = "https://src.opensuse.org/suse-edge/Factory"
-BRANCH = "main"
+BRANCH = "3.2"
diff --git a/.obs/workflows.yml b/.obs/workflows.yml
index a490379..66b00a0 100644
--- a/.obs/workflows.yml
+++ b/.obs/workflows.yml
@@ -4,217 +4,225 @@ staging_build:
steps:
- branch_package:
source_package: endpoint-copier-operator
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: endpoint-copier-operator-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: endpoint-copier-operator-chart
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-agent-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-chart
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-controller-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-dashboard-extension-chart
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-debug-echo-discovery-handler-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-onvif-discovery-handler-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-opcua-discovery-handler-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-udev-discovery-handler-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: akri-webhook-configuration-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: obs-service-set_version
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: cosign
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: frr-k8s
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: kubectl
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: upgrade-controller
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: nm-configurator
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: kube-rbac-proxy
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: edge-image-builder
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: metallb
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: hauler
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: ip-address-manager
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: baremetal-operator
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: cluster-api-provider-metal3
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: cdi-chart
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: cluster-api-provider-metal3-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: metallb-chart
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: sriov-crd-chart
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: upgrade-controller-chart
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: edge-image-builder-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: ironic-ipa-downloader-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: upgrade-controller-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: metal3-chart
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: baremetal-operator-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: sriov-network-operator-chart
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: metallb-controller-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: ip-address-manager-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: metallb-speaker-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: ironic-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: cri-tools
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: crudini
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: fakeroot
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: ipcalc
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: autoconf
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: rancher-turtles-airgap-resources-chart
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: rancher-turtles-chart
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: kube-rbac-proxy-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: ironic-ipa-ramdisk
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: kubevirt-dashboard-extension-chart
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: kiwi-builder-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: kubevirt-chart
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
- branch_package:
source_package: release-manifest-image
- source_project: isv:SUSE:Edge:Factory
- target_project: isv:SUSE:Edge:Factory:Staging
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
+ - branch_package:
+ source_package: frr-image
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
+ - branch_package:
+ source_package: kubectl-image
+ source_project: isv:SUSE:Edge:3.2
+ target_project: isv:SUSE:Edge:3.2:Staging
\ No newline at end of file
diff --git a/frr-image/Dockerfile b/frr-image/Dockerfile
new file mode 100644
index 0000000..da39fef
--- /dev/null
+++ b/frr-image/Dockerfile
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: MIT
+#!BuildTag: %%IMG_PREFIX%%frr:8.4
+#!BuildTag: %%IMG_PREFIX%%frr:8.4-%RELEASE%
+#!BuildVersion: 15.5
+ARG SLE_VERSION
+FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
+
+FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
+COPY --from=micro / /installroot/
+RUN zypper --installroot /installroot --non-interactive install --no-recommends tcpdump libpcap-devel iproute2 iputils strace socat frr python3 catatonit sed util-linux; zypper -n clean; rm -rf /var/log/*
+
+FROM micro AS final
+# Define labels according to https://en.opensuse.org/Building_derived_containers
+# labelprefix=com.suse.application.frr
+LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
+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.version="8.4"
+LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
+LABEL org.opencontainers.image.created="%BUILDTIME%"
+LABEL org.opencontainers.image.vendor="SUSE LLC"
+LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%frr:8.4-%RELEASE%"
+LABEL org.openbuildservice.disturl="%DISTURL%"
+LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
+LABEL com.suse.eula="SUSE Combined EULA February 2024"
+LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
+LABEL com.suse.image-type="application"
+LABEL com.suse.release-stage="released"
+# endlabelprefix
+
+COPY --from=base /installroot /
+
+#Install frr
+USER root
+
+ENV PYTHONDONTWRITEBYTECODE yes
+
+# frr.sh is the entry point. This script examines environment
+# variables to direct operation and configure ovn
+ADD frr.sh /root/
+ADD daemons /etc/frr
+ADD frr.conf /etc/frr
+ADD vtysh.conf /etc/frr
+
+RUN chown frr:frr /etc/frr/daemons /etc/frr/frr.conf
+
+RUN ln -s /usr/bin/catatonit /sbin/tini
+RUN usermod -a -G frrvty frr
+
+COPY docker-start /usr/libexec/frr/docker-start
+RUN cp -r /usr/libexec/frr /usr/lib/ # required because of the different path on rhel
+
+WORKDIR /root
+ENTRYPOINT ["/sbin/tini", "--"]
+
+COPY docker-start /usr/lib/frr/docker-start
+RUN chmod +x /usr/lib/frr/docker-start
+CMD ["/usr/lib/frr/docker-start"]
diff --git a/frr-image/_service b/frr-image/_service
new file mode 100644
index 0000000..355a193
--- /dev/null
+++ b/frr-image/_service
@@ -0,0 +1,13 @@
+
+
+
+
+ Dockerfile
+ IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})
+ IMG_PREFIX
+ IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)
+ IMG_REPO
+ SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)
+ SUPPORT_LEVEL
+
+
diff --git a/frr-image/daemons b/frr-image/daemons
new file mode 100644
index 0000000..81057fa
--- /dev/null
+++ b/frr-image/daemons
@@ -0,0 +1,82 @@
+# This file tells the frr package which daemons to start.
+#
+# Entries are in the format: =(yes|no|priority)
+# 0, "no" = disabled
+# 1, "yes" = highest priority
+# 2 .. 10 = lower priorities
+#
+# For daemons which support multiple instances, a 2nd line listing
+# the instances can be added. Eg for ospfd:
+# ospfd=yes
+# ospfd_instances="1,2"
+#
+# Priorities were suggested by Dancer .
+# They're used to start the FRR daemons in more than one step
+# (for example start one or two at network initialization and the
+# rest later). The number of FRR daemons being small, priorities
+# must be between 1 and 9, inclusive (or the initscript has to be
+# changed). /etc/init.d/frr then can be started as
+#
+# /etc/init.d/frr >
+#
+# where priority 0 is the same as 'stop', priority 10 or 'start'
+# means 'start all'
+#
+# Sample configurations for these daemons can be found in
+# /usr/share/doc/frr/examples/.
+#
+# ATTENTION:
+#
+# When activation a daemon at the first time, a config file, even if it is
+# empty, has to be present *and* be owned by the user and group "frr", else
+# the daemon will not be started by /etc/init.d/frr. The permissions should
+# be u=rw,g=r,o=.
+# When using "vtysh" such a config file is also needed. It should be owned by
+# group "frrvty" and set to ug=rw,o= though. Check /etc/pam.d/frr, too.
+#
+watchfrr_enable=yes
+watchfrr_options="-r '/usr/lib/frr/frr restart %s' -s '/usr/lib/frr/frr start %s' -k '/usr/lib/frr/frr stop %s'"
+#
+zebra=yes
+bgpd=yes
+ospfd=no
+ospf6d=no
+ripd=no
+ripngd=no
+isisd=no
+pimd=no
+nhrpd=no
+eigrpd=no
+sharpd=no
+pbrd=no
+staticd=yes
+bfdd=yes
+fabricd=no
+
+#
+# Command line options for the daemons
+#
+zebra_options=("-A 127.0.0.1")
+bgpd_options=("-A 127.0.0.1")
+ospfd_options=("-A 127.0.0.1")
+ospf6d_options=("-A ::1")
+ripd_options=("-A 127.0.0.1")
+ripngd_options=("-A ::1")
+isisd_options=("-A 127.0.0.1")
+pimd_options=("-A 127.0.0.1")
+nhrpd_options=("-A 127.0.0.1")
+eigrpd_options=("-A 127.0.0.1")
+sharpd_options=("-A 127.0.0.1")
+pbrd_options=("-A 127.0.0.1")
+staticd_options=("-A 127.0.0.1")
+bfdd_options=("-A 127.0.0.1")
+fabricd_options=("-A 127.0.0.1")
+
+#
+# If the vtysh_enable is yes, then the unified config is read
+# and applied if it exists. If no unified frr.conf exists
+# then the per-daemon .conf files are used)
+# If vtysh_enable is no or non-existant, the frr.conf is ignored.
+# it is highly suggested to have this set to yes
+vtysh_enable=yes
+
diff --git a/frr-image/docker-start b/frr-image/docker-start
new file mode 100644
index 0000000..eaa7d74
--- /dev/null
+++ b/frr-image/docker-start
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+source /usr/lib/frr/frrcommon.sh
+/usr/lib/frr/watchfrr $(daemon_list)
diff --git a/frr-image/frr.conf b/frr-image/frr.conf
new file mode 100644
index 0000000..58aa59d
--- /dev/null
+++ b/frr-image/frr.conf
@@ -0,0 +1,53 @@
+frr defaults traditional
+log file /var/log/frr/frr.log
+log syslog informational
+log stdout debugging
+ipv6 forwarding
+service integrated-vtysh-config
+!
+debug bgp updates in
+debug bgp updates out
+debug bgp zebra
+!
+interface eth0
+ no ipv6 nd suppress-ra
+ ipv6 nd ra-interval 10
+!
+router bgp OCPASN
+ bgp router-id OCPROUTERID
+ bgp bestpath as-path multipath-relax
+ bgp bestpath compare-routerid
+!
+ neighbor OCPnodes peer-group
+ neighbor OCPnodes description Internal OCP Nodes
+ neighbor OCPnodes remote-as OCPASN
+ neighbor OCPnodes bfd
+ neighbor OCPnodes capability extended-nexthop
+ !neighbor eth0 interface peer-group OCPnodes
+ !neighbor OCPPEER remote-as OCPASN peer-group OCPnodes
+ neighbor OCPPEER peer-group OCPnodes
+ !
+ address-family ipv4 unicast
+ redistribute connected
+ neighbor OCPnodes activate
+ exit-address-family
+ !
+ address-family ipv6 unicast
+ redistribute connected
+ neighbor OCPnodes activate
+ neighbor OCPnodes nexthop-local unchanged
+ exit-address-family
+ !
+!
+bfd
+ peer OCPPEER vrf default interface eth0
+ receive-interval 2000
+ transmit-interval 2000
+ echo-mode
+ echo-interval 3000
+ no shutdown
+ exit
+!
+line vty
+!
+
diff --git a/frr-image/frr.sh b/frr-image/frr.sh
new file mode 100644
index 0000000..ff154b2
--- /dev/null
+++ b/frr-image/frr.sh
@@ -0,0 +1,124 @@
+#!/bin/bash
+#set -euo pipefail
+
+# Enable verbose shell output if FRR_SH_VERBOSE is set to 'true'
+if [[ "${FRR_SH_VERBOSE:-}" == "true" ]]; then
+ set -x
+fi
+
+# The argument to the command is the operation to be performed
+# frr-node display display_env
+# a cmd must be provided, there is no default
+cmd=${1:-""}
+
+# The frr user id, by default it is going to be frr:frr
+frr_user_id=${FRR_USER_ID:-""}
+
+# frr options
+frr_options=${FRR_OPTIONS:-""}
+
+# This script is the entrypoint to the image.
+# frr.sh version (update when API between daemonset and script changes - v.x.y)
+frr_version="3"
+
+# The daemonset version must be compatible with this script.
+# The default when FRR_DAEMONSET_VERSION is not set is version 3
+frr_daemonset_version=${FRR_DAEMONSET_VERSION:-"3"}
+
+# hostname is the host's hostname when using host networking,
+# This is useful on the master
+# otherwise it is the container ID (useful for debugging).
+frr_pod_host=${K8S_NODE:-$(hostname)}
+
+# The ovs user id, by default it is going to be root:root
+frr_user_id=${FRR_USER_ID:-""}
+
+# frr options
+frr_options=${FRR_OPTIONS:-""}
+
+# frr.conf variables
+ocp_asn=${OCPASN:-65000}
+ocp_routerid=${OCPROUTERID:-"10.10.10.1"}
+ocp_peer=${OCPPEER:-"10.10.10.1"}
+
+FRR_ETCDIR=/etc/frr
+FRR_RUNDIR=/var/run/frr
+FRR_LOGDIR=/var/log/frr
+
+# =========================================
+
+setup_frr_permissions() {
+ chown -R ${frr_user_id} ${FRR_RUNDIR}
+ chown -R ${frr_user_id} ${FRR_LOGDIR}
+ chown -R ${frr_user_id} ${FRR_ETCDIR}
+}
+
+# =========================================
+
+display_version() {
+ echo " =================== hostname: ${frr_pod_host}"
+ echo " =================== daemonset version ${frr_daemonset_version}"
+ if [[ -f /root/git_info ]]; then
+ disp_ver=$(cat /root/git_info)
+ return
+ fi
+}
+
+display_env() {
+ echo FRR_USER_ID ${frr_user_id}
+ echo FRR_OPTIONS ${frr_options}
+ echo frr.sh version ${frr_version}
+ echo ocp_asn ${ocp_asn}
+ echo ocp_routerid ${ocp_routerid}
+ echo ocp_peer ${ocp_peer}
+}
+
+# frr-node - all nodes
+frr-node() {
+ trap 'kill $(jobs -p) ; exit 0' TERM
+ rm -f ${FRR_RUNDIR}/frr.pid
+ echo "=============== frr-node ========== update frr.conf"
+ sed -i "s/OCPASN/$ocp_asn/" /etc/frr/frr.conf
+ sed -i "s/OCPPEER/$ocp_peer/" /etc/frr/frr.conf
+ sed -i "s/OCPROUTERID/$ocp_routerid/" /etc/frr/frr.conf
+
+ #chown -R frr:frr /etc/frr
+ chown -R frr:frr ${FRR_RUNDIR}
+ echo "=============== frr-node ========== starting"
+ # /usr/lib/frr/frrinit.sh start
+ # bash -x /usr/lib/frr/frrinit.sh start
+ bash -x
+ /usr/lib/frr/frrinit.sh start
+ frrResult=$?
+ echo "=============== frrinit result is ${frrResult} "
+
+ # Sleep forever
+ exec tail -f /dev/null
+}
+
+echo "================== frr.sh --- version: ${frr_version} ================"
+
+display_version
+
+display_env
+
+case ${cmd} in
+"frr-node")
+ frr-node
+ ;;
+"display_env")
+ display_env
+ exit 0
+ ;;
+"display")
+ display
+ exit 0
+ ;;
+*)
+ echo "invalid command ${cmd}"
+ echo "valid v3 commands: frr-node display_env display "
+ exit 0
+ ;;
+esac
+
+exit 0
diff --git a/frr-image/vtysh.conf b/frr-image/vtysh.conf
new file mode 100644
index 0000000..473a0f4
diff --git a/kubectl-image/Dockerfile b/kubectl-image/Dockerfile
new file mode 100644
index 0000000..11a4f87
--- /dev/null
+++ b/kubectl-image/Dockerfile
@@ -0,0 +1,34 @@
+# SPDX-License-Identifier: Apache-2.0
+#!BuildTag: %%IMG_PREFIX%%kubectl:1.30.3
+#!BuildTag: %%IMG_PREFIX%%kubectl:1.30.3-%RELEASE%
+#!BuildVersion: 15.6
+ARG SLE_VERSION
+FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
+
+FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
+COPY --from=micro / /installroot/
+RUN zypper --installroot /installroot --non-interactive install --no-recommends kubectl; zypper -n clean; rm -rf /var/log/*
+
+FROM micro AS final
+
+# Define labels according to https://en.opensuse.org/Building_derived_containers
+# labelprefix=com.suse.application.kubectl
+LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
+LABEL org.opencontainers.image.title="SLE kubectl image"
+LABEL org.opencontainers.image.description="kubectl on the SLE Base Container Image."
+LABEL org.opencontainers.image.version="1.30.3"
+LABEL org.opencontainers.image.url="https://www.suse.com/solutions/edge-computing/"
+LABEL org.opencontainers.image.created="%BUILDTIME%"
+LABEL org.opencontainers.image.vendor="SUSE LLC"
+LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%kubectl:1.30.3-%RELEASE%"
+LABEL org.openbuildservice.disturl="%DISTURL%"
+LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
+LABEL com.suse.eula="SUSE Combined EULA February 2024"
+LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
+LABEL com.suse.image-type="application"
+LABEL com.suse.release-stage="released"
+# endlabelprefix
+
+COPY --from=base /installroot /
+
+ENTRYPOINT ["/usr/bin/kubectl"]
diff --git a/kubectl-image/_service b/kubectl-image/_service
new file mode 100644
index 0000000..2d99fa4
--- /dev/null
+++ b/kubectl-image/_service
@@ -0,0 +1,12 @@
+
+
+
+ Dockerfile
+ IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})
+ IMG_PREFIX
+ IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)
+ IMG_REPO
+ SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)
+ SUPPORT_LEVEL
+
+
diff --git a/kubectl/kubectl.spec b/kubectl/kubectl.spec
index 05facc5..05bf147 100644
--- a/kubectl/kubectl.spec
+++ b/kubectl/kubectl.spec
@@ -1,6 +1,6 @@
%global debug_package %{nil}
-Name: kubectl-1303
+Name: kubectl
Version: 1.30.3
Release: 0
Summary: Command-line utility for interacting with a Kubernetes cluster
diff --git a/kubevirt-chart/Chart.yaml b/kubevirt-chart/Chart.yaml
index cf362dc..6fddeb9 100644
--- a/kubevirt-chart/Chart.yaml
+++ b/kubevirt-chart/Chart.yaml
@@ -1,5 +1,5 @@
-#!BuildTag: %%IMG_PREFIX%%sriov-crd-chart:%%CHART_MAJOR%%.0.0_up0.4.0-%RELEASE%
-#!BuildTag: %%IMG_PREFIX%%sriov-crd-chart:%%CHART_MAJOR%%.0.0_up0.4.0
+#!BuildTag: %%IMG_PREFIX%%kubevirt-chart:%%CHART_MAJOR%%.0.0_up0.4.0-%RELEASE%
+#!BuildTag: %%IMG_PREFIX%%kubevirt-chart:%%CHART_MAJOR%%.0.0_up0.4.0
apiVersion: v2
appVersion: 1.3.1
description: A Helm chart for KubeVirt
diff --git a/rancher-turtles-chart/templates/metal3-infrastructure.yaml b/rancher-turtles-chart/templates/metal3-infrastructure.yaml
index 6bb08f9..098468f 100644
--- a/rancher-turtles-chart/templates/metal3-infrastructure.yaml
+++ b/rancher-turtles-chart/templates/metal3-infrastructure.yaml
@@ -2,6 +2,15 @@
{{- $namespace := index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "namespace" }}
{{- if not (lookup "v1" "Namespace" "" $namespace) }}
---
+apiVersion: v1
+kind: Namespace
+metadata:
+ annotations:
+ "helm.sh/hook": "post-install, post-upgrade"
+ "helm.sh/hook-weight": "1"
+ name: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "namespace" }}
+{{- end }}
+---
apiVersion: turtles-capi.cattle.io/v1alpha1
kind: ClusterctlConfig
metadata:
@@ -13,15 +22,6 @@ spec:
url: "https://github.com/metal3-io/cluster-api-provider-metal3/releases/v1.7.2/infrastructure-components.yaml"
type: InfrastructureProvider
---
-apiVersion: v1
-kind: Namespace
-metadata:
- annotations:
- "helm.sh/hook": "post-install, post-upgrade"
- "helm.sh/hook-weight": "1"
- name: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "namespace" }}
-{{- end }}
----
apiVersion: turtles-capi.cattle.io/v1alpha1
kind: CAPIProvider
metadata:
@@ -33,8 +33,8 @@ metadata:
spec:
name: metal3
type: infrastructure
-{{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }}
- version: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }}
+{{- if index .Values "cluster-api-operator" "cluster-api" "metal3" "version" }}
+ version: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "version" }}
{{- end }}
configSecret:
{{- if index .Values "cluster-api-operator" "cluster-api" "configSecret" "name" }}
diff --git a/rancher-turtles-chart/values.yaml b/rancher-turtles-chart/values.yaml
index 6c7227b..92db701 100644
--- a/rancher-turtles-chart/values.yaml
+++ b/rancher-turtles-chart/values.yaml
@@ -52,18 +52,19 @@ cluster-api-operator:
readOnly: true
cluster-api:
enabled: true
+ version: "v1.7.7"
configSecret:
name: ""
defaultName: capi-env-variables
core:
namespace: capi-system
- imageUrl: ""
+ imageUrl: "registry.rancher.com/rancher/cluster-api-controller:v1.7.7"
fetchConfig:
url: ""
selector: ""
rke2:
enabled: true
- version: ""
+ version: "v0.8.0"
bootstrap:
namespace: rke2-bootstrap-system
imageUrl: "registry.rancher.com/rancher/cluster-api-provider-rke2-bootstrap:v0.8.0"
@@ -78,7 +79,7 @@ cluster-api-operator:
selector: ""
metal3:
enabled: true
- version: ""
+ version: "v1.7.2"
infrastructure:
namespace: capm3-system
imageUrl: "%%IMG_REPO%%/%%IMG_PREFIX%%cluster-api-provider-metal3:1.7.2"
@@ -87,4 +88,4 @@ cluster-api-operator:
selector: ""
ipam:
namespace: capm3-system
- imageUrl: "%%IMG_REPO%%/%%IMG_PREFIX%%images/ip-address-manager:1.7.2"
+ imageUrl: "%%IMG_REPO%%/%%IMG_PREFIX%%ip-address-manager:1.7.2"
diff --git a/release-manifest-image/_service b/release-manifest-image/_service
index d9e13b3..aea1019 100644
--- a/release-manifest-image/_service
+++ b/release-manifest-image/_service
@@ -6,11 +6,15 @@
IMG_PREFIX
IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)
IMG_REPO
- release_manifest.yaml
- CHART_REPO=$(rpm --macros=/root/.rpmmacros -E %chart_repo)
- CHART_REPO
SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)
SUPPORT_LEVEL
+
+
+ release_manifest.yaml
+ IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})
+ IMG_PREFIX
+ CHART_REPO=$(rpm --macros=/root/.rpmmacros -E %chart_repo)
+ CHART_REPO
CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})
CHART_MAJOR
diff --git a/release-manifest-image/release_manifest.yaml b/release-manifest-image/release_manifest.yaml
index 7775a98..1cae759 100644
--- a/release-manifest-image/release_manifest.yaml
+++ b/release-manifest-image/release_manifest.yaml
@@ -37,19 +37,19 @@ spec:
repository: https://charts.rancher.io
- prettyName: MetalLB
releaseName: metallb
- chart: %%CHART_REPO%%/%%IMAGE_PREFIX%%metallb-chart
+ chart: %%CHART_REPO%%/%%IMG_PREFIX%%metallb-chart
version: %%CHART_MAJOR%%.0.0+up0.14.9
- prettyName: CDI
releaseName: cdi
- chart: %%CHART_REPO%%/%%IMAGE_PREFIX%%cdi-chart
+ chart: %%CHART_REPO%%/%%IMG_PREFIX%%cdi-chart
version: %%CHART_MAJOR%%.0.0+up0.4.0
- prettyName: KubeVirt
releaseName: kubevirt
- chart: %%CHART_REPO%%/%%IMAGE_PREFIX%%kubevirt-chart
+ chart: %%CHART_REPO%%/%%IMG_PREFIX%%kubevirt-chart
version: %%CHART_MAJOR%%.0.0+up0.4.0
addonCharts:
- releaseName: kubevirt-dashboard-extension
- chart: %%CHART_REPO%%/%%IMAGE_PREFIX%%kubevirt-dashboard-extension-chart
+ chart: %%CHART_REPO%%/%%IMG_PREFIX%%kubevirt-dashboard-extension-chart
version: %%CHART_MAJOR%%.0.0+up1.2.0
- prettyName: NeuVector
releaseName: neuvector
@@ -68,7 +68,7 @@ spec:
version: 2.0.0
- prettyName: EndpointCopierOperator
releaseName: endpoint-copier-operator
- chart: %%CHART_REPO%%/%%IMAGE_PREFIX%%endpoint-copier-operator-chart
+ chart: %%CHART_REPO%%/%%IMG_PREFIX%%endpoint-copier-operator-chart
version: %%CHART_MAJOR%%.0.0+up0.2.1
- prettyName: Elemental
releaseName: elemental-operator
@@ -80,25 +80,25 @@ spec:
version: 1.6.5
- prettyName: SRIOV
releaseName: sriov-network-operator
- chart: %%CHART_REPO%%/%%IMAGE_PREFIX%%sriov-network-operator-chart
+ chart: %%CHART_REPO%%/%%IMG_PREFIX%%sriov-network-operator-chart
version: %%CHART_MAJOR%%.0.0+up1.4.0
dependencyCharts:
- releaseName: sriov-crd
- chart: %%CHART_REPO%%/%%IMAGE_PREFIX%%sriov-crd-chart
+ chart: %%CHART_REPO%%/%%IMG_PREFIX%%sriov-crd-chart
version: %%CHART_MAJOR%%.0.0+up1.4.0
- prettyName: Akri
releaseName: akri
- chart: %%CHART_REPO%%/%%IMAGE_PREFIX%%akri-chart
+ chart: %%CHART_REPO%%/%%IMG_PREFIX%%akri-chart
version: %%CHART_MAJOR%%.0.0+up0.12.20
addonCharts:
- releaseName: akri-dashboard-extension
- chart: %%CHART_REPO%%/%%IMAGE_PREFIX%%akri-dashboard-extension-chart
+ chart: %%CHART_REPO%%/%%IMG_PREFIX%%akri-dashboard-extension-chart
version: %%CHART_MAJOR%%.0.0+up1.1.0
- prettyName: Metal3
releaseName: metal3
- chart: %%CHART_REPO%%/%%IMAGE_PREFIX%%metal3-chart
+ chart: %%CHART_REPO%%/%%IMG_PREFIX%%metal3-chart
version: %%CHART_MAJOR%%.0.0+up0.9.0
- prettyName: RancherTurtles
releaseName: rancher-turtles
- chart: %%CHART_REPO%%/%%IMAGE_PREFIX%%rancher-turtles-chart
+ chart: %%CHART_REPO%%/%%IMG_PREFIX%%rancher-turtles-chart
version: %%CHART_MAJOR%%.0.0+up0.4.0