From a8bd38569b3187c4bd824a2cfac8a2a1b560dde0c46e5dcb0dfc21be8918b276 Mon Sep 17 00:00:00 2001 From: Denislav Prodanov Date: Wed, 20 Nov 2024 16:16:11 +0200 Subject: [PATCH 1/8] add frr image --- frr-image/Dockerfile | 59 ++++++++++++++++++++ frr-image/_service | 13 +++++ frr-image/daemons | 82 +++++++++++++++++++++++++++ frr-image/docker-start | 4 ++ frr-image/frr.conf | 53 ++++++++++++++++++ frr-image/frr.sh | 124 +++++++++++++++++++++++++++++++++++++++++ frr-image/vtysh.conf | 0 7 files changed, 335 insertions(+) create mode 100644 frr-image/Dockerfile create mode 100644 frr-image/_service create mode 100644 frr-image/daemons create mode 100644 frr-image/docker-start create mode 100644 frr-image/frr.conf create mode 100644 frr-image/frr.sh create mode 100644 frr-image/vtysh.conf diff --git a/frr-image/Dockerfile b/frr-image/Dockerfile new file mode 100644 index 0000000..673046d --- /dev/null +++ b/frr-image/Dockerfile @@ -0,0 +1,59 @@ +# SPDX-License-Identifier: MIT +#!BuildTag: %%IMG_PREFIX%%frr:8.4 +#!BuildTag: %%IMG_PREFIX%%frr:8.4-%RELEASE% +#!BuildTag: %%IMG_PREFIX%%frr:latest +#!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 -- 2.45.2 From bfd031153dadee0f7c07136e7c770343a3134a13a11295dda29760ebd2cbe7ca Mon Sep 17 00:00:00 2001 From: Denislav Prodanov Date: Wed, 20 Nov 2024 16:32:02 +0200 Subject: [PATCH 2/8] run sync package --- .obs/workflows.yml | 4 ++++ frr-image/Dockerfile | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.obs/workflows.yml b/.obs/workflows.yml index a490379..c6f0a53 100644 --- a/.obs/workflows.yml +++ b/.obs/workflows.yml @@ -218,3 +218,7 @@ staging_build: source_package: release-manifest-image source_project: isv:SUSE:Edge:Factory target_project: isv:SUSE:Edge:Factory:Staging + - branch_package: + source_package: frr-image + source_project: isv:SUSE:Edge:Factory + target_project: isv:SUSE:Edge:Factory:Staging diff --git a/frr-image/Dockerfile b/frr-image/Dockerfile index 673046d..da39fef 100644 --- a/frr-image/Dockerfile +++ b/frr-image/Dockerfile @@ -1,7 +1,6 @@ # SPDX-License-Identifier: MIT #!BuildTag: %%IMG_PREFIX%%frr:8.4 #!BuildTag: %%IMG_PREFIX%%frr:8.4-%RELEASE% -#!BuildTag: %%IMG_PREFIX%%frr:latest #!BuildVersion: 15.5 ARG SLE_VERSION FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro -- 2.45.2 From dc44cb42bf5645bfca99bfd12f20f49c17bd3a9ce6b64b1a1030b30caafac073 Mon Sep 17 00:00:00 2001 From: Atanas Dinov Date: Thu, 21 Nov 2024 17:26:05 +0100 Subject: [PATCH 3/8] Fix service param definitions (#30) Reviewed-on: https://src.opensuse.org/suse-edge/Factory/pulls/30 Reviewed-by: Nicolas Belouin Co-authored-by: Atanas Dinov Co-committed-by: Atanas Dinov --- release-manifest-image/_service | 10 ++++++--- release-manifest-image/release_manifest.yaml | 22 ++++++++++---------- 2 files changed, 18 insertions(+), 14 deletions(-) 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 -- 2.45.2 From dda804042025c644833327583a0aa6e5a4b4aab8da92f522c6624d1faa2144b2 Mon Sep 17 00:00:00 2001 From: Ivo Petrov Date: Fri, 22 Nov 2024 10:16:53 +0100 Subject: [PATCH 4/8] Add missing kubectl image (#32) Reviewed-on: https://src.opensuse.org/suse-edge/Factory/pulls/32 Reviewed-by: Denislav Prodanov Co-authored-by: Ivo Petrov Co-committed-by: Ivo Petrov --- .obs/workflows.yml | 4 ++++ kubectl-image/Dockerfile | 34 ++++++++++++++++++++++++++++++++++ kubectl-image/_service | 12 ++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 kubectl-image/Dockerfile create mode 100644 kubectl-image/_service diff --git a/.obs/workflows.yml b/.obs/workflows.yml index c6f0a53..82231a8 100644 --- a/.obs/workflows.yml +++ b/.obs/workflows.yml @@ -222,3 +222,7 @@ staging_build: source_package: frr-image source_project: isv:SUSE:Edge:Factory target_project: isv:SUSE:Edge:Factory:Staging + - branch_package: + source_package: kubectl-image + source_project: isv:SUSE:Edge:Factory + target_project: isv:SUSE:Edge:Factory:Staging diff --git a/kubectl-image/Dockerfile b/kubectl-image/Dockerfile new file mode 100644 index 0000000..c4a4e5e --- /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-1303; 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 + + -- 2.45.2 From d719b5b6e517680f195534086e08771a25cb5bd3f1ffe9c26c6c87a252067490 Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Thu, 21 Nov 2024 17:42:39 +0000 Subject: [PATCH 5/8] rancher-turtles: image/version fixes After further testing I discovered that the cluster-api-controller is not correctly pinned or using the downstream image, and a similar problem exists for CAPM3 (but only after upgrade from an older chart) due to a mistake in the templating. --- .../templates/metal3-infrastructure.yaml | 22 +++++++++---------- rancher-turtles-chart/values.yaml | 9 ++++---- 2 files changed, 16 insertions(+), 15 deletions(-) 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" -- 2.45.2 From a5633fd239c736bbd9e058da48b23a9f5eee8fa71a0120f2c1fd3c9a3777da66 Mon Sep 17 00:00:00 2001 From: Ivo Petrov Date: Fri, 22 Nov 2024 11:31:49 +0200 Subject: [PATCH 6/8] Remove the suffix from kubectl package name --- kubectl-image/Dockerfile | 2 +- kubectl/kubectl.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/kubectl-image/Dockerfile b/kubectl-image/Dockerfile index c4a4e5e..11a4f87 100644 --- a/kubectl-image/Dockerfile +++ b/kubectl-image/Dockerfile @@ -7,7 +7,7 @@ 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-1303; zypper -n clean; rm -rf /var/log/* +RUN zypper --installroot /installroot --non-interactive install --no-recommends kubectl; zypper -n clean; rm -rf /var/log/* FROM micro AS final 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 -- 2.45.2 From f5cc155d16553e07a7822539a21979451c4efacd18e5eea560b26a4038d2ec0f Mon Sep 17 00:00:00 2001 From: Atanas Dinov Date: Fri, 22 Nov 2024 11:52:22 +0200 Subject: [PATCH 7/8] Fix kubevirt chart build tags --- kubevirt-chart/Chart.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 -- 2.45.2 From 6335b818e34a2c4f0b12298413563c7e9d3cf424d517ea60cc5e70f2ab488fe5 Mon Sep 17 00:00:00 2001 From: Denislav Prodanov Date: Wed, 20 Nov 2024 11:49:54 +0200 Subject: [PATCH 8/8] 3.2 branching --- .obs/common.py | 4 +- .obs/workflows.yml | 224 ++++++++++++++++++++++----------------------- 2 files changed, 114 insertions(+), 114 deletions(-) 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 82231a8..66b00a0 100644 --- a/.obs/workflows.yml +++ b/.obs/workflows.yml @@ -4,225 +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: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-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 \ No newline at end of file -- 2.45.2