From bb7faf8a9a42bc6cb492639bf913081d59b56abe Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Thu, 15 Dec 2022 10:56:21 -0500 Subject: [PATCH 01/21] Create configmap-entrypoint.yaml --- utilities/collectl/configmap-entrypoint.yaml | 63 ++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 utilities/collectl/configmap-entrypoint.yaml diff --git a/utilities/collectl/configmap-entrypoint.yaml b/utilities/collectl/configmap-entrypoint.yaml new file mode 100644 index 0000000..e7cea85 --- /dev/null +++ b/utilities/collectl/configmap-entrypoint.yaml @@ -0,0 +1,63 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: collectl-entrypoint + namespace: openshift4-debug +data: + entrypoint.sh: |- + #!/bin/bash + + trap signal EXIT + trap signal SIGINT + + function signal() + { + echo "Exited due to signal recieved." + exit + } + + function main() + { + echo "Found hostname:" + echo $(/usr/bin/hostname) + + echo "Checking collectl version:" + /usr/bin/collectl -v + + echo "Current configuration:" + CONFIG=$(egrep -v "\#|^$" /etc/collectl.conf) + echo "$CONFIG" + + echo "Ensuring /var/log/collectl exists..." + if [ ! -d /var/log/collectl ] + then + mkdir /var/log/collectl + fi + + echo "Checking if collectl is already running on this node..." + PID=$(pgrep -f '/usr/bin/perl -w /usr/bin/collectl') + if [ ! -z "$PID" ] + then + echo "Host process $PID is already running collectl, exiting." + exit + fi + + echo "Starting collectl process..." + /usr/bin/collectl -D /etc/collectl.conf + PID=$(pgrep -f '/usr/bin/perl -w /usr/bin/collectl') + + echo "Monitoring PID $PID for exit..." + while true + do + PID=$(pgrep -f '/usr/bin/perl -w /usr/bin/collectl') + if [ $? -ne 0 ] + then + echo "Could no longer find PID $PID, exiting..." + exit + fi + + sleep 10 + done + } + + main From a0d594d6ae5d9b61b68b8967bd920279fa58806c Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Thu, 15 Dec 2022 11:00:11 -0500 Subject: [PATCH 02/21] Update README.md --- utilities/collectl/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/collectl/README.md b/utilities/collectl/README.md index 423be37..f22a401 100644 --- a/utilities/collectl/README.md +++ b/utilities/collectl/README.md @@ -19,7 +19,7 @@ imagestream.image.openshift.io/collectl created Then add the entrypoint as a `configMap`: ```bash -$ oc create configmap collectl-entrypoint --from-file entrypoint.sh +$ oc create -f configmap-entrypoint.yaml configmap/collectl-entrypoint created ``` From 5ed001963a56ff547a73dc2a70430c58717abaac Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 15:24:57 -0500 Subject: [PATCH 03/21] Create buildconfig-logrotate --- utilities/collectl/buildconfig-logrotate | 30 ++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 utilities/collectl/buildconfig-logrotate diff --git a/utilities/collectl/buildconfig-logrotate b/utilities/collectl/buildconfig-logrotate new file mode 100644 index 0000000..d3291d2 --- /dev/null +++ b/utilities/collectl/buildconfig-logrotate @@ -0,0 +1,30 @@ +apiVersion: build.openshift.io/v1 +kind: BuildConfig +metadata: + name: logrotate + namespace: openshift4-debug + labels: + app: openshift4-debug +spec: + output: + to: + kind: ImageStreamTag + name: logrotate:latest + source: + dockerfile: | + FROM registry.access.redhat.com/ubi8 + RUN yum install logrotate -y && \ + yum clean all + COPY ./entrypoint /root/ + RUN chmod 741 /root/entrypoint.sh + CMD ["/root/entrypoint.sh"] + type: Dockerfile + configMaps: + - configMap: + name: logrotate-entrypoint + destinationDir: entrypoint + strategy: + dockerStrategy: {} + type: Docker + triggers: + - type: ConfigChange From 556ce6eea384a1db64fc47645689893bf6ea53aa Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 15:26:30 -0500 Subject: [PATCH 04/21] Update buildconfig-logrotate --- utilities/collectl/buildconfig-logrotate | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utilities/collectl/buildconfig-logrotate b/utilities/collectl/buildconfig-logrotate index d3291d2..f254803 100644 --- a/utilities/collectl/buildconfig-logrotate +++ b/utilities/collectl/buildconfig-logrotate @@ -13,8 +13,8 @@ spec: source: dockerfile: | FROM registry.access.redhat.com/ubi8 - RUN yum install logrotate -y && \ - yum clean all + RUN dnf install logrotate -y && \ + dnf clean all COPY ./entrypoint /root/ RUN chmod 741 /root/entrypoint.sh CMD ["/root/entrypoint.sh"] From 8641bb69a7dcc26c9d03e660c795f1d97a106eb2 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 15:41:59 -0500 Subject: [PATCH 05/21] Update and rename buildconfig-logrotate to buildconfig-logrotate.yaml --- .../{buildconfig-logrotate => buildconfig-logrotate.yaml} | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) rename utilities/collectl/{buildconfig-logrotate => buildconfig-logrotate.yaml} (69%) diff --git a/utilities/collectl/buildconfig-logrotate b/utilities/collectl/buildconfig-logrotate.yaml similarity index 69% rename from utilities/collectl/buildconfig-logrotate rename to utilities/collectl/buildconfig-logrotate.yaml index f254803..bcc24fc 100644 --- a/utilities/collectl/buildconfig-logrotate +++ b/utilities/collectl/buildconfig-logrotate.yaml @@ -15,14 +15,8 @@ spec: FROM registry.access.redhat.com/ubi8 RUN dnf install logrotate -y && \ dnf clean all - COPY ./entrypoint /root/ - RUN chmod 741 /root/entrypoint.sh - CMD ["/root/entrypoint.sh"] + CMD logrotate /etc/logrotate.conf type: Dockerfile - configMaps: - - configMap: - name: logrotate-entrypoint - destinationDir: entrypoint strategy: dockerStrategy: {} type: Docker From 06e8f9047e5b6a297ed3a3ff47f7661a54695d2a Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 15:51:56 -0500 Subject: [PATCH 06/21] buildconfig --- .../buildconfig.yaml} | 0 utilities/logrotate/imagestream.yaml | 7 +++++++ 2 files changed, 7 insertions(+) rename utilities/{collectl/buildconfig-logrotate.yaml => logrotate/buildconfig.yaml} (100%) create mode 100644 utilities/logrotate/imagestream.yaml diff --git a/utilities/collectl/buildconfig-logrotate.yaml b/utilities/logrotate/buildconfig.yaml similarity index 100% rename from utilities/collectl/buildconfig-logrotate.yaml rename to utilities/logrotate/buildconfig.yaml diff --git a/utilities/logrotate/imagestream.yaml b/utilities/logrotate/imagestream.yaml new file mode 100644 index 0000000..3173170 --- /dev/null +++ b/utilities/logrotate/imagestream.yaml @@ -0,0 +1,7 @@ +apiVersion: image.openshift.io/v1 +kind: ImageStream +metadata: + name: logrotate + namespace: openshift4-debug + labels: + app: openshift4-debug From 0be34b6101a648ba253df6fe6eb695d581194da7 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:01:52 -0500 Subject: [PATCH 07/21] Create configmap.yaml --- utilities/logrotate/configmap.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 utilities/logrotate/configmap.yaml diff --git a/utilities/logrotate/configmap.yaml b/utilities/logrotate/configmap.yaml new file mode 100644 index 0000000..c29eac2 --- /dev/null +++ b/utilities/logrotate/configmap.yaml @@ -0,0 +1,14 @@ + +apiVersion: v1 +kind: ConfigMap +metadata: + name: logrotate-config + namespace: openshift4-debug +data: + logrotate.conf: |- + #!/bin/bash + /var/log/collectl/*raw.gz { + daily + missingok + rotate 14 + } From 626496db06593b764cc1b48bfda8cd0001d6c283 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:05:02 -0500 Subject: [PATCH 08/21] Create cronjob.yaml --- utilities/logrotate/cronjob.yaml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 utilities/logrotate/cronjob.yaml diff --git a/utilities/logrotate/cronjob.yaml b/utilities/logrotate/cronjob.yaml new file mode 100644 index 0000000..93bbba9 --- /dev/null +++ b/utilities/logrotate/cronjob.yaml @@ -0,0 +1,29 @@ +apiVersion: batch/v1beta1 +kind: CronJob +metadata: + name: app-logrotate +spec: + schedule: "* * 7 * *" + concurrencyPolicy: Replace + jobTemplate: + spec: + template: + spec: + containers: + - name: logrotate + image: image-registry.openshift-image-registry.svc:5000/openshift4-debug/logrotate + volumeMounts: + - name: logrotate-conf + mountPath: /etc/logrotate.conf + - name: app-logs + mountPath: /var/log/ + volumes: + - name: logrotate-conf + configMap: + name: logrotate-config + - name: logs + hostPath: + path: /var/log + type: Directory + serviceAccount: openshift4-debug + serviceAccountName: openshift4-debug From 6acbac908a23a97d9ce8456f37531ab9cc6107a2 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:10:14 -0500 Subject: [PATCH 09/21] Update configmap.yaml --- utilities/logrotate/configmap.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/utilities/logrotate/configmap.yaml b/utilities/logrotate/configmap.yaml index c29eac2..b845f56 100644 --- a/utilities/logrotate/configmap.yaml +++ b/utilities/logrotate/configmap.yaml @@ -6,9 +6,8 @@ metadata: namespace: openshift4-debug data: logrotate.conf: |- - #!/bin/bash /var/log/collectl/*raw.gz { daily - missingok - rotate 14 + missingok + rotate 14 } From 59d2046b739a3813e00ef5df0abb55dcc888ab9f Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:13:05 -0500 Subject: [PATCH 10/21] Update cronjob.yaml --- utilities/logrotate/cronjob.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/utilities/logrotate/cronjob.yaml b/utilities/logrotate/cronjob.yaml index 93bbba9..4fa5df9 100644 --- a/utilities/logrotate/cronjob.yaml +++ b/utilities/logrotate/cronjob.yaml @@ -17,6 +17,8 @@ spec: mountPath: /etc/logrotate.conf - name: app-logs mountPath: /var/log/ + nodeSelector: + collectl: "true" volumes: - name: logrotate-conf configMap: From 5475d709cd5c0adfa5f565b9852b2bd5b6be77f7 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:15:24 -0500 Subject: [PATCH 11/21] Update cronjob.yaml --- utilities/logrotate/cronjob.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/utilities/logrotate/cronjob.yaml b/utilities/logrotate/cronjob.yaml index 4fa5df9..59b38f7 100644 --- a/utilities/logrotate/cronjob.yaml +++ b/utilities/logrotate/cronjob.yaml @@ -1,4 +1,4 @@ -apiVersion: batch/v1beta1 +apiVersion: batch/v1 kind: CronJob metadata: name: app-logrotate @@ -15,10 +15,11 @@ spec: volumeMounts: - name: logrotate-conf mountPath: /etc/logrotate.conf - - name: app-logs + - name: logs mountPath: /var/log/ nodeSelector: collectl: "true" + restartPolicy: Never volumes: - name: logrotate-conf configMap: @@ -26,6 +27,6 @@ spec: - name: logs hostPath: path: /var/log - type: Directory + type: Directory serviceAccount: openshift4-debug serviceAccountName: openshift4-debug From 3a8599b19a79599882426c8e80e813ee7a5bfe05 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:16:58 -0500 Subject: [PATCH 12/21] Update configmap.yaml --- utilities/logrotate/configmap.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/utilities/logrotate/configmap.yaml b/utilities/logrotate/configmap.yaml index b845f56..1f57978 100644 --- a/utilities/logrotate/configmap.yaml +++ b/utilities/logrotate/configmap.yaml @@ -1,4 +1,3 @@ - apiVersion: v1 kind: ConfigMap metadata: From 36432089b88745708fd4c17a638f6d04e9567f35 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:17:26 -0500 Subject: [PATCH 13/21] Update cronjob.yaml From 3f8a44b01f593fde280667200fe8bdeb50c64103 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:23:43 -0500 Subject: [PATCH 14/21] Update cronjob.yaml --- utilities/logrotate/cronjob.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/logrotate/cronjob.yaml b/utilities/logrotate/cronjob.yaml index 59b38f7..ce4b675 100644 --- a/utilities/logrotate/cronjob.yaml +++ b/utilities/logrotate/cronjob.yaml @@ -3,7 +3,7 @@ kind: CronJob metadata: name: app-logrotate spec: - schedule: "* * 7 * *" + schedule: "* * */2 * *" concurrencyPolicy: Replace jobTemplate: spec: From 8d7d2148c32cfd48226f29a1135ed31cebc589c4 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:40:45 -0500 Subject: [PATCH 15/21] Update cronjob.yaml --- utilities/logrotate/cronjob.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/utilities/logrotate/cronjob.yaml b/utilities/logrotate/cronjob.yaml index ce4b675..3142f20 100644 --- a/utilities/logrotate/cronjob.yaml +++ b/utilities/logrotate/cronjob.yaml @@ -14,6 +14,7 @@ spec: image: image-registry.openshift-image-registry.svc:5000/openshift4-debug/logrotate volumeMounts: - name: logrotate-conf + subpath: logrotate.conf mountPath: /etc/logrotate.conf - name: logs mountPath: /var/log/ @@ -26,7 +27,7 @@ spec: name: logrotate-config - name: logs hostPath: - path: /var/log - type: Directory + path: /var/log + type: Directory serviceAccount: openshift4-debug serviceAccountName: openshift4-debug From 0f40884cf6b25084f9bd22f5dbdb259f1ea300e3 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:45:54 -0500 Subject: [PATCH 16/21] Update cronjob.yaml --- utilities/logrotate/cronjob.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utilities/logrotate/cronjob.yaml b/utilities/logrotate/cronjob.yaml index 3142f20..2b146d1 100644 --- a/utilities/logrotate/cronjob.yaml +++ b/utilities/logrotate/cronjob.yaml @@ -29,5 +29,5 @@ spec: hostPath: path: /var/log type: Directory - serviceAccount: openshift4-debug - serviceAccountName: openshift4-debug + serviceAccount: openshift4-debug + serviceAccountName: openshift4-debug From 624d1df5f2da524cc577cdde42c4a9106441beb1 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:50:07 -0500 Subject: [PATCH 17/21] Update cronjob.yaml --- utilities/logrotate/cronjob.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/logrotate/cronjob.yaml b/utilities/logrotate/cronjob.yaml index 2b146d1..ea3b953 100644 --- a/utilities/logrotate/cronjob.yaml +++ b/utilities/logrotate/cronjob.yaml @@ -14,7 +14,7 @@ spec: image: image-registry.openshift-image-registry.svc:5000/openshift4-debug/logrotate volumeMounts: - name: logrotate-conf - subpath: logrotate.conf + subPath: logrotate.conf mountPath: /etc/logrotate.conf - name: logs mountPath: /var/log/ From 8f62202f45cf721b07834d2cc101bcede0c3211a Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:54:08 -0500 Subject: [PATCH 18/21] Update cronjob.yaml --- utilities/logrotate/cronjob.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/utilities/logrotate/cronjob.yaml b/utilities/logrotate/cronjob.yaml index ea3b953..68cc6ec 100644 --- a/utilities/logrotate/cronjob.yaml +++ b/utilities/logrotate/cronjob.yaml @@ -18,6 +18,9 @@ spec: mountPath: /etc/logrotate.conf - name: logs mountPath: /var/log/ + securityContext: + runAsUser: 0 + privileged: true nodeSelector: collectl: "true" restartPolicy: Never From 11aa08091a0742c75f72b673e67f7e6d19337126 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:57:39 -0500 Subject: [PATCH 19/21] Update configmap.yaml --- utilities/logrotate/configmap.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/logrotate/configmap.yaml b/utilities/logrotate/configmap.yaml index 1f57978..93f0269 100644 --- a/utilities/logrotate/configmap.yaml +++ b/utilities/logrotate/configmap.yaml @@ -5,7 +5,7 @@ metadata: namespace: openshift4-debug data: logrotate.conf: |- - /var/log/collectl/*raw.gz { + /var/log/collectl/.*raw.gz { daily missingok rotate 14 From 2f73dbff34ed15fc0c966d285dae465897093564 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 16:59:26 -0500 Subject: [PATCH 20/21] Update configmap.yaml --- utilities/logrotate/configmap.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/logrotate/configmap.yaml b/utilities/logrotate/configmap.yaml index 93f0269..1f57978 100644 --- a/utilities/logrotate/configmap.yaml +++ b/utilities/logrotate/configmap.yaml @@ -5,7 +5,7 @@ metadata: namespace: openshift4-debug data: logrotate.conf: |- - /var/log/collectl/.*raw.gz { + /var/log/collectl/*raw.gz { daily missingok rotate 14 From df7842ee63ac647990bd0c5b4a06d73ed415fe46 Mon Sep 17 00:00:00 2001 From: Ryan Howe Date: Wed, 21 Dec 2022 17:02:26 -0500 Subject: [PATCH 21/21] Update configmap.yaml --- utilities/logrotate/configmap.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/utilities/logrotate/configmap.yaml b/utilities/logrotate/configmap.yaml index 1f57978..e757057 100644 --- a/utilities/logrotate/configmap.yaml +++ b/utilities/logrotate/configmap.yaml @@ -9,4 +9,5 @@ data: daily missingok rotate 14 + maxage 14 }