From 7560f1169ca4137803c1d97d698ba140520f9dd8 Mon Sep 17 00:00:00 2001 From: Dominik Rosiek <58699848+sumo-drosiek@users.noreply.github.com> Date: Tue, 28 May 2024 11:06:43 +0200 Subject: [PATCH] feat: clean up and refactor (#72) * feat: add Dockerfile and Makefile for sumo-ubi-minimal Signed-off-by: Dominik Rosiek * feat: cleanup Signed-off-by: Dominik Rosiek * feat: hardcode ubi image Signed-off-by: Dominik Rosiek * feat: configure dependabot Signed-off-by: Dominik Rosiek * feat: build sumo-ubi-minimal Signed-off-by: Dominik Rosiek * feat: use ubi9 everywhere Signed-off-by: Dominik Rosiek * fix: fix hanging fluent-bit build Signed-off-by: Dominik Rosiek --------- Signed-off-by: Dominik Rosiek --- .github/dependabot.yml | 11 ++ Makefile | 104 ------------------ Makefile.common | 2 +- autoinstrumentation-dotnet/Dockerfile | 3 +- autoinstrumentation-dotnet/Makefile | 1 - autoinstrumentation-java/Dockerfile | 3 +- autoinstrumentation-java/Makefile | 1 - autoinstrumentation-nodejs/Dockerfile | 3 +- autoinstrumentation-nodejs/Makefile | 1 - autoinstrumentation-python/Dockerfile | 3 +- autoinstrumentation-python/Makefile | 1 - busybox/Dockerfile | 2 +- busybox/Makefile | 1 - fluent-bit/Dockerfile | 7 +- fluent-bit/Makefile | 1 - fluent-bit/v1.6.10/Makefile | 2 - kube-rbac-proxy/Dockerfile | 3 +- kube-rbac-proxy/Makefile | 1 - kube-rbac-proxy/v0.5.0/Dockerfile | 31 ------ kube-rbac-proxy/v0.5.0/Makefile | 2 - kube-rbac-proxy/v0.8.0/Dockerfile | 32 ------ kube-rbac-proxy/v0.8.0/Makefile | 2 - kube-state-metrics/Dockerfile | 3 +- kube-state-metrics/Makefile | 1 - kube-state-metrics/v1.9.7/Dockerfile | 26 ----- kube-state-metrics/v1.9.7/Makefile | 2 - kube-state-metrics/v1.9.8/Dockerfile | 30 ----- kube-state-metrics/v1.9.8/Makefile | 2 - kubernetes-fluentd/1.12.2-sumo-0/Dockerfile | 87 --------------- kubernetes-fluentd/1.12.2-sumo-0/Makefile | 2 - .../1.12.2-sumo-0/snappy-devel.rpm | Bin 26252 -> 0 bytes kubernetes-fluentd/1.12.2-sumo-0/snappy.rpm | Bin 37992 -> 0 bytes kubernetes-fluentd/1.14.6-sumo-5/Dockerfile | 94 ---------------- kubernetes-fluentd/1.14.6-sumo-5/Makefile | 2 - .../1.14.6-sumo-5/snappy-devel.rpm | Bin 26252 -> 0 bytes kubernetes-fluentd/1.14.6-sumo-5/snappy.rpm | Bin 37992 -> 0 bytes metrics-server/0.4.2-debian-10-r58/Dockerfile | 31 ------ metrics-server/0.4.2-debian-10-r58/Makefile | 2 - metrics-server/0.6.1-debian-10-r67/Dockerfile | 35 ------ metrics-server/0.6.1-debian-10-r67/Makefile | 2 - metrics-server/Dockerfile | 3 +- metrics-server/Makefile | 2 - node-exporter/Dockerfile | 3 +- node-exporter/Makefile | 1 - node-exporter/v1.0.1/Dockerfile | 24 ---- node-exporter/v1.0.1/Makefile | 2 - node-exporter/v1.3.1/Dockerfile | 28 ----- node-exporter/v1.3.1/Makefile | 2 - .../0.64.1/Dockerfile | 34 ------ .../0.64.1/Makefile | 2 - .../0.22.0-sumo/Dockerfile | 26 ----- opentelemetry-collector/0.22.0-sumo/Makefile | 2 - opentelemetry-operator/0.51.0/Dockerfile | 30 ----- opentelemetry-operator/0.51.0/Makefile | 2 - opentelemetry-operator/0.63.1/Dockerfile | 30 ----- opentelemetry-operator/0.63.1/Makefile | 2 - opentelemetry-operator/Dockerfile | 3 +- opentelemetry-operator/Makefile | 1 - prometheus-config-reloader/Dockerfile | 3 +- prometheus-config-reloader/Makefile | 1 - prometheus-config-reloader/v0.43.2/Dockerfile | 24 ---- prometheus-config-reloader/v0.43.2/Makefile | 2 - prometheus-config-reloader/v0.44.0/Dockerfile | 28 ----- prometheus-config-reloader/v0.44.0/Makefile | 2 - prometheus-operator/Dockerfile | 3 +- prometheus-operator/Makefile | 1 - prometheus-operator/v0.43.2/Dockerfile | 25 ----- prometheus-operator/v0.43.2/Makefile | 2 - prometheus-operator/v0.44.0/Dockerfile | 29 ----- prometheus-operator/v0.44.0/Makefile | 2 - prometheus/Dockerfile | 3 +- prometheus/Makefile | 1 - prometheus/v2.22.1/Dockerfile | 46 -------- prometheus/v2.22.1/Makefile | 2 - sumo-ubi-minimal/8.4/Makefile | 6 - sumo-ubi-minimal/{8.4 => }/Dockerfile | 15 ++- sumo-ubi-minimal/Makefile | 3 + sumologic-kubernetes-setup/v3.0.0/Dockerfile | 46 -------- sumologic-kubernetes-setup/v3.0.0/Makefile | 2 - sumologic-kubernetes-setup/v3.3.0/Dockerfile | 59 ---------- sumologic-kubernetes-setup/v3.3.0/Makefile | 9 -- sumologic-kubernetes-setup/v3.4.0/Dockerfile | 59 ---------- sumologic-kubernetes-setup/v3.4.0/Makefile | 9 -- .../0.54.0-sumo-0/Dockerfile | 33 ------ .../0.54.0-sumo-0/Makefile | 2 - .../0.56.0-sumo-0/Dockerfile | 33 ------ .../0.56.0-sumo-0/Makefile | 2 - .../0.57.2-sumo-1/Dockerfile | 33 ------ .../0.57.2-sumo-1/Makefile | 2 - telegraf-operator/Dockerfile | 3 +- telegraf-operator/Makefile | 1 - telegraf-operator/v1.1.1/Dockerfile | 22 ---- telegraf-operator/v1.1.1/Makefile | 2 - telegraf-operator/v1.3.10/Dockerfile | 27 ----- telegraf-operator/v1.3.10/Makefile | 2 - telegraf-operator/v1.3.5/Dockerfile | 27 ----- telegraf-operator/v1.3.5/Makefile | 2 - telegraf/1.14.4/Dockerfile | 31 ------ telegraf/1.14.4/LICENSE | 22 ---- telegraf/1.14.4/Makefile | 2 - telegraf/1.21.2/Dockerfile | 36 ------ telegraf/1.21.2/LICENSE | 22 ---- telegraf/1.21.2/Makefile | 2 - telegraf/Dockerfile | 3 +- telegraf/Makefile | 3 - thanos/Dockerfile | 3 +- thanos/Makefile | 1 - thanos/v0.10.0/Dockerfile | 22 ---- thanos/v0.10.0/Makefile | 2 - thanos/v0.25.2/Dockerfile | 28 ----- thanos/v0.25.2/Makefile | 2 - 111 files changed, 44 insertions(+), 1441 deletions(-) create mode 100644 .github/dependabot.yml delete mode 100644 fluent-bit/v1.6.10/Makefile delete mode 100644 kube-rbac-proxy/v0.5.0/Dockerfile delete mode 100644 kube-rbac-proxy/v0.5.0/Makefile delete mode 100644 kube-rbac-proxy/v0.8.0/Dockerfile delete mode 100644 kube-rbac-proxy/v0.8.0/Makefile delete mode 100644 kube-state-metrics/v1.9.7/Dockerfile delete mode 100644 kube-state-metrics/v1.9.7/Makefile delete mode 100644 kube-state-metrics/v1.9.8/Dockerfile delete mode 100644 kube-state-metrics/v1.9.8/Makefile delete mode 100644 kubernetes-fluentd/1.12.2-sumo-0/Dockerfile delete mode 100644 kubernetes-fluentd/1.12.2-sumo-0/Makefile delete mode 100644 kubernetes-fluentd/1.12.2-sumo-0/snappy-devel.rpm delete mode 100644 kubernetes-fluentd/1.12.2-sumo-0/snappy.rpm delete mode 100644 kubernetes-fluentd/1.14.6-sumo-5/Dockerfile delete mode 100644 kubernetes-fluentd/1.14.6-sumo-5/Makefile delete mode 100644 kubernetes-fluentd/1.14.6-sumo-5/snappy-devel.rpm delete mode 100644 kubernetes-fluentd/1.14.6-sumo-5/snappy.rpm delete mode 100644 metrics-server/0.4.2-debian-10-r58/Dockerfile delete mode 100644 metrics-server/0.4.2-debian-10-r58/Makefile delete mode 100644 metrics-server/0.6.1-debian-10-r67/Dockerfile delete mode 100644 metrics-server/0.6.1-debian-10-r67/Makefile delete mode 100644 node-exporter/v1.0.1/Dockerfile delete mode 100644 node-exporter/v1.0.1/Makefile delete mode 100644 node-exporter/v1.3.1/Dockerfile delete mode 100644 node-exporter/v1.3.1/Makefile delete mode 100644 opentelemetry-collector-contrib/0.64.1/Dockerfile delete mode 100644 opentelemetry-collector-contrib/0.64.1/Makefile delete mode 100644 opentelemetry-collector/0.22.0-sumo/Dockerfile delete mode 100644 opentelemetry-collector/0.22.0-sumo/Makefile delete mode 100644 opentelemetry-operator/0.51.0/Dockerfile delete mode 100644 opentelemetry-operator/0.51.0/Makefile delete mode 100644 opentelemetry-operator/0.63.1/Dockerfile delete mode 100644 opentelemetry-operator/0.63.1/Makefile delete mode 100644 prometheus-config-reloader/v0.43.2/Dockerfile delete mode 100644 prometheus-config-reloader/v0.43.2/Makefile delete mode 100644 prometheus-config-reloader/v0.44.0/Dockerfile delete mode 100644 prometheus-config-reloader/v0.44.0/Makefile delete mode 100644 prometheus-operator/v0.43.2/Dockerfile delete mode 100644 prometheus-operator/v0.43.2/Makefile delete mode 100644 prometheus-operator/v0.44.0/Dockerfile delete mode 100644 prometheus-operator/v0.44.0/Makefile delete mode 100644 prometheus/v2.22.1/Dockerfile delete mode 100644 prometheus/v2.22.1/Makefile delete mode 100644 sumo-ubi-minimal/8.4/Makefile rename sumo-ubi-minimal/{8.4 => }/Dockerfile (54%) create mode 100755 sumo-ubi-minimal/Makefile delete mode 100644 sumologic-kubernetes-setup/v3.0.0/Dockerfile delete mode 100644 sumologic-kubernetes-setup/v3.0.0/Makefile delete mode 100644 sumologic-kubernetes-setup/v3.3.0/Dockerfile delete mode 100644 sumologic-kubernetes-setup/v3.3.0/Makefile delete mode 100644 sumologic-kubernetes-setup/v3.4.0/Dockerfile delete mode 100644 sumologic-kubernetes-setup/v3.4.0/Makefile delete mode 100644 sumologic-otel-collector/0.54.0-sumo-0/Dockerfile delete mode 100644 sumologic-otel-collector/0.54.0-sumo-0/Makefile delete mode 100644 sumologic-otel-collector/0.56.0-sumo-0/Dockerfile delete mode 100644 sumologic-otel-collector/0.56.0-sumo-0/Makefile delete mode 100644 sumologic-otel-collector/0.57.2-sumo-1/Dockerfile delete mode 100644 sumologic-otel-collector/0.57.2-sumo-1/Makefile delete mode 100644 telegraf-operator/v1.1.1/Dockerfile delete mode 100644 telegraf-operator/v1.1.1/Makefile delete mode 100644 telegraf-operator/v1.3.10/Dockerfile delete mode 100644 telegraf-operator/v1.3.10/Makefile delete mode 100644 telegraf-operator/v1.3.5/Dockerfile delete mode 100644 telegraf-operator/v1.3.5/Makefile delete mode 100644 telegraf/1.14.4/Dockerfile delete mode 100644 telegraf/1.14.4/LICENSE delete mode 100644 telegraf/1.14.4/Makefile delete mode 100644 telegraf/1.21.2/Dockerfile delete mode 100644 telegraf/1.21.2/LICENSE delete mode 100644 telegraf/1.21.2/Makefile delete mode 100644 thanos/v0.10.0/Dockerfile delete mode 100644 thanos/v0.10.0/Makefile delete mode 100644 thanos/v0.25.2/Dockerfile delete mode 100644 thanos/v0.25.2/Makefile diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..6a6c20d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: + - package-ecosystem: "docker" + directory: "/" + schedule: + interval: "weekly" + groups: + dependencies: + applies-to: "version-updates" + patterns: + - "*" diff --git a/Makefile b/Makefile index d1a3e87..4f0f2e8 100644 --- a/Makefile +++ b/Makefile @@ -1,107 +1,3 @@ -build-fluent-bit-v1.6.10: - ${MAKE} -C fluent-bit/v1.6.10 - -build-kube-state-metrics-v1.9.7: - ${MAKE} -C kube-state-metrics/v1.9.7 - -build-kube-state-metrics-v1.9.8: - ${MAKE} -C kube-state-metrics/v1.9.8 - -build-prometheus-operator-v0.43.2: - ${MAKE} -C prometheus-operator/v0.43.2 - -build-prometheus-operator-v0.44.0: - ${MAKE} -C prometheus-operator/v0.44.0 - -build-prometheus-v2.22.1: - ${MAKE} -C prometheus/v2.22.1 - -build-node-exporter-v1.0.1: - ${MAKE} -C node-exporter/v1.0.1 - -build-node-exporter-v1.3.1: - ${MAKE} -C node-exporter/v1.3.1 - -build-prometheus-config-reloader-v0.43.2: - ${MAKE} -C prometheus-config-reloader/v0.43.2 - -build-prometheus-config-reloader-v0.44.0: - ${MAKE} -C prometheus-config-reloader/v0.44.0 - -build-thanos-v0.10.0: - ${MAKE} -C thanos/v0.10.0 - -build-thanos-v0.25.2: - ${MAKE} -C thanos/v0.25.2 - -build-metrics-server-0.4.2-debian-10-r58: - ${MAKE} -C metrics-server/0.4.2-debian-10-r58 - -build-metrics-server-0.6.1-debian-10-r67: - ${MAKE} -C metrics-server/0.6.1-debian-10-r67 - -build-sumologic-kubernetes-setup-v3.0.0: - ${MAKE} -C sumologic-kubernetes-setup/v3.0.0 - -build-sumologic-kubernetes-setup-v3.3.0: - ${MAKE} -C sumologic-kubernetes-setup/v3.3.0 - -build-sumologic-kubernetes-setup-v3.4.0: - ${MAKE} -C sumologic-kubernetes-setup/v3.4.0 - -build-telegraf-operator-v1.1.1: - ${MAKE} -C telegraf-operator/v1.1.1 - -build-telegraf-operator-v1.3.5: - ${MAKE} -C telegraf-operator/v1.3.5 - -.PHONY: build-sumo-ubi-minimal-8.4 -build-sumo-ubi-minimal-8.4: - ${MAKE} -C sumo-ubi-minimal/8.4 build - -.PHONY: push-sumo-ubi-minimal-8.4 -push-sumo-ubi-minimal-8.4: - ${MAKE} -C sumo-ubi-minimal/8.4 push - -build-kube-rbac-proxy-v0.5.0: - ${MAKE} -C kube-rbac-proxy/v0.5.0 - -build-kube-rbac-proxy-v0.8.0: - ${MAKE} -C kube-rbac-proxy/v0.8.0 - -build-telegraf-1.14.4: - ${MAKE} -C telegraf/1.14.4 - -build-telegraf-1.21.2: - ${MAKE} -C telegraf/1.21.2 - -build-opentelemetry-collector-0.22.0-sumo: - ${MAKE} -C opentelemetry-collector/0.22.0-sumo - -build-sumologic-otel-collector-0.54.0-sumo-0: - ${MAKE} -C sumologic-otel-collector/0.54.0-sumo-0 - -build-sumologic-otel-collector-0.56.0-sumo-0: - ${MAKE} -C sumologic-otel-collector/0.56.0-sumo-0 - -build-sumologic-otel-collector-0.57.2-sumo-1: - ${MAKE} -C sumologic-otel-collector/0.57.2-sumo-1 - -build-kubernetes-fluentd-1.12.2-sumo-0: - ${MAKE} -C kubernetes-fluentd/1.12.2-sumo-0 - -build-kubernetes-fluentd-1.14.6-sumo-5: - ${MAKE} -C kubernetes-fluentd/1.14.6-sumo-5 - -build-opentelemetry-operator-0.51.0: - ${MAKE} -C opentelemetry-operator/0.51.0 - -build-opentelemetry-operator-0.63.1: - ${MAKE} -C opentelemetry-operator/0.63.1 - -build-opentelemetry-collector-contib-0.64.1: - ${MAKE} -C opentelemetry-collector-contrib/0.64.1 - list-images-v4: ./scripts/list-images.py \ --fetch-base \ diff --git a/Makefile.common b/Makefile.common index 5e212b9..6e3e9da 100644 --- a/Makefile.common +++ b/Makefile.common @@ -8,7 +8,7 @@ ifeq ($(UPSTREAM_VERSION),"") endif ifeq ($(IMAGE_NAME),"") - $(error IMAGE_NAME is required) + IMAGE_NAME = $(shell basename $(shell pwd)) endif build: diff --git a/autoinstrumentation-dotnet/Dockerfile b/autoinstrumentation-dotnet/Dockerfile index eed64a0..c60d1ad 100644 --- a/autoinstrumentation-dotnet/Dockerfile +++ b/autoinstrumentation-dotnet/Dockerfile @@ -1,12 +1,11 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/SumoLogic/opentelemetry-collector-contrib/blob/5fd8754cbf0b9d88309cba2c9fee4a5342f3ed95/cmd/otelcontribcol/Dockerfile FROM public.ecr.aws/sumologic/autoinstrumentation-dotnet:${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/autoinstrumentation-dotnet/Makefile b/autoinstrumentation-dotnet/Makefile index 672a7a3..371919b 100644 --- a/autoinstrumentation-dotnet/Makefile +++ b/autoinstrumentation-dotnet/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "v" -IMAGE_NAME := "autoinstrumentation-dotnet" include ../Makefile.common diff --git a/autoinstrumentation-java/Dockerfile b/autoinstrumentation-java/Dockerfile index 012456e..f2decdb 100644 --- a/autoinstrumentation-java/Dockerfile +++ b/autoinstrumentation-java/Dockerfile @@ -1,12 +1,11 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/SumoLogic/opentelemetry-collector-contrib/blob/5fd8754cbf0b9d88309cba2c9fee4a5342f3ed95/cmd/otelcontribcol/Dockerfile FROM public.ecr.aws/sumologic/autoinstrumentation-java:${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/autoinstrumentation-java/Makefile b/autoinstrumentation-java/Makefile index c0e3640..371919b 100644 --- a/autoinstrumentation-java/Makefile +++ b/autoinstrumentation-java/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "v" -IMAGE_NAME := "autoinstrumentation-java" include ../Makefile.common diff --git a/autoinstrumentation-nodejs/Dockerfile b/autoinstrumentation-nodejs/Dockerfile index 4171322..5c175da 100644 --- a/autoinstrumentation-nodejs/Dockerfile +++ b/autoinstrumentation-nodejs/Dockerfile @@ -1,12 +1,11 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/SumoLogic/opentelemetry-collector-contrib/blob/5fd8754cbf0b9d88309cba2c9fee4a5342f3ed95/cmd/otelcontribcol/Dockerfile FROM public.ecr.aws/sumologic/autoinstrumentation-nodejs:${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/autoinstrumentation-nodejs/Makefile b/autoinstrumentation-nodejs/Makefile index d0418a7..371919b 100644 --- a/autoinstrumentation-nodejs/Makefile +++ b/autoinstrumentation-nodejs/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "v" -IMAGE_NAME := "autoinstrumentation-nodejs" include ../Makefile.common diff --git a/autoinstrumentation-python/Dockerfile b/autoinstrumentation-python/Dockerfile index 5671da1..920927c 100644 --- a/autoinstrumentation-python/Dockerfile +++ b/autoinstrumentation-python/Dockerfile @@ -1,12 +1,11 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/SumoLogic/opentelemetry-collector-contrib/blob/5fd8754cbf0b9d88309cba2c9fee4a5342f3ed95/cmd/otelcontribcol/Dockerfile FROM public.ecr.aws/sumologic/autoinstrumentation-python:${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/autoinstrumentation-python/Makefile b/autoinstrumentation-python/Makefile index 95fe07b..371919b 100644 --- a/autoinstrumentation-python/Makefile +++ b/autoinstrumentation-python/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "v" -IMAGE_NAME := "autoinstrumentation-python" include ../Makefile.common diff --git a/busybox/Dockerfile b/busybox/Dockerfile index 164c677..ace4dd4 100644 --- a/busybox/Dockerfile +++ b/busybox/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.access.redhat.com/ubi8/ubi:8.6 +FROM registry.access.redhat.com/ubi9/ubi:9.4 ADD LICENSE /licenses/ USER 65532:65532 diff --git a/busybox/Makefile b/busybox/Makefile index cefe799..ee18329 100644 --- a/busybox/Makefile +++ b/busybox/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "" -IMAGE_NAME := "busybox" include ../Makefile.common diff --git a/fluent-bit/Dockerfile b/fluent-bit/Dockerfile index 7b27350..31a2710 100644 --- a/fluent-bit/Dockerfile +++ b/fluent-bit/Dockerfile @@ -1,7 +1,6 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi-minimal:8.8 -FROM registry.access.redhat.com/ubi8/ubi:8.8 as builder +FROM registry.access.redhat.com/ubi9/ubi:9.4 as builder ARG UPSTREAM_VERSION ARG BISON_VERSION=3.8.2 @@ -62,7 +61,7 @@ RUN install bin/fluent-bit /fluent-bit/bin/ RUN cp /tmp/src/conf/*.conf /fluent-bit/etc/ ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi-minimal:9.4 ARG UPSTREAM_VERSION ARG RELEASE @@ -78,7 +77,7 @@ LABEL name="Fluent Bit" \ io.k8s.description="$DESCRIPTION" \ maintainer="opensource-collection-team@sumologic.com" -RUN microdnf update && microdnf install -y openssl libpq systemd && microdnf clean all +RUN microdnf update -y && microdnf install -y openssl libpq systemd && microdnf clean all COPY --from=builder /fluent-bit /fluent-bit COPY --from=builder /tmp/src/LICENSE /licenses/ diff --git a/fluent-bit/Makefile b/fluent-bit/Makefile index 01d132e..371919b 100644 --- a/fluent-bit/Makefile +++ b/fluent-bit/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "v" -IMAGE_NAME := "fluent-bit" include ../Makefile.common diff --git a/fluent-bit/v1.6.10/Makefile b/fluent-bit/v1.6.10/Makefile deleted file mode 100644 index e5ed71b..0000000 --- a/fluent-bit/v1.6.10/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t fluent-bit:1.6.10-sumo-3-ubi diff --git a/kube-rbac-proxy/Dockerfile b/kube-rbac-proxy/Dockerfile index 105a83a..7ce1198 100644 --- a/kube-rbac-proxy/Dockerfile +++ b/kube-rbac-proxy/Dockerfile @@ -1,11 +1,10 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/brancz/kube-rbac-proxy/blob/${UPSTREAM_VERSION}/Dockerfile FROM public.ecr.aws/sumologic/kube-rbac-proxy:v${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/kube-rbac-proxy/Makefile b/kube-rbac-proxy/Makefile index c62ea73..371919b 100755 --- a/kube-rbac-proxy/Makefile +++ b/kube-rbac-proxy/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "v" -IMAGE_NAME := "kube-rbac-proxy" include ../Makefile.common diff --git a/kube-rbac-proxy/v0.5.0/Dockerfile b/kube-rbac-proxy/v0.5.0/Dockerfile deleted file mode 100644 index 6fb559d..0000000 --- a/kube-rbac-proxy/v0.5.0/Dockerfile +++ /dev/null @@ -1,31 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/brancz/kube-rbac-proxy/blob/a6da502b4a4abad511cb1afa87b0b52c74a89987/Dockerfile -FROM gcr.io/kubebuilder/kube-rbac-proxy:v0.5.0 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.4 - -LABEL name="Kube-rbac-proxy" \ - vendor="Sumo Logic" \ - version="0.5.0" \ - release="1" \ - summary="UBI based kube-rbac-proxy" \ - description="The kube-rbac-proxy is a small HTTP proxy for a single upstream, that can perform RBAC authorization against the Kubernetes API using SubjectAccessReview." \ - maintainer="collection@sumologic.com" - -RUN yum update -y \ - && yum install -y ca-certificates - -COPY --from=builder \ - /kube-rbac-proxy \ - / -ADD https://raw.githubusercontent.com/brancz/kube-rbac-proxy/a6da502b4a4abad511cb1afa87b0b52c74a89987/LICENSE \ - /licenses/LICENSE - -ENTRYPOINT ["./kube-rbac-proxy"] -ENV USER_ID 1000 -ENV USER_NAME kube-rbac-proxy-user -RUN adduser --uid $USER_ID $USER_NAME -USER $USER_ID - -EXPOSE 8080 diff --git a/kube-rbac-proxy/v0.5.0/Makefile b/kube-rbac-proxy/v0.5.0/Makefile deleted file mode 100644 index dd54b46..0000000 --- a/kube-rbac-proxy/v0.5.0/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t kube-rbac-proxy:v0.5.0-ubi diff --git a/kube-rbac-proxy/v0.8.0/Dockerfile b/kube-rbac-proxy/v0.8.0/Dockerfile deleted file mode 100644 index 1c2760b..0000000 --- a/kube-rbac-proxy/v0.8.0/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/brancz/kube-rbac-proxy/blob/v0.8.0/Dockerfile -FROM gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.6 - -ENV SUMMARY="UBI based kube-rbac-proxy" \ - DESCRIPTION="The kube-rbac-proxy is a small HTTP proxy for a single upstream, that can perform RBAC authorization against the Kubernetes API using SubjectAccessReview." - -LABEL name="Kube-rbac-proxy" \ - vendor="Sumo Logic" \ - version="0.8.0" \ - release="2" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -RUN yum update -y \ - && yum install -y ca-certificates - -COPY --from=builder \ - /usr/local/bin/kube-rbac-proxy \ - /usr/local/bin/kube-rbac-proxy -ADD https://raw.githubusercontent.com/brancz/kube-rbac-proxy/v0.8.0/LICENSE \ - /licenses/LICENSE - -ENTRYPOINT ["/usr/local/bin/kube-rbac-proxy"] - -USER 65532:65532 -EXPOSE 8080 diff --git a/kube-rbac-proxy/v0.8.0/Makefile b/kube-rbac-proxy/v0.8.0/Makefile deleted file mode 100644 index fdc2677..0000000 --- a/kube-rbac-proxy/v0.8.0/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t kube-rbac-proxy:v0.8.0-ubi diff --git a/kube-state-metrics/Dockerfile b/kube-state-metrics/Dockerfile index 4b15fe5..b0e55f5 100644 --- a/kube-state-metrics/Dockerfile +++ b/kube-state-metrics/Dockerfile @@ -1,12 +1,11 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/kubernetes/kube-state-metrics/blob/v${UPSTREAM_VERSION}/Dockerfile FROM public.ecr.aws/sumologic/kube-state-metrics:v${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/kube-state-metrics/Makefile b/kube-state-metrics/Makefile index 4da6c54..371919b 100644 --- a/kube-state-metrics/Makefile +++ b/kube-state-metrics/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "v" -IMAGE_NAME := "kube-state-metrics" include ../Makefile.common diff --git a/kube-state-metrics/v1.9.7/Dockerfile b/kube-state-metrics/v1.9.7/Dockerfile deleted file mode 100644 index f0276be..0000000 --- a/kube-state-metrics/v1.9.7/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/kubernetes/kube-state-metrics/blob/b3fa5852d755c912c2601c53781a58567c822b81/Dockerfile -FROM quay.io/coreos/kube-state-metrics:v1.9.7 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.4 - -LABEL name="Kube-state-metrics" \ - vendor="Sumo Logic" \ - version="1.9.7" \ - release="1" \ - summary="UBI based kube-state-metrics" \ - description="kube-state-metrics is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects." \ - maintainer="collection@sumologic.com" - -COPY --from=builder \ - /kube-state-metrics \ - / -ADD https://raw.githubusercontent.com/kubernetes/kube-state-metrics/b3fa5852d755c912c2601c53781a58567c822b81/LICENSE \ - /licenses/LICENSE - -USER nobody - -ENTRYPOINT ["/kube-state-metrics", "--port=8080", "--telemetry-port=8081"] - -EXPOSE 8080 8081 diff --git a/kube-state-metrics/v1.9.7/Makefile b/kube-state-metrics/v1.9.7/Makefile deleted file mode 100644 index 501c4d2..0000000 --- a/kube-state-metrics/v1.9.7/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t kube-state-metrics:v1.9.8-ubi diff --git a/kube-state-metrics/v1.9.8/Dockerfile b/kube-state-metrics/v1.9.8/Dockerfile deleted file mode 100644 index 951fe15..0000000 --- a/kube-state-metrics/v1.9.8/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/kubernetes/kube-state-metrics/blob/v1.9.8/Dockerfile -FROM quay.io/coreos/kube-state-metrics:v1.9.8 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.6 - -ENV SUMMARY="UBI based kube-state-metrics" \ - DESCRIPTION="kube-state-metrics is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects." - -LABEL name="Kube-state-metrics" \ - vendor="Sumo Logic" \ - version="1.9.8" \ - release="2" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -COPY --from=builder \ - /kube-state-metrics \ - / -ADD https://raw.githubusercontent.com/kubernetes/kube-state-metrics/v1.9.8/LICENSE \ - /licenses/LICENSE - -USER nobody - -ENTRYPOINT ["/kube-state-metrics", "--port=8080", "--telemetry-port=8081"] - -EXPOSE 8080 8081 diff --git a/kube-state-metrics/v1.9.8/Makefile b/kube-state-metrics/v1.9.8/Makefile deleted file mode 100644 index 501c4d2..0000000 --- a/kube-state-metrics/v1.9.8/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t kube-state-metrics:v1.9.8-ubi diff --git a/kubernetes-fluentd/1.12.2-sumo-0/Dockerfile b/kubernetes-fluentd/1.12.2-sumo-0/Dockerfile deleted file mode 100644 index ce24ca1..0000000 --- a/kubernetes-fluentd/1.12.2-sumo-0/Dockerfile +++ /dev/null @@ -1,87 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/SumoLogic/sumologic-kubernetes-fluentd/blob/2d2b7693b87f9a0c175740e9674455051c709409/Dockerfile -FROM public.ecr.aws/sumologic/kubernetes-fluentd:1.12.2-sumo-0 as sumo-image - -## Build RedHat compliant image for fluentd -## ref: https://github.com/fluent/fluentd-docker-image/blob/4e0810850460c7669d7a8ad15d5a3c8ddf28652c/v1.12/debian/Dockerfile -FROM registry.access.redhat.com/ubi8/ruby-26:1 as fluentd - -ENV TINI_VERSION=0.18.0 - -USER root -# NOTE: resolv v0.2.1 includes the fix for CPU spike issue due to DNS resolver. -# This hack is needed for Ruby 2.6.7, 2.7.3 and 3.0.1. -# Do not split this into multiple RUN! -# Docker creates a layer for every RUN-Statement -# therefore an 'apt-get purge' has no effect -RUN gem install oj -v 3.10.18 \ - && gem install json -v 2.4.1 \ - && gem install resolv -v 0.2.1 \ - && gem install async-http -v 0.54.0 \ - && gem install ext_monitor -v 0.1.2 \ - && gem install fluentd -v 1.12.2 \ - && wget -O /usr/local/bin/tini "https://github.com/krallin/tini/releases/download/v$TINI_VERSION/tini-amd64" \ - && wget -O /usr/local/bin/tini.asc "https://github.com/krallin/tini/releases/download/v$TINI_VERSION/tini-amd64.asc" \ - && export GNUPGHOME="$(mktemp -d)" \ - && rm -r /usr/local/bin/tini.asc \ - && chmod +x /usr/local/bin/tini \ - && tini -h \ - && wget -O /tmp/jemalloc-4.5.0.tar.bz2 https://github.com/jemalloc/jemalloc/releases/download/4.5.0/jemalloc-4.5.0.tar.bz2 \ - && cd /tmp && tar -xjf jemalloc-4.5.0.tar.bz2 && cd jemalloc-4.5.0/ \ - && ./configure && make \ - && mv lib/libjemalloc.so.2 /usr/lib \ - && rm -rf /var/lib/apt/lists/* \ - && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem /usr/lib/ruby/gems/2.*/gems/fluentd-*/test - -RUN groupadd -r fluent && useradd -r -g fluent fluent \ - # for log storage (maybe shared with host) - && mkdir -p /fluentd/log \ - # configuration/plugins path (default: copied from .) - && mkdir -p /fluentd/etc /fluentd/plugins \ - && chown -R fluent /fluentd && chgrp -R fluent /fluentd - -COPY --from=sumo-image /fluentd/etc/fluent.conf /fluentd/etc/ -COPY --from=sumo-image /bin/entrypoint.sh /bin/ - -ENV FLUENTD_CONF="fluent.conf" - -ENV LD_PRELOAD="/usr/lib/libjemalloc.so.2" -# NOTE: resolv v0.2.1 includes the fix for CPU spike issue due to DNS resolver. -# Forcing to load specific version of resolv (instead of bundled by default) is needed for Ruby 2.6.7, 2.7.3 and 3.0.1. -ENV RUBYLIB="/usr/local/bundle/gems/resolv-0.2.1/lib" -EXPOSE 24224 5140 - -USER fluent -ENTRYPOINT ["tini", "--", "/bin/entrypoint.sh"] -CMD ["fluentd"] - -FROM fluentd - -LABEL name="Kubernetes-fluentd" \ - vendor="Sumo Logic" \ - version="1.12.2-sumo-0" \ - release="1" \ - summary="UBI based kubernetes-fluentd" \ - description="Kubernetes-fluentd is a custom Fluentd build with plugins used by Sumo Logic Kubernetes Collection." \ - maintainer="collection@sumologic.com" - -ADD https://raw.githubusercontent.com/SumoLogic/sumologic-kubernetes-fluentd/2d2b7693b87f9a0c175740e9674455051c709409/LICENSE \ - /licenses/LICENSE - -## ref: https://github.com/yashoza19/sumologic-kubernetes-fluentd/blob/c22a932b22ffc591bbc6f2a0ac624c323c1b5006/Dockerfile -USER root -RUN yum install -y jq \ - && gem install rdoc -v 6.3.1 \ - && gem cleanup -COPY --from=sumo-image --chown=fluent:fluent /usr/local/bundle /usr/local/share/gems -COPY --from=sumo-image /bin/./entrypoint.sh /bin/ -COPY ./snappy.rpm . -COPY ./snappy-devel.rpm . -RUN rpm -i snappy.rpm \ - && rpm -i snappy-devel.rpm \ - && rm snappy.rpm snappy-devel.rpm \ - && gem pristine ffi -v 1.15.0 \ - && gem pristine http-parser --version 1.2.3 \ - && gem pristine snappy --version 0.0.17 \ - && gem pristine unf_ext --version 0.0.7.7 -USER 999:999 diff --git a/kubernetes-fluentd/1.12.2-sumo-0/Makefile b/kubernetes-fluentd/1.12.2-sumo-0/Makefile deleted file mode 100644 index 2c064e9..0000000 --- a/kubernetes-fluentd/1.12.2-sumo-0/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t kubernetes-fluentd:1.12.2-sumo-0-ubi diff --git a/kubernetes-fluentd/1.12.2-sumo-0/snappy-devel.rpm b/kubernetes-fluentd/1.12.2-sumo-0/snappy-devel.rpm deleted file mode 100644 index 735b1c0c0e9197f40fba813b4ecb1d3721a0ca2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26252 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 z 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⪼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 Aj{pDw diff --git a/kubernetes-fluentd/1.14.6-sumo-5/Dockerfile b/kubernetes-fluentd/1.14.6-sumo-5/Dockerfile deleted file mode 100644 index 11f75d1..0000000 --- a/kubernetes-fluentd/1.14.6-sumo-5/Dockerfile +++ /dev/null @@ -1,94 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/SumoLogic/sumologic-kubernetes-fluentd/blob/v1.14.6-sumo-5/Dockerfile -FROM public.ecr.aws/sumologic/kubernetes-fluentd:1.14.6-sumo-5 as sumo-image - -## Build RedHat compliant image for fluentd -## ref: https://github.com/fluent/fluentd-docker-image/blob/22c688d6ba1ab83dbdb74265fca26630ce032d6b/v1.14/debian/Dockerfile -FROM registry.access.redhat.com/ubi8/ruby-27:1 as fluentd - -ENV TINI_VERSION=0.18.0 - -USER root - -# Do not split this into multiple RUN! -# Docker creates a layer for every RUN-Statement -# therefore an 'apt-get purge' has no effect -RUN gem install oj -v 3.10.18 \ - && gem install json -v 2.4.1 \ - && gem install async-http -v 0.54.0 \ - && gem install ext_monitor -v 0.1.2 \ - && gem install fluentd -v 1.14.6 \ - && wget -O /usr/local/bin/tini "https://github.com/krallin/tini/releases/download/v$TINI_VERSION/tini-amd64" \ - && wget -O /usr/local/bin/tini.asc "https://github.com/krallin/tini/releases/download/v$TINI_VERSION/tini-amd64.asc" \ - && export GNUPGHOME="$(mktemp -d)" \ - && gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 6380DC428747F6C393FEACA59A84159D7001A4E5 \ - && gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini \ - && rm -r /usr/local/bin/tini.asc \ - && chmod +x /usr/local/bin/tini \ - && tini -h \ - && wget -O /tmp/jemalloc-4.5.0.tar.bz2 https://github.com/jemalloc/jemalloc/releases/download/4.5.0/jemalloc-4.5.0.tar.bz2 \ - && cd /tmp && tar -xjf jemalloc-4.5.0.tar.bz2 && cd jemalloc-4.5.0/ \ - && ./configure && make \ - && mv lib/libjemalloc.so.2 /usr/lib \ - && rm -rf /var/lib/apt/lists/* \ - && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem /usr/lib/ruby/gems/2.*/gems/fluentd-*/test - -RUN groupadd -r fluent && useradd -r -g fluent fluent \ - # for log storage (maybe shared with host) - && mkdir -p /fluentd/log \ - # configuration/plugins path (default: copied from .) - && mkdir -p /fluentd/etc /fluentd/plugins \ - && chown -R fluent /fluentd && chgrp -R fluent /fluentd - - -COPY --from=sumo-image /fluentd/etc/fluent.conf /fluentd/etc/ -COPY --from=sumo-image /bin/entrypoint.sh /bin/ - - -ENV FLUENTD_CONF="fluent.conf" - -ENV LD_PRELOAD="/usr/lib/libjemalloc.so.2" -EXPOSE 24224 5140 - -USER fluent -ENTRYPOINT ["tini", "--", "/bin/entrypoint.sh"] -CMD ["fluentd"] - -FROM fluentd - -ENV SUMMARY="UBI based kubernetes-fluentd" \ - DESCRIPTION="Kubernetes-fluentd is a custom Fluentd build with plugins used by Sumo Logic Kubernetes Collection." - -LABEL name="Kubernetes-fluentd" \ - vendor="Sumo Logic" \ - version="1.14.6-sumo-5" \ - release="2" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -ADD https://raw.githubusercontent.com/SumoLogic/sumologic-kubernetes-fluentd/v1.14.6-sumo-5//LICENSE \ - /licenses/LICENSE - -## ref: https://github.com/yashoza19/sumologic-kubernetes-fluentd/blob/c22a932b22ffc591bbc6f2a0ac624c323c1b5006/Dockerfile -USER root -RUN yum install -y jq \ - && gem install rdoc -v 6.3.1 \ - && gem cleanup -COPY --from=sumo-image --chown=fluent:fluent /usr/local/bundle /usr/local/share/gems -COPY --from=sumo-image /bin/./entrypoint.sh /bin/ -COPY ./snappy.rpm . -COPY ./snappy-devel.rpm . -RUN rpm -i snappy.rpm \ - && rpm -i snappy-devel.rpm \ - && rm snappy.rpm snappy-devel.rpm \ - && gem pristine date --version 2.0.1 \ - && gem pristine ffi --version 1.15.5 \ - && gem pristine msgpack --version 1.5.1 \ - && gem pristine http-parser --version 1.2.3 \ - && gem pristine psych --version 4.0.4 \ - && gem pristine snappy --version 0.0.17 \ - && gem pristine unf_ext --version 0.0.8.2 \ - && gem pristine yajl-ruby --version 1.4.2 -USER 999:999 diff --git a/kubernetes-fluentd/1.14.6-sumo-5/Makefile b/kubernetes-fluentd/1.14.6-sumo-5/Makefile deleted file mode 100644 index eae820e..0000000 --- a/kubernetes-fluentd/1.14.6-sumo-5/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t kubernetes-fluentd:1.14.6-sumo-5-ubi diff --git a/kubernetes-fluentd/1.14.6-sumo-5/snappy-devel.rpm b/kubernetes-fluentd/1.14.6-sumo-5/snappy-devel.rpm deleted file mode 100644 index 735b1c0c0e9197f40fba813b4ecb1d3721a0ca2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26252 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 z 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⪼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 Aj{pDw diff --git a/metrics-server/0.4.2-debian-10-r58/Dockerfile b/metrics-server/0.4.2-debian-10-r58/Dockerfile deleted file mode 100644 index 107b46d..0000000 --- a/metrics-server/0.4.2-debian-10-r58/Dockerfile +++ /dev/null @@ -1,31 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/bitnami/bitnami-docker-metrics-server/blob/3ad9d947867728d52a8b3fedd6e5fb205af464f8/0/debian-10/Dockerfile -FROM docker.io/bitnami/metrics-server:0.4.2-debian-10-r58 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.4 - -COPY --from=builder /opt/bitnami /opt/bitnami - -LABEL name="metrics-server" \ - vendor="Sumo Logic" \ - version="0.4.2-debian-10-r58" \ - release="1" \ - summary="UBI based metrics-server" \ - description="Metrics Server is a cluster-wide aggregator of resource usage data. Metrics Server collects metrics from the Summary API, exposed by Kubelet on each node." \ - maintainer="collection@sumologic.com" - -ADD https://raw.githubusercontent.com/bitnami/bitnami-docker-metrics-server/3ad9d947867728d52a8b3fedd6e5fb205af464f8/LICENSE \ - /licenses/LICENSE - -RUN chmod g+rwX /opt/bitnami -RUN chown -R 1001:root /opt/bitnami/metrics-server && chmod -R g+rwX /opt/bitnami/metrics-server -ENV BITNAMI_APP_NAME="metrics-server" \ - BITNAMI_IMAGE_VERSION="0.4.2-debian-10-r58" \ - PATH="/opt/bitnami/metrics-server/bin:$PATH" - -EXPOSE 8443 - -WORKDIR /opt/bitnami/metrics-server -USER 1001 -ENTRYPOINT [ "metrics-server", "--secure-port=8443", "--cert-dir=/opt/bitnami/metrics-server/certificates" ] diff --git a/metrics-server/0.4.2-debian-10-r58/Makefile b/metrics-server/0.4.2-debian-10-r58/Makefile deleted file mode 100644 index fbc24bf..0000000 --- a/metrics-server/0.4.2-debian-10-r58/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t metrics-server:0.4.2-debian-10-r58-ubi diff --git a/metrics-server/0.6.1-debian-10-r67/Dockerfile b/metrics-server/0.6.1-debian-10-r67/Dockerfile deleted file mode 100644 index efd10ec..0000000 --- a/metrics-server/0.6.1-debian-10-r67/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/bitnami/bitnami-docker-metrics-server/blob/0.6.1-debian-10-r67/0/debian-10/Dockerfile -FROM docker.io/bitnami/metrics-server:0.6.1-debian-10-r67 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.6 - -COPY --from=builder /opt/bitnami /opt/bitnami - -ENV SUMMARY="UBI based metrics-server" \ - DESCRIPTION="Metrics Server is a cluster-wide aggregator of resource usage data. Metrics Server collects metrics from the Summary API, exposed by Kubelet on each node." - -LABEL name="metrics-server" \ - vendor="Sumo Logic" \ - version="0.6.1-debian-10-r67" \ - release="2" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -ADD https://raw.githubusercontent.com/bitnami/bitnami-docker-metrics-server/0.6.1-debian-10-r67/LICENSE.md \ - /licenses/LICENSE.md - -RUN chmod g+rwX /opt/bitnami -RUN chown -R 1001:root /opt/bitnami/metrics-server && chmod -R g+rwX /opt/bitnami/metrics-server -ENV BITNAMI_APP_NAME="metrics-server" \ - BITNAMI_IMAGE_VERSION="0.6.1-debian-10-r67" \ - PATH="/opt/bitnami/metrics-server/bin:$PATH" - -EXPOSE 8443 - -WORKDIR /opt/bitnami/metrics-server -USER 1001 -ENTRYPOINT [ "metrics-server", "--secure-port=8443", "--cert-dir=/opt/bitnami/metrics-server/certificates" ] diff --git a/metrics-server/0.6.1-debian-10-r67/Makefile b/metrics-server/0.6.1-debian-10-r67/Makefile deleted file mode 100644 index 3f27e95..0000000 --- a/metrics-server/0.6.1-debian-10-r67/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t metrics-server:0.6.1-debian-10-r67-ubi diff --git a/metrics-server/Dockerfile b/metrics-server/Dockerfile index 8f9438c..3f4907e 100644 --- a/metrics-server/Dockerfile +++ b/metrics-server/Dockerfile @@ -1,11 +1,10 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/bitnami/bitnami-docker-metrics-server/blob/${UPSTREAM_VERSION}/0/debian-10/Dockerfile FROM docker.io/bitnami/metrics-server:${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/metrics-server/Makefile b/metrics-server/Makefile index a0da0ad..e5a9979 100755 --- a/metrics-server/Makefile +++ b/metrics-server/Makefile @@ -1,5 +1,3 @@ #!/usr/bin/make -f -IMAGE_NAME := "metrics-server" - include ../Makefile.common diff --git a/node-exporter/Dockerfile b/node-exporter/Dockerfile index d319247..33ab9f7 100644 --- a/node-exporter/Dockerfile +++ b/node-exporter/Dockerfile @@ -1,12 +1,11 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/prometheus/node_exporter/blob/v1.3.1/Dockerfile FROM public.ecr.aws/sumologic/node-exporter:v${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/node-exporter/Makefile b/node-exporter/Makefile index 3ff80b4..371919b 100644 --- a/node-exporter/Makefile +++ b/node-exporter/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "v" -IMAGE_NAME := "node-exporter" include ../Makefile.common diff --git a/node-exporter/v1.0.1/Dockerfile b/node-exporter/v1.0.1/Dockerfile deleted file mode 100644 index 0d6f6b2..0000000 --- a/node-exporter/v1.0.1/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/prometheus/node_exporter/blob/3715be6ae899f2a9b9dbfd9c39f3e09a7bd4559f/Dockerfile -FROM quay.io/prometheus/node-exporter:v1.0.1 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.4 - -LABEL name="Node-exporter" \ - vendor="Sumo Logic" \ - version="1.0.1" \ - release="1" \ - summary="UBI based node-exporter" \ - description="Prometheus exporter for hardware and OS metrics exposed by *NIX kernels, written in Go with pluggable metric collectors." \ - maintainer="collection@sumologic.com" - -COPY --from=builder \ - /bin/node_exporter \ - /bin/node_exporter -ADD https://raw.githubusercontent.com/prometheus/node_exporter/3715be6ae899f2a9b9dbfd9c39f3e09a7bd4559f/LICENSE \ - /licenses/LICENSE - -EXPOSE 9100 -USER nobody -ENTRYPOINT [ "/bin/node_exporter" ] diff --git a/node-exporter/v1.0.1/Makefile b/node-exporter/v1.0.1/Makefile deleted file mode 100644 index 8ec1802..0000000 --- a/node-exporter/v1.0.1/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t node-exporter:v1.0.1-ubi diff --git a/node-exporter/v1.3.1/Dockerfile b/node-exporter/v1.3.1/Dockerfile deleted file mode 100644 index 0f0ab5c..0000000 --- a/node-exporter/v1.3.1/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/prometheus/node_exporter/blob/v1.3.1/Dockerfile -FROM quay.io/prometheus/node-exporter:v1.3.1 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.6 - -ENV SUMMARY="UBI based node-exporter" \ - DESCRIPTION="Prometheus exporter for hardware and OS metrics exposed by *NIX kernels, written in Go with pluggable metric collectors." - -LABEL name="Node-exporter" \ - vendor="Sumo Logic" \ - version="1.3.1" \ - release="2" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -COPY --from=builder \ - /bin/node_exporter \ - /bin/node_exporter -ADD https://raw.githubusercontent.com/prometheus/node_exporter/v1.3.1/LICENSE \ - /licenses/LICENSE - -EXPOSE 9100 -USER nobody -ENTRYPOINT [ "/bin/node_exporter" ] diff --git a/node-exporter/v1.3.1/Makefile b/node-exporter/v1.3.1/Makefile deleted file mode 100644 index cc9b93d..0000000 --- a/node-exporter/v1.3.1/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t node-exporter:v1.3.1-ubi diff --git a/opentelemetry-collector-contrib/0.64.1/Dockerfile b/opentelemetry-collector-contrib/0.64.1/Dockerfile deleted file mode 100644 index c103476..0000000 --- a/opentelemetry-collector-contrib/0.64.1/Dockerfile +++ /dev/null @@ -1,34 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/open-telemetry/opentelemetry-collector-releases/blob/v0.64.1/distributions/otelcol-contrib/Dockerfile - -FROM otel/opentelemetry-collector-contrib:0.64.1 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.8 - -ARG USER_UID=10001 -USER ${USER_UID} - -WORKDIR / -COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt -COPY --from=builder /etc/otelcol-contrib/config.yaml /etc/otelcol-contrib/config.yaml -COPY --from=builder /otelcol-contrib . - -ENV SUMMARY="UBI based opentelemetry-collector-contrib" \ - DESCRIPTION="OpenTelemetry Collector - otelcol-contrib distribution" - -LABEL name="opentelemetry-collector-contrib" \ - vendor="Sumo Logic" \ - version="0.64.1" \ - release="1" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -ADD https://raw.githubusercontent.com/open-telemetry/opentelemetry-collector-releases/v0.64.1/LICENSE \ - /licenses/LICENSE - -ENTRYPOINT ["/otelcol-contrib"] -CMD ["--config", "/etc/otelcol-contrib/config.yaml"] -EXPOSE 4317 55678 55679 diff --git a/opentelemetry-collector-contrib/0.64.1/Makefile b/opentelemetry-collector-contrib/0.64.1/Makefile deleted file mode 100644 index c821d86..0000000 --- a/opentelemetry-collector-contrib/0.64.1/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t opentelemetry-collector-contrib:0.64.1 diff --git a/opentelemetry-collector/0.22.0-sumo/Dockerfile b/opentelemetry-collector/0.22.0-sumo/Dockerfile deleted file mode 100644 index 02f6dea..0000000 --- a/opentelemetry-collector/0.22.0-sumo/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/SumoLogic/opentelemetry-collector-contrib/blob/5fd8754cbf0b9d88309cba2c9fee4a5342f3ed95/cmd/otelcontribcol/Dockerfile -FROM public.ecr.aws/sumologic/opentelemetry-collector:0.22.0-sumo as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.4 - -LABEL name="Opentelemetry-collector" \ - vendor="Sumo Logic" \ - version="0.22.0-sumo" \ - release="1" \ - summary="UBI based opentelemetry-collector" \ - description="The OpenTelemetry Collector offers a vendor-agnostic implementation on how to receive, process and export telemetry data." \ - maintainer="collection@sumologic.com" - -ADD https://raw.githubusercontent.com/SumoLogic/opentelemetry-collector-contrib/5fd8754cbf0b9d88309cba2c9fee4a5342f3ed95/LICENSE \ - /licenses/LICENSE - -ARG USER_UID=10001 -USER ${USER_UID} - -COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt -COPY --from=builder /otelcontribcol /otelcontribcol -EXPOSE 55680 55679 -ENTRYPOINT ["/otelcontribcol"] -CMD ["--config", "/etc/otel/config.yaml"] diff --git a/opentelemetry-collector/0.22.0-sumo/Makefile b/opentelemetry-collector/0.22.0-sumo/Makefile deleted file mode 100644 index 2774be4..0000000 --- a/opentelemetry-collector/0.22.0-sumo/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t opentelemetry-collector:0.22.0-sumo-ubi diff --git a/opentelemetry-operator/0.51.0/Dockerfile b/opentelemetry-operator/0.51.0/Dockerfile deleted file mode 100644 index eb511ff..0000000 --- a/opentelemetry-operator/0.51.0/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/open-telemetry/opentelemetry-operator/blob/v0.51.0/Dockerfile - -FROM ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.51.0 as builder - - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.6 - -WORKDIR / -COPY --from=builder /manager . - -ENV SUMMARY="UBI based opentelemetry operator" \ - DESCRIPTION="OpenTelemetry Operator manages OpenTelemetry Collector and auto-instrumentation of the workloads using OpenTelemetry instrumentation libraries" - -LABEL name="opentelemetry-operator" \ - vendor="Sumo Logic" \ - version="0.51.0" \ - release="1" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -ADD https://raw.githubusercontent.com/open-telemetry/opentelemetry-operator/v0.51.0/LICENSE \ - /licenses/LICENSE - -USER 65532:65532 - -ENTRYPOINT ["/manager"] diff --git a/opentelemetry-operator/0.51.0/Makefile b/opentelemetry-operator/0.51.0/Makefile deleted file mode 100644 index 53aef92..0000000 --- a/opentelemetry-operator/0.51.0/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t opentelemetry-operator:0.51.0 diff --git a/opentelemetry-operator/0.63.1/Dockerfile b/opentelemetry-operator/0.63.1/Dockerfile deleted file mode 100644 index 33ad2a1..0000000 --- a/opentelemetry-operator/0.63.1/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/open-telemetry/opentelemetry-operator/blob/v0.63.1/Dockerfile - -FROM ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.63.1 as builder - - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.8 - -WORKDIR / -COPY --from=builder /manager . - -ENV SUMMARY="UBI based opentelemetry operator" \ - DESCRIPTION="OpenTelemetry Operator manages OpenTelemetry Collector and auto-instrumentation of the workloads using OpenTelemetry instrumentation libraries" - -LABEL name="opentelemetry-operator" \ - vendor="Sumo Logic" \ - version="0.63.1" \ - release="1" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -ADD https://raw.githubusercontent.com/open-telemetry/opentelemetry-operator/v0.63.1/LICENSE \ - /licenses/LICENSE - -USER 65532:65532 - -ENTRYPOINT ["/manager"] diff --git a/opentelemetry-operator/0.63.1/Makefile b/opentelemetry-operator/0.63.1/Makefile deleted file mode 100644 index 3bd8db3..0000000 --- a/opentelemetry-operator/0.63.1/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t opentelemetry-operator:0.63.1 diff --git a/opentelemetry-operator/Dockerfile b/opentelemetry-operator/Dockerfile index 5931ec9..533b563 100644 --- a/opentelemetry-operator/Dockerfile +++ b/opentelemetry-operator/Dockerfile @@ -1,12 +1,11 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/open-telemetry/opentelemetry-operator/blob/v0.63.1/Dockerfile FROM public.ecr.aws/sumologic/opentelemetry-operator:${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/opentelemetry-operator/Makefile b/opentelemetry-operator/Makefile index 69d14a4..ee18329 100644 --- a/opentelemetry-operator/Makefile +++ b/opentelemetry-operator/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "" -IMAGE_NAME := "opentelemetry-operator" include ../Makefile.common diff --git a/prometheus-config-reloader/Dockerfile b/prometheus-config-reloader/Dockerfile index 2d35bce..0c6782f 100644 --- a/prometheus-config-reloader/Dockerfile +++ b/prometheus-config-reloader/Dockerfile @@ -1,11 +1,10 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/v${UPSTREAM_VERSION}/cmd/prometheus-config-reloader/Dockerfile FROM public.ecr.aws/sumologic/prometheus-config-reloader:v${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/prometheus-config-reloader/Makefile b/prometheus-config-reloader/Makefile index 717fa92..371919b 100755 --- a/prometheus-config-reloader/Makefile +++ b/prometheus-config-reloader/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "v" -IMAGE_NAME := "prometheus-config-reloader" include ../Makefile.common diff --git a/prometheus-config-reloader/v0.43.2/Dockerfile b/prometheus-config-reloader/v0.43.2/Dockerfile deleted file mode 100644 index 917257f..0000000 --- a/prometheus-config-reloader/v0.43.2/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/prometheus-operator/prometheus-operator/blob/b86ab77239f2a11ee69ad05b24122958d8b2df5b/cmd/prometheus-config-reloader/Dockerfile -FROM quay.io/prometheus-operator/prometheus-config-reloader:v0.43.2 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.4 - -LABEL name="Prometheus-config-reloader" \ - vendor="Sumo Logic" \ - version="0.43.2" \ - release="1" \ - summary="UBI based prometheus-config-reloader" \ - description="Prometheus configuration reloader" \ - maintainer="collection@sumologic.com" - -COPY --from=builder \ - /bin/prometheus-config-reloader \ - /bin/prometheus-config-reloader -ADD https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/b86ab77239f2a11ee69ad05b24122958d8b2df5b/LICENSE \ - /licenses/LICENSE - -USER nobody - -ENTRYPOINT ["/bin/prometheus-config-reloader"] diff --git a/prometheus-config-reloader/v0.43.2/Makefile b/prometheus-config-reloader/v0.43.2/Makefile deleted file mode 100644 index 94b23bf..0000000 --- a/prometheus-config-reloader/v0.43.2/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t prometheus-config-reloader:v0.43.2-ubi diff --git a/prometheus-config-reloader/v0.44.0/Dockerfile b/prometheus-config-reloader/v0.44.0/Dockerfile deleted file mode 100644 index f68fc6b..0000000 --- a/prometheus-config-reloader/v0.44.0/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/prometheus-operator/prometheus-operator/blob/v0.44.0/cmd/prometheus-config-reloader/Dockerfile -FROM quay.io/prometheus-operator/prometheus-config-reloader:v0.44.0 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.6 - -ENV SUMMARY="UBI based prometheus-config-reloader" \ - DESCRIPTION="Prometheus configuration reloader" - -LABEL name="Prometheus-config-reloader" \ - vendor="Sumo Logic" \ - version="0.44.0" \ - release="2" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -COPY --from=builder \ - /bin/prometheus-config-reloader \ - /bin/prometheus-config-reloader -ADD https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.44.0/LICENSE \ - /licenses/LICENSE - -USER nobody - -ENTRYPOINT ["/bin/prometheus-config-reloader"] diff --git a/prometheus-config-reloader/v0.44.0/Makefile b/prometheus-config-reloader/v0.44.0/Makefile deleted file mode 100644 index dcbb5ee..0000000 --- a/prometheus-config-reloader/v0.44.0/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t prometheus-config-reloader:v0.44.0-ubi diff --git a/prometheus-operator/Dockerfile b/prometheus-operator/Dockerfile index bc8d367..7626506 100644 --- a/prometheus-operator/Dockerfile +++ b/prometheus-operator/Dockerfile @@ -1,12 +1,11 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/v${UPSTREAM_VERSION}/Dockerfile FROM public.ecr.aws/sumologic/prometheus-operator:v${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/prometheus-operator/Makefile b/prometheus-operator/Makefile index 6110aa8..371919b 100755 --- a/prometheus-operator/Makefile +++ b/prometheus-operator/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "v" -IMAGE_NAME := "prometheus-operator" include ../Makefile.common diff --git a/prometheus-operator/v0.43.2/Dockerfile b/prometheus-operator/v0.43.2/Dockerfile deleted file mode 100644 index cdc014a..0000000 --- a/prometheus-operator/v0.43.2/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/prometheus-operator/prometheus-operator/blob/b86ab77239f2a11ee69ad05b24122958d8b2df5b/Dockerfile -FROM quay.io/prometheus-operator/prometheus-operator:v0.43.2 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.4 - -LABEL name="Prometheus-operator" \ - vendor="Sumo Logic" \ - version="0.43.2" \ - release="1" \ - summary="UBI based prometheus-operator" \ - description="The Prometheus Operator provides Kubernetes native deployment and management of Prometheus and related monitoring components." \ - maintainer="collection@sumologic.com" - -COPY --from=builder \ - /bin/operator \ - /bin/operator -ADD https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/b86ab77239f2a11ee69ad05b24122958d8b2df5b/LICENSE \ - /licenses/LICENSE - -# On busybox 'nobody' has uid `65534' -USER 65534 - -ENTRYPOINT ["/bin/operator"] diff --git a/prometheus-operator/v0.43.2/Makefile b/prometheus-operator/v0.43.2/Makefile deleted file mode 100644 index e92cd09..0000000 --- a/prometheus-operator/v0.43.2/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t prometheus-operator:v0.43.2-ubi diff --git a/prometheus-operator/v0.44.0/Dockerfile b/prometheus-operator/v0.44.0/Dockerfile deleted file mode 100644 index 33bca12..0000000 --- a/prometheus-operator/v0.44.0/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/prometheus-operator/prometheus-operator/blob/v0.44.0/Dockerfile -FROM quay.io/prometheus-operator/prometheus-operator:v0.44.0 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.6 - -ENV SUMMARY="UBI based prometheus-operator" \ - DESCRIPTION="The Prometheus Operator provides Kubernetes native deployment and management of Prometheus and related monitoring components." - -LABEL name="Prometheus-operator" \ - vendor="Sumo Logic" \ - version="0.44.0" \ - release="2" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -COPY --from=builder \ - /bin/operator \ - /bin/operator -ADD https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.44.0/LICENSE \ - /licenses/LICENSE - -# On busybox 'nobody' has uid `65534' -USER 65534 - -ENTRYPOINT ["/bin/operator"] diff --git a/prometheus-operator/v0.44.0/Makefile b/prometheus-operator/v0.44.0/Makefile deleted file mode 100644 index aba46a1..0000000 --- a/prometheus-operator/v0.44.0/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t prometheus-operator:v0.44.0-ubi diff --git a/prometheus/Dockerfile b/prometheus/Dockerfile index 2b8401c..990f084 100644 --- a/prometheus/Dockerfile +++ b/prometheus/Dockerfile @@ -1,5 +1,4 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/prometheus/prometheus/blob/00f16d1ac3a4c94561e5133b821d8e4d9ef78ec2/Dockerfile FROM public.ecr.aws/sumologic/prometheus:v${UPSTREAM_VERSION} as builder @@ -7,7 +6,7 @@ FROM public.ecr.aws/sumologic/prometheus:v${UPSTREAM_VERSION} as builder ## Build RedHat compliant image ARG ARCH="amd64" ARG OS="linux" -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/prometheus/Makefile b/prometheus/Makefile index cd0eca1..371919b 100644 --- a/prometheus/Makefile +++ b/prometheus/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "v" -IMAGE_NAME := "prometheus" include ../Makefile.common diff --git a/prometheus/v2.22.1/Dockerfile b/prometheus/v2.22.1/Dockerfile deleted file mode 100644 index cf11d5d..0000000 --- a/prometheus/v2.22.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/prometheus/prometheus/blob/00f16d1ac3a4c94561e5133b821d8e4d9ef78ec2/Dockerfile -FROM quay.io/prometheus/prometheus:v2.22.1 as builder - -## Build RedHat compliant image -ARG ARCH="amd64" -ARG OS="linux" -FROM registry.access.redhat.com/ubi8/ubi:8.6 - -ENV SUMMARY="UBI based prometheus" \ - DESCRIPTION="Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system." - -LABEL name="Prometheus" \ - vendor="Sumo Logic" \ - version="2.22.1" \ - release="2" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -ARG ARCH="amd64" -ARG OS="linux" -COPY --from=builder /bin/prometheus /bin/prometheus -COPY --from=builder /bin/promtool /bin/promtool -COPY --from=builder /etc/prometheus/prometheus.yml /etc/prometheus/prometheus.yml -COPY --from=builder /usr/share/prometheus/console_libraries/ /usr/share/prometheus/console_libraries/ -COPY --from=builder /usr/share/prometheus/consoles/ /usr/share/prometheus/consoles/ -COPY --from=builder /LICENSE /licenses/LICENSE -COPY --from=builder /NOTICE /NOTICE -COPY --from=builder /npm_licenses.tar.bz2 /npm_licenses.tar.bz2 - -RUN ln -s /usr/share/prometheus/console_libraries /usr/share/prometheus/consoles/ /etc/prometheus/ -RUN mkdir -p /prometheus && \ - groupadd nogroup && \ - chown -R nobody:nogroup etc/prometheus /prometheus - -USER nobody -EXPOSE 9090 -VOLUME [ "/prometheus" ] -WORKDIR /prometheus -ENTRYPOINT [ "/bin/prometheus" ] -CMD [ "--config.file=/etc/prometheus/prometheus.yml", \ - "--storage.tsdb.path=/prometheus", \ - "--web.console.libraries=/usr/share/prometheus/console_libraries", \ - "--web.console.templates=/usr/share/prometheus/consoles" ] diff --git a/prometheus/v2.22.1/Makefile b/prometheus/v2.22.1/Makefile deleted file mode 100644 index f250c6d..0000000 --- a/prometheus/v2.22.1/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t prometheus:v2.22.1-ubi diff --git a/sumo-ubi-minimal/8.4/Makefile b/sumo-ubi-minimal/8.4/Makefile deleted file mode 100644 index 5aa659f..0000000 --- a/sumo-ubi-minimal/8.4/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -build: - docker build . -t sumo-ubi-minimal:8.4 - -push: - docker tag sumo-ubi-minimal:8.4 public.ecr.aws/sumologic/sumo-ubi-minimal:8.4 - docker push public.ecr.aws/sumologic/sumo-ubi-minimal:8.4 diff --git a/sumo-ubi-minimal/8.4/Dockerfile b/sumo-ubi-minimal/Dockerfile similarity index 54% rename from sumo-ubi-minimal/8.4/Dockerfile rename to sumo-ubi-minimal/Dockerfile index 954d554..876582c 100644 --- a/sumo-ubi-minimal/8.4/Dockerfile +++ b/sumo-ubi-minimal/Dockerfile @@ -1,12 +1,17 @@ -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.4 +ARG UPSTREAM_VERSION -LABEL name="sumo-ubi8-minimal" \ +FROM registry.access.redhat.com/ubi9/ubi-minimal:${UPSTREAM_VERSION} + +ARG UPSTREAM_VERSION +ARG RELEASE + +LABEL name="sumo-ubi9-minimal" \ vendor="Sumo Logic" \ - version="8.4" \ - release="1" \ + version="${UPSTREAM_VERSION}" \ + release="${RELEASE}" \ summary="Provides the latest release of the minimal Red Hat Universal Base Image 8 prepared by Sumo Logic." \ description="The Universal Base Image Minimal is a stripped down image that uses microdnf as a package manager." \ - maintainer="collection@sumologic.com" + maintainer="opensource-collection-team@sumologic.com" ADD https://www.apache.org/licenses/LICENSE-2.0.txt \ /licenses/LICENSE diff --git a/sumo-ubi-minimal/Makefile b/sumo-ubi-minimal/Makefile new file mode 100755 index 0000000..d6ae239 --- /dev/null +++ b/sumo-ubi-minimal/Makefile @@ -0,0 +1,3 @@ +#!/usr/bin/make -f + +include ../Makefile.common diff --git a/sumologic-kubernetes-setup/v3.0.0/Dockerfile b/sumologic-kubernetes-setup/v3.0.0/Dockerfile deleted file mode 100644 index 47e5dc6..0000000 --- a/sumologic-kubernetes-setup/v3.0.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM registry.access.redhat.com/ubi8/ubi:8.4 - -### Required Labels ##### -LABEL name="SumoLogic Kubernetes Setup" \ - vendor="Sumo Logic" \ - version="3.0.0" \ - release="1" \ - summary="SumoLogic k8s setup job image" \ - description="This image is used to setup the kubernetes cluster and SumoLogic environment before installing SumoLogic collection helm chart" \ - maintainer="collection@sumologic.com" - -### Required End User Agreements ### -ADD https://raw.githubusercontent.com/SumoLogic/sumologic-kubernetes-setup/9847c7ccbda1b5f98f603dc181f7f79c22311c82/LICENSE \ - /licenses/LICENSE - -ENV TERRAFORM_VERSION=0.13.7 -ARG TARGETPLATFORM - -RUN yum update -y \ - && yum install unzip -y \ - && yum clean all \ - && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then TERRAFORM_PLATFORM="linux_amd64"; fi; \ - if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then TERRAFORM_PLATFORM="linux_arm"; fi; \ - if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then TERRAFORM_PLATFORM="linux_arm64"; fi; \ - if [ "${TERRAFORM_PLATFORM}" = "" ]; then TERRAFORM_PLATFORM="${TARGETPLATFORM}"; fi \ - && curl -o terraform.zip https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_${TERRAFORM_PLATFORM}.zip \ - && unzip terraform.zip \ - && mv terraform /usr/local/bin/ \ - && rm terraform.zip \ - && groupdel input \ - && userdel systemd-coredump \ - && groupadd -g 999 setup \ - && useradd -u 999 -g setup setup \ - && mkdir /terraform /scripts \ - && chown -R setup:setup /terraform /scripts - -USER setup -RUN cd /terraform/ \ - && curl -O https://raw.githubusercontent.com/SumoLogic/sumologic-kubernetes-collection/7aeb5014aad04c21a21fea2d88e35600da6818eb/deploy/helm/sumologic/conf/setup/main.tf \ - && terraform init \ - && rm main.tf - -ARG BUILD_TAG=latest -ENV TAG=$BUILD_TAG - -WORKDIR /terraform/ diff --git a/sumologic-kubernetes-setup/v3.0.0/Makefile b/sumologic-kubernetes-setup/v3.0.0/Makefile deleted file mode 100644 index c22471b..0000000 --- a/sumologic-kubernetes-setup/v3.0.0/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t sumologic-kubernetes-setup:v3.0.0-ubi diff --git a/sumologic-kubernetes-setup/v3.3.0/Dockerfile b/sumologic-kubernetes-setup/v3.3.0/Dockerfile deleted file mode 100644 index abbb877..0000000 --- a/sumologic-kubernetes-setup/v3.3.0/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM registry.access.redhat.com/ubi8/ubi:8.6 - -ENV SUMMARY="SumoLogic k8s setup job image" \ - DESCRIPTION="This image is used to setup the kubernetes cluster and SumoLogic environment before installing SumoLogic collection helm chart" -### Required Labels ##### -LABEL name="SumoLogic Kubernetes Setup" \ - vendor="Sumo Logic" \ - version="3.3.0" \ - release="2" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -### Required End User Agreements ### -ADD https://raw.githubusercontent.com/SumoLogic/sumologic-kubernetes-setup/v3.3.0/LICENSE \ - /licenses/LICENSE - -## Original image ref: https://github.com/SumoLogic/sumologic-kubernetes-setup/blob/v3.3.0/Dockerfile -ENV TERRAFORM_VERSION=1.1.4 -ENV COLLECTION_VERSION=v2.4.1 -ENV MONITORS_VERSION=v1.0.7 -ARG TARGETPLATFORM - -RUN yum update -y \ - && yum install unzip git -y \ - && yum clean all \ - && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then TERRAFORM_PLATFORM="linux_amd64"; fi; \ - if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then TERRAFORM_PLATFORM="linux_arm"; fi; \ - if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then TERRAFORM_PLATFORM="linux_arm64"; fi; \ - if [ "${TERRAFORM_PLATFORM}" = "" ]; then TERRAFORM_PLATFORM="${TARGETPLATFORM}"; fi \ - && curl -o terraform.zip https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_${TERRAFORM_PLATFORM}.zip \ - && unzip terraform.zip \ - && mv terraform /usr/local/bin/ \ - && rm terraform.zip \ - && groupdel input \ - && userdel systemd-coredump \ - && groupadd -g 999 setup \ - && useradd -u 999 -g setup setup \ - && mkdir /terraform /scripts /monitors \ - && chown -R setup:setup /terraform /scripts /monitors - -USER setup -RUN cd /terraform/ \ - && curl -O https://raw.githubusercontent.com/SumoLogic/sumologic-kubernetes-collection/${COLLECTION_VERSION}/deploy/helm/sumologic/conf/setup/main.tf \ - && terraform init \ - && rm main.tf -RUN cd /monitors/ \ - && git clone https://github.com/SumoLogic/terraform-sumologic-sumo-logic-monitor.git \ - && cd terraform-sumologic-sumo-logic-monitor \ - && git checkout ${MONITORS_VERSION} \ - && cd .. \ - && cp terraform-sumologic-sumo-logic-monitor/monitor_packages/kubernetes/* . \ - && rm -rf terraform-sumologic-sumo-logic-monitor - -ARG BUILD_TAG=latest -ENV TAG=$BUILD_TAG - -WORKDIR /terraform/ diff --git a/sumologic-kubernetes-setup/v3.3.0/Makefile b/sumologic-kubernetes-setup/v3.3.0/Makefile deleted file mode 100644 index 75105b0..0000000 --- a/sumologic-kubernetes-setup/v3.3.0/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -BUILD_TAG ?= 3.3.0-ubi -IMAGE_NAME = kubernetes-setup - -build: - DOCKER_BUILDKIT=1 docker build \ - --load \ - --build-arg BUILD_TAG=$(BUILD_TAG) \ - --tag $(IMAGE_NAME):$(BUILD_TAG) \ - . diff --git a/sumologic-kubernetes-setup/v3.4.0/Dockerfile b/sumologic-kubernetes-setup/v3.4.0/Dockerfile deleted file mode 100644 index 9f30498..0000000 --- a/sumologic-kubernetes-setup/v3.4.0/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM registry.access.redhat.com/ubi8/ubi:8.8 - -ENV SUMMARY="SumoLogic k8s setup job image" \ - DESCRIPTION="This image is used to setup the kubernetes cluster and SumoLogic environment before installing SumoLogic collection helm chart" -### Required Labels ##### -LABEL name="SumoLogic Kubernetes Setup" \ - vendor="Sumo Logic" \ - version="3.4.0" \ - release="4" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -### Required End User Agreements ### -ADD https://raw.githubusercontent.com/SumoLogic/sumologic-kubernetes-setup/v3.4.0/LICENSE \ - /licenses/LICENSE - -## Original image ref: https://github.com/SumoLogic/sumologic-kubernetes-setup/blob/v3.4.0/Dockerfile -ENV TERRAFORM_VERSION=1.2.7 -ENV COLLECTION_VERSION=c251098963278e02c012cf8471d0b7a162efcb74 -ENV MONITORS_VERSION=v1.0.7 -ARG TARGETPLATFORM - -RUN yum update -y \ - && yum install unzip git jq -y \ - && yum clean all \ - && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then TERRAFORM_PLATFORM="linux_amd64"; fi; \ - if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then TERRAFORM_PLATFORM="linux_arm"; fi; \ - if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then TERRAFORM_PLATFORM="linux_arm64"; fi; \ - if [ "${TERRAFORM_PLATFORM}" = "" ]; then TERRAFORM_PLATFORM="${TARGETPLATFORM}"; fi \ - && curl -o terraform.zip https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_${TERRAFORM_PLATFORM}.zip \ - && unzip terraform.zip \ - && mv terraform /usr/local/bin/ \ - && rm terraform.zip \ - && groupdel input \ - && userdel systemd-coredump \ - && groupadd -g 999 setup \ - && useradd -u 999 -g setup setup \ - && mkdir /terraform /scripts /monitors \ - && chown -R setup:setup /terraform /scripts /monitors - -USER setup -RUN cd /terraform/ \ - && curl -O https://raw.githubusercontent.com/SumoLogic/sumologic-kubernetes-collection/${COLLECTION_VERSION}/deploy/helm/sumologic/conf/setup/main.tf \ - && terraform init \ - && rm main.tf -RUN cd /monitors/ \ - && git clone https://github.com/SumoLogic/terraform-sumologic-sumo-logic-monitor.git \ - && cd terraform-sumologic-sumo-logic-monitor \ - && git checkout ${MONITORS_VERSION} \ - && cd .. \ - && cp terraform-sumologic-sumo-logic-monitor/monitor_packages/kubernetes/* . \ - && rm -rf terraform-sumologic-sumo-logic-monitor - -ARG BUILD_TAG=latest -ENV TAG=$BUILD_TAG - -WORKDIR /terraform/ diff --git a/sumologic-kubernetes-setup/v3.4.0/Makefile b/sumologic-kubernetes-setup/v3.4.0/Makefile deleted file mode 100644 index 800a6ee..0000000 --- a/sumologic-kubernetes-setup/v3.4.0/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -BUILD_TAG ?= 3.4.0-ubi-2 -IMAGE_NAME = kubernetes-setup - -build: - DOCKER_BUILDKIT=1 docker build \ - --load \ - --build-arg BUILD_TAG=$(BUILD_TAG) \ - --tag $(IMAGE_NAME):$(BUILD_TAG) \ - . diff --git a/sumologic-otel-collector/0.54.0-sumo-0/Dockerfile b/sumologic-otel-collector/0.54.0-sumo-0/Dockerfile deleted file mode 100644 index 6c934d3..0000000 --- a/sumologic-otel-collector/0.54.0-sumo-0/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/SumoLogic/sumologic-otel-collector/blob/v0.54.0-sumo-0/Dockerfile -FROM public.ecr.aws/sumologic/sumologic-otel-collector:0.54.0-sumo-0 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.6 - -ENV SUMMARY="UBI based sumologic-otel-collector" \ - DESCRIPTION="Sumo Logic Distribution for OpenTelemetry Collector is a Sumo Logic-supported distribution of the OpenTelemetry Collector. It is a single agent to send logs, metrics and traces to Sumo Logic." - -LABEL name="sumologic-otel-collector" \ - vendor="Sumo Logic" \ - version="0.54.0-sumo" \ - release="2" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -ADD https://github.com/SumoLogic/sumologic-otel-collector/blob/v0.54.0-sumo-0/LICENSE \ - /licenses/LICENSE - -ARG USER_UID=10001 -USER ${USER_UID} -ENV HOME /etc/otel/ - -# copy journalctl and it's dependencies as base structure -COPY --from=builder / / -COPY --from=builder --chown=${USER_UID}:${USER_UID} /etc/otel/ /etc/otel/ -COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt -COPY --from=builder /otelcol-sumo /otelcol-sumo -ENTRYPOINT ["/otelcol-sumo"] -CMD ["--config", "/etc/otel/config.yaml"] diff --git a/sumologic-otel-collector/0.54.0-sumo-0/Makefile b/sumologic-otel-collector/0.54.0-sumo-0/Makefile deleted file mode 100644 index 4eb663f..0000000 --- a/sumologic-otel-collector/0.54.0-sumo-0/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t sumologic-otel-collector:0.54.0-sumo-0-ubi diff --git a/sumologic-otel-collector/0.56.0-sumo-0/Dockerfile b/sumologic-otel-collector/0.56.0-sumo-0/Dockerfile deleted file mode 100644 index b49d84a..0000000 --- a/sumologic-otel-collector/0.56.0-sumo-0/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/SumoLogic/sumologic-otel-collector/blob/v0.56.0-sumo-0/Dockerfile -FROM public.ecr.aws/sumologic/sumologic-otel-collector:0.56.0-sumo-0 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.6 - -ENV SUMMARY="UBI based sumologic-otel-collector" \ - DESCRIPTION="Sumo Logic Distribution for OpenTelemetry Collector is a Sumo Logic-supported distribution of the OpenTelemetry Collector. It is a single agent to send logs, metrics and traces to Sumo Logic." - -LABEL name="sumologic-otel-collector" \ - vendor="Sumo Logic" \ - version="0.56.0-sumo" \ - release="3" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -ADD https://github.com/SumoLogic/sumologic-otel-collector/blob/v0.56.0-sumo-0/LICENSE \ - /licenses/LICENSE - -ARG USER_UID=10001 -USER ${USER_UID} -ENV HOME /etc/otel/ - -# copy journalctl and it's dependencies as base structure -COPY --from=builder / / -COPY --from=builder --chown=${USER_UID}:${USER_UID} /etc/otel/ /etc/otel/ -COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt -COPY --from=builder /otelcol-sumo /otelcol-sumo -ENTRYPOINT ["/otelcol-sumo"] -CMD ["--config", "/etc/otel/config.yaml"] diff --git a/sumologic-otel-collector/0.56.0-sumo-0/Makefile b/sumologic-otel-collector/0.56.0-sumo-0/Makefile deleted file mode 100644 index 46a2822..0000000 --- a/sumologic-otel-collector/0.56.0-sumo-0/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t sumologic-otel-collector:0.56.0-sumo-0-ubi diff --git a/sumologic-otel-collector/0.57.2-sumo-1/Dockerfile b/sumologic-otel-collector/0.57.2-sumo-1/Dockerfile deleted file mode 100644 index 07fc5c6..0000000 --- a/sumologic-otel-collector/0.57.2-sumo-1/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/SumoLogic/sumologic-otel-collector/blob/v0.57.2-sumo-1/Dockerfile -FROM public.ecr.aws/sumologic/sumologic-otel-collector:0.57.2-sumo-1 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.6 - -ENV SUMMARY="UBI based sumologic-otel-collector" \ - DESCRIPTION="Sumo Logic Distribution for OpenTelemetry Collector is a Sumo Logic-supported distribution of the OpenTelemetry Collector. It is a single agent to send logs, metrics and traces to Sumo Logic." - -LABEL name="sumologic-otel-collector" \ - vendor="Sumo Logic" \ - version="0.57.2-sumo-1" \ - release="4" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -ADD https://raw.githubusercontent.com/SumoLogic/sumologic-otel-collector/v0.57.2-sumo-1/LICENSE \ - /licenses/LICENSE - -ARG USER_UID=10001 -USER ${USER_UID} -ENV HOME /etc/otel/ - -# copy journalctl and it's dependencies as base structure -COPY --from=builder / / -COPY --from=builder --chown=${USER_UID}:${USER_UID} /etc/otel/ /etc/otel/ -COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt -COPY --from=builder /otelcol-sumo /otelcol-sumo -ENTRYPOINT ["/otelcol-sumo"] -CMD ["--config", "/etc/otel/config.yaml"] diff --git a/sumologic-otel-collector/0.57.2-sumo-1/Makefile b/sumologic-otel-collector/0.57.2-sumo-1/Makefile deleted file mode 100644 index ec0ae8d..0000000 --- a/sumologic-otel-collector/0.57.2-sumo-1/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t sumologic-otel-collector:0.57.2-sumo-1-ubi diff --git a/telegraf-operator/Dockerfile b/telegraf-operator/Dockerfile index 8a02a6c..78b7c25 100644 --- a/telegraf-operator/Dockerfile +++ b/telegraf-operator/Dockerfile @@ -1,12 +1,11 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/influxdata/telegraf-operator/blob/v1.3.10/Dockerfile FROM public.ecr.aws/sumologic/telegraf-operator:v${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/telegraf-operator/Makefile b/telegraf-operator/Makefile index 2d19f0a..371919b 100644 --- a/telegraf-operator/Makefile +++ b/telegraf-operator/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "v" -IMAGE_NAME := "telegraf-operator" include ../Makefile.common diff --git a/telegraf-operator/v1.1.1/Dockerfile b/telegraf-operator/v1.1.1/Dockerfile deleted file mode 100644 index cbbfd3f..0000000 --- a/telegraf-operator/v1.1.1/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/influxdata/telegraf-operator/blob/v1.1.1/Dockerfile -FROM quay.io/influxdb/telegraf-operator:v1.1.1 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi-minimal:latest - -LABEL name="telegraf-operator" \ - vendor="Sumo Logic" \ - version="1.1.1" \ - release="1" \ - summary="UBI based telegraf-operator" \ - description="The telegraf facilitates management of telegraf CRDs in Kubernetes." \ - maintainer="collection@sumologic.com" - -WORKDIR / -COPY --from=builder /manager . - -ADD https://raw.githubusercontent.com/influxdata/telegraf-operator/79b6434e7a3655f9f65d9552d2c420a54026323d/LICENSE \ - /licenses/LICENSE - -ENTRYPOINT ["/manager"] diff --git a/telegraf-operator/v1.1.1/Makefile b/telegraf-operator/v1.1.1/Makefile deleted file mode 100644 index 9d312aa..0000000 --- a/telegraf-operator/v1.1.1/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t telegraf-operator:v1.1.1-ubi diff --git a/telegraf-operator/v1.3.10/Dockerfile b/telegraf-operator/v1.3.10/Dockerfile deleted file mode 100644 index 23b8731..0000000 --- a/telegraf-operator/v1.3.10/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/influxdata/telegraf-operator/blob/v1.3.10/Dockerfile -FROM quay.io/influxdb/telegraf-operator:v1.3.10 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8-minimal:8.8 - -ENV SUMMARY="UBI based telegraf-operator" \ - DESCRIPTION="The telegraf facilitates management of telegraf CRDs in Kubernetes." - -LABEL name="telegraf-operator" \ - vendor="Sumo Logic" \ - version="1.3.10" \ - release="1" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -WORKDIR / -COPY --from=builder /manager . - -ADD https://raw.githubusercontent.com/influxdata/telegraf-operator/v1.3.10/LICENSE \ - /licenses/LICENSE - -USER nobody -ENTRYPOINT ["/manager"] diff --git a/telegraf-operator/v1.3.10/Makefile b/telegraf-operator/v1.3.10/Makefile deleted file mode 100644 index 8b37aa1..0000000 --- a/telegraf-operator/v1.3.10/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t telegraf-operator-ubi:v1.3.10 diff --git a/telegraf-operator/v1.3.5/Dockerfile b/telegraf-operator/v1.3.5/Dockerfile deleted file mode 100644 index d6796cf..0000000 --- a/telegraf-operator/v1.3.5/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/influxdata/telegraf-operator/blob/v1.3.5/Dockerfile -FROM quay.io/influxdb/telegraf-operator:v1.3.5 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.6 - -ENV SUMMARY="UBI based telegraf-operator" \ - DESCRIPTION="The telegraf facilitates management of telegraf CRDs in Kubernetes." - -LABEL name="telegraf-operator" \ - vendor="Sumo Logic" \ - version="1.3.5" \ - release="2" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -WORKDIR / -COPY --from=builder /manager . - -ADD https://raw.githubusercontent.com/influxdata/telegraf-operator/v1.3.5/LICENSE \ - /licenses/LICENSE - -USER nobody -ENTRYPOINT ["/manager"] diff --git a/telegraf-operator/v1.3.5/Makefile b/telegraf-operator/v1.3.5/Makefile deleted file mode 100644 index 35ac5f5..0000000 --- a/telegraf-operator/v1.3.5/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t telegraf-operator-ubi:v1.3.5 diff --git a/telegraf/1.14.4/Dockerfile b/telegraf/1.14.4/Dockerfile deleted file mode 100644 index 4985a17..0000000 --- a/telegraf/1.14.4/Dockerfile +++ /dev/null @@ -1,31 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/influxdata/influxdata-docker/blob/1d3c13915c892a46bca5da3e3369b8620be6df80/telegraf/1.14/Dockerfile -FROM telegraf:1.14.4 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.4 - -LABEL name="telegraf" \ - vendor="Sumo Logic" \ - version="1.14.4" \ - release="1" \ - summary="UBI based telegraf" \ - description="Telegraf is an agent for collecting metrics and writing them to InfluxDB or other outputs." \ - maintainer="collection@sumologic.com" - -COPY --from=builder /usr/bin/telegraf \ - /usr/bin/telegraf -COPY --from=builder /etc/telegraf/telegraf.conf \ - /etc/telegraf/telegraf.conf -# copy ca-cerificates -COPY --from=builder /etc/ssl/certs/ca-certificates.crt \ - /etc/ssl/certs - -ADD https://raw.githubusercontent.com/influxdata/influxdata-docker/1d3c13915c892a46bca5da3e3369b8620be6df80/telegraf/LICENSE \ - /licenses/LICENSE - -EXPOSE 8125/udp 8092/udp 8094 - -COPY --from=builder /entrypoint.sh /entrypoint.sh -ENTRYPOINT ["/entrypoint.sh"] -CMD ["telegraf"] diff --git a/telegraf/1.14.4/LICENSE b/telegraf/1.14.4/LICENSE deleted file mode 100644 index c2419d2..0000000 --- a/telegraf/1.14.4/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Influxdata.inc - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/telegraf/1.14.4/Makefile b/telegraf/1.14.4/Makefile deleted file mode 100644 index 726bbd3..0000000 --- a/telegraf/1.14.4/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t telegraf:1.14.4-ubi diff --git a/telegraf/1.21.2/Dockerfile b/telegraf/1.21.2/Dockerfile deleted file mode 100644 index 426c380..0000000 --- a/telegraf/1.21.2/Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/influxdata/influxdata-docker/blob/dd108978ea0e5c0e99ebc745c03973c755702680/telegraf/1.21/Dockerfile -FROM telegraf:1.21.2 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.6 - -ENV SUMMARY="UBI based telegraf" \ - DESCRIPTION="Telegraf is an agent for collecting metrics and writing them to InfluxDB or other outputs." - -LABEL name="telegraf" \ - vendor="Sumo Logic" \ - version="1.21.2" \ - release="2" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -COPY --from=builder /usr/bin/telegraf \ - /usr/bin/telegraf -COPY --from=builder /etc/telegraf/telegraf.conf \ - /etc/telegraf/telegraf.conf -# copy ca-cerificates -COPY --from=builder /etc/ssl/certs/ca-certificates.crt \ - /etc/ssl/certs - -ADD https://raw.githubusercontent.com/influxdata/influxdata-docker/dd108978ea0e5c0e99ebc745c03973c755702680/telegraf/LICENSE \ - /licenses/LICENSE - -EXPOSE 8125/udp 8092/udp 8094 - -COPY --from=builder /entrypoint.sh /entrypoint.sh -USER nobody -ENTRYPOINT ["/entrypoint.sh"] -CMD ["telegraf"] diff --git a/telegraf/1.21.2/LICENSE b/telegraf/1.21.2/LICENSE deleted file mode 100644 index c2419d2..0000000 --- a/telegraf/1.21.2/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Influxdata.inc - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/telegraf/1.21.2/Makefile b/telegraf/1.21.2/Makefile deleted file mode 100644 index 73bd6fe..0000000 --- a/telegraf/1.21.2/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t telegraf:1.21.2-ubi diff --git a/telegraf/Dockerfile b/telegraf/Dockerfile index 820d189..ad499e0 100644 --- a/telegraf/Dockerfile +++ b/telegraf/Dockerfile @@ -1,12 +1,11 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi-minimal:8.6 ## Use original image to copy files from ## ref: https://github.com/influxdata/influxdata-docker/blob/dd108978ea0e5c0e99ebc745c03973c755702680/telegraf/1.21/Dockerfile FROM public.ecr.aws/sumologic/telegraf:${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/telegraf/Makefile b/telegraf/Makefile index 7397797..d6ae239 100644 --- a/telegraf/Makefile +++ b/telegraf/Makefile @@ -1,6 +1,3 @@ #!/usr/bin/make -f -VERSION_PREFIX := "" -IMAGE_NAME := "telegraf" - include ../Makefile.common diff --git a/thanos/Dockerfile b/thanos/Dockerfile index bc5ca3d..8eb9671 100644 --- a/thanos/Dockerfile +++ b/thanos/Dockerfile @@ -1,12 +1,11 @@ ARG UPSTREAM_VERSION -ARG UBI_IMAGE=registry.access.redhat.com/ubi8/ubi:8.6 ## Use original image to copy files from ## ref: https://github.com/thanos-io/thanos/blob/v0.25.2/Dockerfile FROM public.ecr.aws/sumologic/thanos:v${UPSTREAM_VERSION} as builder ## Build RedHat compliant image -FROM ${UBI_IMAGE} +FROM registry.access.redhat.com/ubi9/ubi:9.4 ARG UPSTREAM_VERSION ARG RELEASE diff --git a/thanos/Makefile b/thanos/Makefile index c7602a0..371919b 100644 --- a/thanos/Makefile +++ b/thanos/Makefile @@ -1,6 +1,5 @@ #!/usr/bin/make -f VERSION_PREFIX := "v" -IMAGE_NAME := "thanos" include ../Makefile.common diff --git a/thanos/v0.10.0/Dockerfile b/thanos/v0.10.0/Dockerfile deleted file mode 100644 index 90f6045..0000000 --- a/thanos/v0.10.0/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/thanos-io/thanos/blob/698c7a922cd5dcaa53e305db5c2adb4e79d328ba/Dockerfile -FROM quay.io/thanos/thanos:v0.10.0 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.4 - -LABEL name="Thanos" \ - vendor="Sumo Logic" \ - version="0.10.0" \ - release="1" \ - summary="UBI based thanos" \ - description="Thanos is a set of components that can be composed into a highly available metric system with unlimited storage capacity, which can be added seamlessly on top of existing Prometheus deployments." \ - maintainer="collection@sumologic.com" - -COPY --from=builder \ - /bin/thanos \ - /bin/thanos -ADD https://raw.githubusercontent.com/thanos-io/thanos/698c7a922cd5dcaa53e305db5c2adb4e79d328ba/LICENSE \ - /licenses/LICENSE - -ENTRYPOINT [ "/bin/thanos" ] diff --git a/thanos/v0.10.0/Makefile b/thanos/v0.10.0/Makefile deleted file mode 100644 index a4c3ebf..0000000 --- a/thanos/v0.10.0/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t thanos:v0.10.0-ubi diff --git a/thanos/v0.25.2/Dockerfile b/thanos/v0.25.2/Dockerfile deleted file mode 100644 index d7bb27b..0000000 --- a/thanos/v0.25.2/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -## Use original image to copy files from -## ref: https://github.com/thanos-io/thanos/blob/v0.25.2/Dockerfile -FROM quay.io/thanos/thanos:v0.25.2 as builder - -## Build RedHat compliant image -FROM registry.access.redhat.com/ubi8/ubi:8.6 - -ENV SUMMARY="UBI based thanos" \ - DESCRIPTION="Thanos is a set of components that can be composed into a highly available metric system with unlimited storage capacity, which can be added seamlessly on top of existing Prometheus deployments." - -LABEL name="Thanos" \ - vendor="Sumo Logic" \ - version="0.25.2" \ - release="2" \ - summary="$SUMMARY" \ - description="$DESCRIPTION" \ - io.k8s.description="$DESCRIPTION" \ - maintainer="collection@sumologic.com" - -COPY --from=builder \ - /bin/thanos \ - /bin/thanos -ADD https://raw.githubusercontent.com/thanos-io/thanos/v0.25.2/LICENSE \ - /licenses/LICENSE - -USER nobody - -ENTRYPOINT [ "/bin/thanos" ] diff --git a/thanos/v0.25.2/Makefile b/thanos/v0.25.2/Makefile deleted file mode 100644 index c7072c9..0000000 --- a/thanos/v0.25.2/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -build: - docker build . -t thanos:v0.25.2-ubi