feat: add victoria metrics #42

Merged
unkinben merged 1 commits from benvin/victoriametrics into master 2025-06-21 17:46:46 +10:00
9 changed files with 243 additions and 0 deletions

View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1,23 @@
FROM git.query.consul/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 nfpm.yaml from the context into the container
COPY resources /app/resources
# Download the required files
RUN wget -O /app/victoria-metrics-linux-amd64-v${PACKAGE_VERSION}-cluster.tar.gz \
https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v${PACKAGE_VERSION}/victoria-metrics-linux-amd64-v${PACKAGE_VERSION}-cluster.tar.gz && \
tar xf victoria-metrics-linux-amd64-v${PACKAGE_VERSION}-cluster.tar.gz
# Default command to build RPMs
CMD /app/resources/build.sh

View File

@ -0,0 +1,4 @@
#!/usr/bin/bash
nfpm pkg --config /app/resources/vminsert.yaml --target /app/dist --packager rpm
nfpm pkg --config /app/resources/vmselect.yaml --target /app/dist --packager rpm
nfpm pkg --config /app/resources/vmstorage.yaml --target /app/dist --packager rpm

View File

@ -0,0 +1,37 @@
# nfpm.yaml
name: vminsert
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "vminsert accepts data via popular data ingestion protocols and routes it to vmstorage nodes"
maintainer: VictoriaMetrics
homepage: https://github.com/VictoriaMetrics/VictoriaMetrics
license: Apache-2.0 license
disable_globbing: false
replaces:
- vminsert
provides:
- vminsert
# Files to include in the package
contents:
- src: /app/vminsert-prod
dst: /usr/bin/vminsert
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

View File

@ -0,0 +1,37 @@
# nfpm.yaml
name: vmselect
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "vmselect processes incoming queries by fetching the requested data from vmstorage nodes"
maintainer: VictoriaMetrics
homepage: https://github.com/VictoriaMetrics/VictoriaMetrics
license: Apache-2.0 license
disable_globbing: false
replaces:
- vmselect
provides:
- vmselect
# Files to include in the package
contents:
- src: /app/vmselect-prod
dst: /usr/bin/vmselect
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

View File

@ -0,0 +1,37 @@
# nfpm.yaml
name: vmstorage
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "vmstorage stores time series data obtained from vminsert and returns the requested data to vmselect"
maintainer: VictoriaMetrics
homepage: https://github.com/VictoriaMetrics/VictoriaMetrics
license: Apache-2.0 license
disable_globbing: false
replaces:
- vmstorage
provides:
- vmstorage
# Files to include in the package
contents:
- src: /app/vmstorage-prod
dst: /usr/bin/vmstorage
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

View File

@ -0,0 +1 @@
1

23
rpms/vmutils/Dockerfile Normal file
View File

@ -0,0 +1,23 @@
FROM git.query.consul/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 nfpm.yaml from the context into the container
COPY nfpm.yaml /app/nfpm.yaml
# Download the required files
RUN wget -O /app/vmutils-linux-amd64-v${PACKAGE_VERSION}.tar.gz \
https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v${PACKAGE_VERSION}/vmutils-linux-amd64-v${PACKAGE_VERSION}.tar.gz && \
tar xf vmutils-linux-amd64-v${PACKAGE_VERSION}.tar.gz
# Default command to build RPMs
CMD nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm

80
rpms/vmutils/nfpm.yaml Normal file
View File

@ -0,0 +1,80 @@
# nfpm.yaml
name: vmutils
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "VictoriaMetrics utilities: fast, cost-effective monitoring solution and time series database."
maintainer: VictoriaMetrics
homepage: https://github.com/VictoriaMetrics/VictoriaMetrics
license: Apache-2.0 license
disable_globbing: false
replaces:
- vmutils
provides:
- vmagent
- vmalert
- vmalert-tool
- vmauth
- vmbackup
- vmctl
- vmrestore
# Files to include in the package
contents:
- src: /app/vmagent-prod
dst: /usr/bin/vmagent
file_info:
mode: 0755
owner: root
group: root
- src: /app/vmalert-prod
dst: /usr/bin/vmalert
file_info:
mode: 0755
owner: root
group: root
- src: /app/vmalert-tool-prod
dst: /usr/bin/vmalert-tool
file_info:
mode: 0755
owner: root
group: root
- src: /app/vmauth-prod
dst: /usr/bin/vmauth
file_info:
mode: 0755
owner: root
group: root
- src: /app/vmbackup-prod
dst: /usr/bin/vmbackup
file_info:
mode: 0755
owner: root
group: root
- src: /app/vmctl-prod
dst: /usr/bin/vmctl
file_info:
mode: 0755
owner: root
group: root
- src: /app/vmrestore-prod
dst: /usr/bin/vmrestore
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