From 961ceb0df3a3c262037154af042410fe84ae1684 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Sat, 4 Oct 2025 12:51:56 +1000 Subject: [PATCH] feat: add helmfile package configuration Add RPM package configuration for helmfile v1.1.7, a declarative tool for deploying Kubernetes Helm charts. --- rpms/helmfile/1.1.7/release | 1 + rpms/helmfile/Dockerfile | 18 +++++++++++++++ rpms/helmfile/metadata.yaml | 9 ++++++++ rpms/helmfile/resources/build.sh | 14 ++++++++++++ rpms/helmfile/resources/nfpm.yaml | 38 +++++++++++++++++++++++++++++++ 5 files changed, 80 insertions(+) create mode 100644 rpms/helmfile/1.1.7/release create mode 100644 rpms/helmfile/Dockerfile create mode 100644 rpms/helmfile/metadata.yaml create mode 100755 rpms/helmfile/resources/build.sh create mode 100644 rpms/helmfile/resources/nfpm.yaml diff --git a/rpms/helmfile/1.1.7/release b/rpms/helmfile/1.1.7/release new file mode 100644 index 0000000..56a6051 --- /dev/null +++ b/rpms/helmfile/1.1.7/release @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/rpms/helmfile/Dockerfile b/rpms/helmfile/Dockerfile new file mode 100644 index 0000000..539afe6 --- /dev/null +++ b/rpms/helmfile/Dockerfile @@ -0,0 +1,18 @@ +FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest + +# Create output directory for RPMs +RUN mkdir -p /app/dist + +# Set working directory +WORKDIR /app + +ARG PACKAGE_RELEASE +ENV PACKAGE_RELEASE=${PACKAGE_RELEASE} +ARG PACKAGE_VERSION +ENV PACKAGE_VERSION=${PACKAGE_VERSION} + +# Copy resources from the context into the container +COPY resources /app/resources + +# Default command to build RPMs +CMD /app/resources/build.sh \ No newline at end of file diff --git a/rpms/helmfile/metadata.yaml b/rpms/helmfile/metadata.yaml new file mode 100644 index 0000000..ed61512 --- /dev/null +++ b/rpms/helmfile/metadata.yaml @@ -0,0 +1,9 @@ +name: helmfile +release: 1 +version: 1.1.7 +build: +- distro: el/8 + image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest +- distro: el/9 + image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest +github: helmfile/helmfile \ No newline at end of file diff --git a/rpms/helmfile/resources/build.sh b/rpms/helmfile/resources/build.sh new file mode 100755 index 0000000..f7f32b9 --- /dev/null +++ b/rpms/helmfile/resources/build.sh @@ -0,0 +1,14 @@ +#!/usr/bin/bash + +# Download the required files +curl -L -o /app/helmfile.tar.gz https://github.com/helmfile/helmfile/releases/download/v${PACKAGE_VERSION}/helmfile_${PACKAGE_VERSION}_linux_amd64.tar.gz + +# Extract the binary +cd /app +tar -xzf helmfile.tar.gz + +# Make the binary executable +chmod +x /app/helmfile + +# Build the RPM +nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm \ No newline at end of file diff --git a/rpms/helmfile/resources/nfpm.yaml b/rpms/helmfile/resources/nfpm.yaml new file mode 100644 index 0000000..02cb4bd --- /dev/null +++ b/rpms/helmfile/resources/nfpm.yaml @@ -0,0 +1,38 @@ +# nfpm.yaml + +name: helmfile +version: ${PACKAGE_VERSION} +release: ${PACKAGE_RELEASE} +arch: amd64 +platform: linux +section: default +priority: extra +description: "A declarative spec for deploying Helm charts. It lets you keep a directory of chart value files and maintain changes in version control; apply CI/CD to configuration changes; and periodically sync to avoid skew in environments." + +maintainer: Helmfile Contributors +homepage: https://github.com/helmfile/helmfile +license: MIT + +disable_globbing: false + +replaces: + - helmfile + +provides: + - helmfile + +# Files to include in the package +contents: + - src: /app/helmfile + dst: /usr/bin/helmfile + file_info: + mode: 0755 + owner: root + group: root + +# Scripts to run during installation/removal (optional) +# scripts: +# preinstall: ./scripts/preinstall.sh +# postinstall: ./scripts/postinstall.sh +# preremove: ./scripts/preremove.sh +# postremove: ./scripts/postremove.sh \ No newline at end of file