diff --git a/.obs/workflows.yml b/.obs/workflows.yml
index 4d9a43860..b7d41cfd4 100644
--- a/.obs/workflows.yml
+++ b/.obs/workflows.yml
@@ -93,6 +93,22 @@ staging_build:
source_project: home:defolos:BCI:CR:Tumbleweed
source_package: kiwi-image
target_project: home:defolos:BCI:CR:Tumbleweed:Staging
+ - branch_package:
+ source_project: home:defolos:BCI:CR:Tumbleweed
+ source_package: kubectl-1.29-image
+ target_project: home:defolos:BCI:CR:Tumbleweed:Staging
+ - branch_package:
+ source_project: home:defolos:BCI:CR:Tumbleweed
+ source_package: kubectl-1.30-image
+ target_project: home:defolos:BCI:CR:Tumbleweed:Staging
+ - branch_package:
+ source_project: home:defolos:BCI:CR:Tumbleweed
+ source_package: kubectl-1.31-image
+ target_project: home:defolos:BCI:CR:Tumbleweed:Staging
+ - branch_package:
+ source_project: home:defolos:BCI:CR:Tumbleweed
+ source_package: kubectl-1.32-image
+ target_project: home:defolos:BCI:CR:Tumbleweed:Staging
- branch_package:
source_project: home:defolos:BCI:CR:Tumbleweed
source_package: mariadb-image
@@ -327,6 +343,18 @@ refresh_devel_BCI:
- trigger_services:
project: devel:BCI:Tumbleweed
package: kiwi-image
+ - trigger_services:
+ project: devel:BCI:Tumbleweed
+ package: kubectl-1.29-image
+ - trigger_services:
+ project: devel:BCI:Tumbleweed
+ package: kubectl-1.30-image
+ - trigger_services:
+ project: devel:BCI:Tumbleweed
+ package: kubectl-1.31-image
+ - trigger_services:
+ project: devel:BCI:Tumbleweed
+ package: kubectl-1.32-image
- trigger_services:
project: devel:BCI:Tumbleweed
package: mariadb-image
diff --git a/kubectl-1.29-image/Dockerfile b/kubectl-1.29-image/Dockerfile
new file mode 100644
index 000000000..6c4fd9a74
--- /dev/null
+++ b/kubectl-1.29-image/Dockerfile
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: Apache-2.0
+
+# Copyright (c) 2025 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 content of THIS FILE IS AUTOGENERATED and should not be manually modified.
+# It is maintained by the BCI team and generated by
+# https://github.com/SUSE/BCI-dockerfile-generator
+
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# You can contact the BCI team via https://github.com/SUSE/bci/discussions
+
+#!UseOBSRepositories
+
+#!BuildTag: opensuse/kubectl:%%kubectl_version%%-%RELEASE%
+#!BuildTag: opensuse/kubectl:%%kubectl_version%%
+#!BuildTag: opensuse/kubectl:1.29
+#!BuildTag: opensuse/kubectl:1.29
+
+FROM opensuse/bci/bci-micro:latest AS target
+FROM opensuse/tumbleweed:latest AS builder
+COPY --from=target / /target
+
+RUN set -euo pipefail; \
+ zypper -n --installroot /target --gpg-auto-import-keys install --no-recommends kubernetes1.29-client; \
+ zypper -n clean; \
+ rm -rf {/target,}/var/log/{alternatives.log,lastlog,tallylog,zypper.log,zypp/history,YaST2}
+FROM opensuse/bci/bci-micro:latest
+COPY --from=builder /target /
+# Define labels according to https://en.opensuse.org/Building_derived_containers
+# labelprefix=org.opensuse.application.kubectl
+LABEL org.opencontainers.image.title="openSUSE Tumbleweed kubectl"
+LABEL org.opencontainers.image.description="Kubernetes CLI for communicating with a Kubernetes cluster's control plane, using the Kubernetes API."
+LABEL org.opencontainers.image.version="%%kubectl_version%%"
+LABEL org.opencontainers.image.url="https://www.opensuse.org"
+LABEL org.opencontainers.image.created="%BUILDTIME%"
+LABEL org.opencontainers.image.vendor="openSUSE Project"
+LABEL org.opencontainers.image.source="%SOURCEURL%"
+LABEL org.opencontainers.image.ref.name="%%kubectl_version%%-%RELEASE%"
+LABEL org.opensuse.reference="registry.opensuse.org/opensuse/kubectl:%%kubectl_version%%-%RELEASE%"
+LABEL org.openbuildservice.disturl="%DISTURL%"
+LABEL org.opensuse.lifecycle-url="https://en.opensuse.org/Lifetime#openSUSE_BCI"
+LABEL org.opensuse.release-stage="released"
+# endlabelprefix
+LABEL io.artifacthub.package.readme-url="https://raw.githubusercontent.com/SUSE/BCI-dockerfile-generator/Tumbleweed/kubectl-1.29-image/README.md"
+LABEL io.artifacthub.package.logo-url="https://raw.githubusercontent.com/kubernetes/kubernetes/master/logo/logo.png"
+ENTRYPOINT ["kubectl"]
diff --git a/kubectl-1.29-image/README.md b/kubectl-1.29-image/README.md
new file mode 100644
index 000000000..1e01f96b7
--- /dev/null
+++ b/kubectl-1.29-image/README.md
@@ -0,0 +1,32 @@
+# kubectl Container Image
+
+![Redistributable](https://img.shields.io/badge/Redistributable-Yes-green)
+
+Kubectl is a command line tool for communicating with a Kubernetes cluster's control plane, using the Kubernetes API.
+
+## How to use this Container Image
+
+To run commands inside the container for the current cluster for which the kubeconfig is available in `/root/.kube.config`:
+
+```ShellSession
+podman run --rm --name kubectl\
+ registry.opensuse.org/opensuse/kubectl:1.29 get nodes
+```
+
+To pass configuration of a remote cluster to the container:
+
+```ShellSession
+podman run --rm --name kubectl\
+ -v /localpath/to/kubeconfig:/root/.kube/config:Z
+ registry.opensuse.org/opensuse/kubectl:1.29 get nodes
+```
+
+## Licensing
+
+`SPDX-License-Identifier: Apache-2.0`
+
+This documentation and the build recipe are licensed as Apache-2.0.
+The container itself contains various software components under various open source licenses listed in the associated
+Software Bill of Materials (SBOM).
+
+This image is based on [openSUSE Tumbleweed](https://get.opensuse.org/tumbleweed/).
diff --git a/kubectl-1.29-image/_service b/kubectl-1.29-image/_service
new file mode 100644
index 000000000..7ba4d95c1
--- /dev/null
+++ b/kubectl-1.29-image/_service
@@ -0,0 +1,10 @@
+
+
+
+
+ Dockerfile
+ %%kubectl_version%%
+ kubernetes1.29-client
+ patch
+
+
\ No newline at end of file
diff --git a/kubectl-1.29-image/kubectl-1.29-image.changes b/kubectl-1.29-image/kubectl-1.29-image.changes
new file mode 100644
index 000000000..0075623d3
--- /dev/null
+++ b/kubectl-1.29-image/kubectl-1.29-image.changes
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------
+Mon Jan 13 11:29:05 UTC 2025 - SUSE Update Bot
+
+- First version of the kubectl 1.29 BCI
diff --git a/kubectl-1.30-image/Dockerfile b/kubectl-1.30-image/Dockerfile
new file mode 100644
index 000000000..94bb350aa
--- /dev/null
+++ b/kubectl-1.30-image/Dockerfile
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: Apache-2.0
+
+# Copyright (c) 2025 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 content of THIS FILE IS AUTOGENERATED and should not be manually modified.
+# It is maintained by the BCI team and generated by
+# https://github.com/SUSE/BCI-dockerfile-generator
+
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# You can contact the BCI team via https://github.com/SUSE/bci/discussions
+
+#!UseOBSRepositories
+
+#!BuildTag: opensuse/kubectl:%%kubectl_version%%-%RELEASE%
+#!BuildTag: opensuse/kubectl:%%kubectl_version%%
+#!BuildTag: opensuse/kubectl:1.30
+#!BuildTag: opensuse/kubectl:1.30
+
+FROM opensuse/bci/bci-micro:latest AS target
+FROM opensuse/tumbleweed:latest AS builder
+COPY --from=target / /target
+
+RUN set -euo pipefail; \
+ zypper -n --installroot /target --gpg-auto-import-keys install --no-recommends kubernetes1.30-client; \
+ zypper -n clean; \
+ rm -rf {/target,}/var/log/{alternatives.log,lastlog,tallylog,zypper.log,zypp/history,YaST2}
+FROM opensuse/bci/bci-micro:latest
+COPY --from=builder /target /
+# Define labels according to https://en.opensuse.org/Building_derived_containers
+# labelprefix=org.opensuse.application.kubectl
+LABEL org.opencontainers.image.title="openSUSE Tumbleweed kubectl"
+LABEL org.opencontainers.image.description="Kubernetes CLI for communicating with a Kubernetes cluster's control plane, using the Kubernetes API."
+LABEL org.opencontainers.image.version="%%kubectl_version%%"
+LABEL org.opencontainers.image.url="https://www.opensuse.org"
+LABEL org.opencontainers.image.created="%BUILDTIME%"
+LABEL org.opencontainers.image.vendor="openSUSE Project"
+LABEL org.opencontainers.image.source="%SOURCEURL%"
+LABEL org.opencontainers.image.ref.name="%%kubectl_version%%-%RELEASE%"
+LABEL org.opensuse.reference="registry.opensuse.org/opensuse/kubectl:%%kubectl_version%%-%RELEASE%"
+LABEL org.openbuildservice.disturl="%DISTURL%"
+LABEL org.opensuse.lifecycle-url="https://en.opensuse.org/Lifetime#openSUSE_BCI"
+LABEL org.opensuse.release-stage="released"
+# endlabelprefix
+LABEL io.artifacthub.package.readme-url="https://raw.githubusercontent.com/SUSE/BCI-dockerfile-generator/Tumbleweed/kubectl-1.30-image/README.md"
+LABEL io.artifacthub.package.logo-url="https://raw.githubusercontent.com/kubernetes/kubernetes/master/logo/logo.png"
+ENTRYPOINT ["kubectl"]
diff --git a/kubectl-1.30-image/README.md b/kubectl-1.30-image/README.md
new file mode 100644
index 000000000..7ad889cf4
--- /dev/null
+++ b/kubectl-1.30-image/README.md
@@ -0,0 +1,32 @@
+# kubectl Container Image
+
+![Redistributable](https://img.shields.io/badge/Redistributable-Yes-green)
+
+Kubectl is a command line tool for communicating with a Kubernetes cluster's control plane, using the Kubernetes API.
+
+## How to use this Container Image
+
+To run commands inside the container for the current cluster for which the kubeconfig is available in `/root/.kube.config`:
+
+```ShellSession
+podman run --rm --name kubectl\
+ registry.opensuse.org/opensuse/kubectl:1.30 get nodes
+```
+
+To pass configuration of a remote cluster to the container:
+
+```ShellSession
+podman run --rm --name kubectl\
+ -v /localpath/to/kubeconfig:/root/.kube/config:Z
+ registry.opensuse.org/opensuse/kubectl:1.30 get nodes
+```
+
+## Licensing
+
+`SPDX-License-Identifier: Apache-2.0`
+
+This documentation and the build recipe are licensed as Apache-2.0.
+The container itself contains various software components under various open source licenses listed in the associated
+Software Bill of Materials (SBOM).
+
+This image is based on [openSUSE Tumbleweed](https://get.opensuse.org/tumbleweed/).
diff --git a/kubectl-1.30-image/_service b/kubectl-1.30-image/_service
new file mode 100644
index 000000000..adbac56b2
--- /dev/null
+++ b/kubectl-1.30-image/_service
@@ -0,0 +1,10 @@
+
+
+
+
+ Dockerfile
+ %%kubectl_version%%
+ kubernetes1.30-client
+ patch
+
+
\ No newline at end of file
diff --git a/kubectl-1.30-image/kubectl-1.30-image.changes b/kubectl-1.30-image/kubectl-1.30-image.changes
new file mode 100644
index 000000000..b3ff0318f
--- /dev/null
+++ b/kubectl-1.30-image/kubectl-1.30-image.changes
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------
+Mon Jan 13 11:29:05 UTC 2025 - SUSE Update Bot
+
+- First version of the kubectl 1.30 BCI
diff --git a/kubectl-1.31-image/Dockerfile b/kubectl-1.31-image/Dockerfile
new file mode 100644
index 000000000..a8d1b6698
--- /dev/null
+++ b/kubectl-1.31-image/Dockerfile
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: Apache-2.0
+
+# Copyright (c) 2025 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 content of THIS FILE IS AUTOGENERATED and should not be manually modified.
+# It is maintained by the BCI team and generated by
+# https://github.com/SUSE/BCI-dockerfile-generator
+
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# You can contact the BCI team via https://github.com/SUSE/bci/discussions
+
+#!UseOBSRepositories
+
+#!BuildTag: opensuse/kubectl:%%kubectl_version%%-%RELEASE%
+#!BuildTag: opensuse/kubectl:%%kubectl_version%%
+#!BuildTag: opensuse/kubectl:1.31
+#!BuildTag: opensuse/kubectl:1.31
+
+FROM opensuse/bci/bci-micro:latest AS target
+FROM opensuse/tumbleweed:latest AS builder
+COPY --from=target / /target
+
+RUN set -euo pipefail; \
+ zypper -n --installroot /target --gpg-auto-import-keys install --no-recommends kubernetes1.31-client; \
+ zypper -n clean; \
+ rm -rf {/target,}/var/log/{alternatives.log,lastlog,tallylog,zypper.log,zypp/history,YaST2}
+FROM opensuse/bci/bci-micro:latest
+COPY --from=builder /target /
+# Define labels according to https://en.opensuse.org/Building_derived_containers
+# labelprefix=org.opensuse.application.kubectl
+LABEL org.opencontainers.image.title="openSUSE Tumbleweed kubectl"
+LABEL org.opencontainers.image.description="Kubernetes CLI for communicating with a Kubernetes cluster's control plane, using the Kubernetes API."
+LABEL org.opencontainers.image.version="%%kubectl_version%%"
+LABEL org.opencontainers.image.url="https://www.opensuse.org"
+LABEL org.opencontainers.image.created="%BUILDTIME%"
+LABEL org.opencontainers.image.vendor="openSUSE Project"
+LABEL org.opencontainers.image.source="%SOURCEURL%"
+LABEL org.opencontainers.image.ref.name="%%kubectl_version%%-%RELEASE%"
+LABEL org.opensuse.reference="registry.opensuse.org/opensuse/kubectl:%%kubectl_version%%-%RELEASE%"
+LABEL org.openbuildservice.disturl="%DISTURL%"
+LABEL org.opensuse.lifecycle-url="https://en.opensuse.org/Lifetime#openSUSE_BCI"
+LABEL org.opensuse.release-stage="released"
+# endlabelprefix
+LABEL io.artifacthub.package.readme-url="https://raw.githubusercontent.com/SUSE/BCI-dockerfile-generator/Tumbleweed/kubectl-1.31-image/README.md"
+LABEL io.artifacthub.package.logo-url="https://raw.githubusercontent.com/kubernetes/kubernetes/master/logo/logo.png"
+ENTRYPOINT ["kubectl"]
diff --git a/kubectl-1.31-image/README.md b/kubectl-1.31-image/README.md
new file mode 100644
index 000000000..86fbc1c70
--- /dev/null
+++ b/kubectl-1.31-image/README.md
@@ -0,0 +1,32 @@
+# kubectl Container Image
+
+![Redistributable](https://img.shields.io/badge/Redistributable-Yes-green)
+
+Kubectl is a command line tool for communicating with a Kubernetes cluster's control plane, using the Kubernetes API.
+
+## How to use this Container Image
+
+To run commands inside the container for the current cluster for which the kubeconfig is available in `/root/.kube.config`:
+
+```ShellSession
+podman run --rm --name kubectl\
+ registry.opensuse.org/opensuse/kubectl:1.31 get nodes
+```
+
+To pass configuration of a remote cluster to the container:
+
+```ShellSession
+podman run --rm --name kubectl\
+ -v /localpath/to/kubeconfig:/root/.kube/config:Z
+ registry.opensuse.org/opensuse/kubectl:1.31 get nodes
+```
+
+## Licensing
+
+`SPDX-License-Identifier: Apache-2.0`
+
+This documentation and the build recipe are licensed as Apache-2.0.
+The container itself contains various software components under various open source licenses listed in the associated
+Software Bill of Materials (SBOM).
+
+This image is based on [openSUSE Tumbleweed](https://get.opensuse.org/tumbleweed/).
diff --git a/kubectl-1.31-image/_service b/kubectl-1.31-image/_service
new file mode 100644
index 000000000..1f5178cf6
--- /dev/null
+++ b/kubectl-1.31-image/_service
@@ -0,0 +1,10 @@
+
+
+
+
+ Dockerfile
+ %%kubectl_version%%
+ kubernetes1.31-client
+ patch
+
+
\ No newline at end of file
diff --git a/kubectl-1.31-image/kubectl-1.31-image.changes b/kubectl-1.31-image/kubectl-1.31-image.changes
new file mode 100644
index 000000000..ef4389cb4
--- /dev/null
+++ b/kubectl-1.31-image/kubectl-1.31-image.changes
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------
+Mon Jan 13 11:29:05 UTC 2025 - SUSE Update Bot
+
+- First version of the kubectl 1.31 BCI
diff --git a/kubectl-1.32-image/Dockerfile b/kubectl-1.32-image/Dockerfile
new file mode 100644
index 000000000..1558e8caa
--- /dev/null
+++ b/kubectl-1.32-image/Dockerfile
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: Apache-2.0
+
+# Copyright (c) 2025 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 content of THIS FILE IS AUTOGENERATED and should not be manually modified.
+# It is maintained by the BCI team and generated by
+# https://github.com/SUSE/BCI-dockerfile-generator
+
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# You can contact the BCI team via https://github.com/SUSE/bci/discussions
+
+#!UseOBSRepositories
+
+#!BuildTag: opensuse/kubectl:%%kubectl_version%%-%RELEASE%
+#!BuildTag: opensuse/kubectl:%%kubectl_version%%
+#!BuildTag: opensuse/kubectl:1.32
+#!BuildTag: opensuse/kubectl:1.32
+#!BuildTag: opensuse/kubectl:latest
+
+FROM opensuse/bci/bci-micro:latest AS target
+FROM opensuse/tumbleweed:latest AS builder
+COPY --from=target / /target
+
+RUN set -euo pipefail; \
+ zypper -n --installroot /target --gpg-auto-import-keys install --no-recommends kubernetes1.32-client; \
+ zypper -n clean; \
+ rm -rf {/target,}/var/log/{alternatives.log,lastlog,tallylog,zypper.log,zypp/history,YaST2}
+FROM opensuse/bci/bci-micro:latest
+COPY --from=builder /target /
+# Define labels according to https://en.opensuse.org/Building_derived_containers
+# labelprefix=org.opensuse.application.kubectl
+LABEL org.opencontainers.image.title="openSUSE Tumbleweed kubectl"
+LABEL org.opencontainers.image.description="Kubernetes CLI for communicating with a Kubernetes cluster's control plane, using the Kubernetes API."
+LABEL org.opencontainers.image.version="%%kubectl_version%%"
+LABEL org.opencontainers.image.url="https://www.opensuse.org"
+LABEL org.opencontainers.image.created="%BUILDTIME%"
+LABEL org.opencontainers.image.vendor="openSUSE Project"
+LABEL org.opencontainers.image.source="%SOURCEURL%"
+LABEL org.opencontainers.image.ref.name="%%kubectl_version%%-%RELEASE%"
+LABEL org.opensuse.reference="registry.opensuse.org/opensuse/kubectl:%%kubectl_version%%-%RELEASE%"
+LABEL org.openbuildservice.disturl="%DISTURL%"
+LABEL org.opensuse.lifecycle-url="https://en.opensuse.org/Lifetime#openSUSE_BCI"
+LABEL org.opensuse.release-stage="released"
+# endlabelprefix
+LABEL io.artifacthub.package.readme-url="https://raw.githubusercontent.com/SUSE/BCI-dockerfile-generator/Tumbleweed/kubectl-1.32-image/README.md"
+LABEL io.artifacthub.package.logo-url="https://raw.githubusercontent.com/kubernetes/kubernetes/master/logo/logo.png"
+ENTRYPOINT ["kubectl"]
diff --git a/kubectl-1.32-image/README.md b/kubectl-1.32-image/README.md
new file mode 100644
index 000000000..575052e40
--- /dev/null
+++ b/kubectl-1.32-image/README.md
@@ -0,0 +1,32 @@
+# kubectl Container Image
+
+![Redistributable](https://img.shields.io/badge/Redistributable-Yes-green)
+
+Kubectl is a command line tool for communicating with a Kubernetes cluster's control plane, using the Kubernetes API.
+
+## How to use this Container Image
+
+To run commands inside the container for the current cluster for which the kubeconfig is available in `/root/.kube.config`:
+
+```ShellSession
+podman run --rm --name kubectl\
+ registry.opensuse.org/opensuse/kubectl:1.32 get nodes
+```
+
+To pass configuration of a remote cluster to the container:
+
+```ShellSession
+podman run --rm --name kubectl\
+ -v /localpath/to/kubeconfig:/root/.kube/config:Z
+ registry.opensuse.org/opensuse/kubectl:1.32 get nodes
+```
+
+## Licensing
+
+`SPDX-License-Identifier: Apache-2.0`
+
+This documentation and the build recipe are licensed as Apache-2.0.
+The container itself contains various software components under various open source licenses listed in the associated
+Software Bill of Materials (SBOM).
+
+This image is based on [openSUSE Tumbleweed](https://get.opensuse.org/tumbleweed/).
diff --git a/kubectl-1.32-image/_service b/kubectl-1.32-image/_service
new file mode 100644
index 000000000..2c8dcbb53
--- /dev/null
+++ b/kubectl-1.32-image/_service
@@ -0,0 +1,10 @@
+
+
+
+
+ Dockerfile
+ %%kubectl_version%%
+ kubernetes1.32-client
+ patch
+
+
\ No newline at end of file
diff --git a/kubectl-1.32-image/kubectl-1.32-image.changes b/kubectl-1.32-image/kubectl-1.32-image.changes
new file mode 100644
index 000000000..8e86e4dd8
--- /dev/null
+++ b/kubectl-1.32-image/kubectl-1.32-image.changes
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------
+Mon Jan 13 11:29:05 UTC 2025 - SUSE Update Bot
+
+- First version of the kubectl 1.32 BCI