diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctacli.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctacli.sh index 0bcf2fa849427eb87030008eaa59a2262b816378..12089d411afdb0e6fc5aec97d3562f44a989d62a 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctacli.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctacli.sh @@ -1,5 +1,7 @@ #!/bin/bash +/opt/run/bin/init_pod.sh + yum-config-manager --enable cta-artifacts yum-config-manager --enable ceph diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh index 7158391c23a8c5a9bf854946f7ccd927f77d4f6c..7b8f078378351a1e4b20af197d874ba3a6a90a07 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctaeos-mgm.sh @@ -1,5 +1,7 @@ #!/bin/sh +/opt/run/bin/init_pod.sh + yum-config-manager --enable cta-artifacts yum-config-manager --enable eos-citrine-commit yum-config-manager --enable eos-citrine-depend @@ -8,9 +10,6 @@ yum-config-manager --enable eos-citrine # Install missing RPMs yum -y install eos-client eos-server xrootd-client xrootd-debuginfo xrootd-server cta-cli cta-debuginfo -# fix reverse DNS for EOS -/opt/run/bin/init_pod.sh - # copy needed template configuration files (nice to get all lines for logs) yes | cp -r /opt/ci/ctaeos/etc / diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctafrontend.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctafrontend.sh index f6defbcb9c5306eded2d0944d04716b182765eac..9193b44c1c6cf5aa21561eb58652b62334d8d84d 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctafrontend.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/ctafrontend.sh @@ -1,5 +1,7 @@ #!/bin/sh +/opt/run/bin/init_pod.sh + yum-config-manager --enable cta-artifacts yum-config-manager --enable ceph diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init.sh index 62cf79b357f1c42b8549eb0ad19ec2d5b30ea1c6..08c7b62f8bfc1390c19d80a0907c1fc8e8e63e2e 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init.sh @@ -1,5 +1,7 @@ #!/bin/sh +/opt/run/bin/init_pod.sh + # enable cta repository from previously built artifacts yum-config-manager --enable cta-artifacts yum-config-manager --enable ceph diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init_pod.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init_pod.sh index a42de022f7fd55188c843a34fb9e1ff095784c3a..418e26abc2788f3efdb9d864ea6d6d6c3dcea264 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init_pod.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/init_pod.sh @@ -1,5 +1,23 @@ #!/bin/bash +LOGMOUNT=/mnt/logs + +PV_PATH="" + +if [ "-${MY_CONTAINER}-" != "--" ]; then + PV_PATH="${LOGMOUNT}/${MY_NAME}/${MY_CONTAINER}" +else + PV_PATH="${LOGMOUNT}/${MY_NAME}" +fi +mkdir -p ${PV_PATH} + +echo "Copying initial /var/log content to ${PV_PATH}" +cd /var/log +tar -c . | tar -C ${PV_PATH} -xv + +echo "Mounting logs volume ${PV_PATH} in /var/log" +mount --bind ${PV_PATH} /var/log + echo -n "Fixing reverse DNS for $(hostname): " sed -i -c "s/^\($(hostname -i)\)\s\+.*$/\1 $(hostname -s).$(grep search /etc/resolv.conf | cut -d\ -f2) $(hostname -s)/" /etc/hosts echo "DONE" diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/kdc.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/kdc.sh index 69710f983eececab4852c0d6ccbe7c761b0fba71..a55dc2f17249239259034c4e5d6f76c7b142df27 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/kdc.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/kdc.sh @@ -1,5 +1,7 @@ #!/bin/bash +/opt/run/bin/init_pod.sh + # Install missing RPMs (kdc) yum -y install heimdal-server heimdal-workstation diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/rmcd.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/rmcd.sh index fd2a78d7fd35b65847f3a010aa16d54ed539aecb..e3e9f607b50743afbbeac19a18ebcb9c0f11e316 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/rmcd.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/rmcd.sh @@ -1,5 +1,7 @@ #!/bin/sh +/opt/run/bin/init_pod.sh + yum-config-manager --enable cta-artifacts yum-config-manager --enable ceph yum-config-manager --enable castor @@ -7,8 +9,6 @@ yum-config-manager --enable castor # Install missing RPMs yum -y install mt-st mtx lsscsi sg3_utils cta-taped cta-debuginfo castor-rmc-server -/opt/run/bin/init_pod.sh - # source library configuration file echo "Using this configuration for library:" /opt/run/bin/init_library.sh diff --git a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/taped.sh b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/taped.sh index 5424275d295cd6857bbaccf9fddccad21a37be28..49769a7f7e64ad2d1e9ec827a36b5c2842a2fda9 100755 --- a/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/taped.sh +++ b/continuousintegration/docker/ctafrontend/cc7/opt/run/bin/taped.sh @@ -1,5 +1,7 @@ #!/bin/sh +/opt/run/bin/init_pod.sh + yum-config-manager --enable cta-artifacts yum-config-manager --enable ceph yum-config-manager --enable castor @@ -7,8 +9,6 @@ yum-config-manager --enable castor # Install missing RPMs yum -y install mt-st mtx lsscsi sg3_utils cta-taped cta-debuginfo castor-rmc-server ceph-common -/opt/run/bin/init_pod.sh - echo "Using this configuration for library:" /opt/run/bin/init_library.sh cat /tmp/library-rc.sh diff --git a/continuousintegration/orchestration/create_instance.sh b/continuousintegration/orchestration/create_instance.sh index a3f640210e7815d64a272bebea798dc5c8fd5964..aeb52817a159617f5ba2a2ae74dba56ed8c5b8e3 100755 --- a/continuousintegration/orchestration/create_instance.sh +++ b/continuousintegration/orchestration/create_instance.sh @@ -119,6 +119,9 @@ kubectl --namespace=${instance} create -f /opt/kubernetes/CTA/library/config/lib echo "Got library: ${LIBRARY_DEVICE}" +echo -n "Requesting an unused log volume" +kubectl create -f ./pvc_logs.yaml --namespace=${instance} + echo "Creating services in instance" for service_file in *svc\.yaml; do diff --git a/continuousintegration/orchestration/delete_instance.sh b/continuousintegration/orchestration/delete_instance.sh index ed6ab8225d22f520516777397958addad86924de..dfb6d62a7fc63d3a49b683f0e27842667b8d58ee 100755 --- a/continuousintegration/orchestration/delete_instance.sh +++ b/continuousintegration/orchestration/delete_instance.sh @@ -37,6 +37,7 @@ echo "Collecting stdout logs of pods to ${tmpdir}" for podcontainer in "init -c ctainit" "ctacli -c ctacli" "ctaeos -c mgm" "ctafrontend -c ctafrontend" "kdc -c kdc" "tpsrv -c taped" "tpsrv -c rmcd"; do kubectl --namespace ${instance} logs ${podcontainer} > ${tmpdir}/$(echo ${podcontainer} | sed -e 's/ -c /-/').log done +kubectl --namespace ${instance} exec ctacli -- tar -C /mnt/logs -zcf - . > ${tmpdir}/varlog.tgz if [ -z "${CI_PIPELINE_ID}" ]; then # we are in the context of a CI run => save artifacts in the directory structure of the build @@ -55,6 +56,8 @@ done echo OK +# this now useless as dummy NFS PV were replaced by local volumes +# those are recycled automatically ./recycle_librarydevice_PV.sh echo "Status of library pool after test:" diff --git a/continuousintegration/orchestration/pod-ctacli.yaml b/continuousintegration/orchestration/pod-ctacli.yaml index 3a51751a313665d2bf44c5035c050ba502b0f40e..b0d54509fdfd0b9435bfbaea8140ef8c221688c5 100644 --- a/continuousintegration/orchestration/pod-ctacli.yaml +++ b/continuousintegration/orchestration/pod-ctacli.yaml @@ -28,6 +28,8 @@ spec: volumeMounts: - mountPath: /shared name: shared + - mountPath: /mnt/logs + name: logstorage securityContext: privileged: true @@ -35,4 +37,6 @@ spec: - name: shared hostPath: path: /opt/cta - + - name: logstorage + persistentVolumeClaim: + claimName: claimlogs diff --git a/continuousintegration/orchestration/pod-ctaeos.yaml b/continuousintegration/orchestration/pod-ctaeos.yaml index a57ce017b0c4755ecd737684b2dfa912d5883b4f..3744bdebf3aa88b82777297466ebb68fbefb2293 100644 --- a/continuousintegration/orchestration/pod-ctaeos.yaml +++ b/continuousintegration/orchestration/pod-ctaeos.yaml @@ -30,6 +30,8 @@ spec: volumeMounts: - mountPath: /shared name: shared + - mountPath: /mnt/logs + name: logstorage securityContext: privileged: true @@ -37,3 +39,6 @@ spec: - name: shared hostPath: path: /opt/cta + - name: logstorage + persistentVolumeClaim: + claimName: claimlogs diff --git a/continuousintegration/orchestration/pod-ctafrontend.yaml b/continuousintegration/orchestration/pod-ctafrontend.yaml index 616369d6bbab6aea131eeac0d5f2c08c35973894..aedfcd3576616f2352ac097f58f11952699982b2 100644 --- a/continuousintegration/orchestration/pod-ctafrontend.yaml +++ b/continuousintegration/orchestration/pod-ctafrontend.yaml @@ -26,8 +26,6 @@ spec: command: ['/opt/run/bin/ctafrontend.sh'] args: ["none"] volumeMounts: - - mountPath: /dev/log - name: dev-log - mountPath: /shared name: shared - mountPath: /etc/config/objectstore @@ -36,6 +34,8 @@ spec: name: mydatabase - mountPath: /etc/config/library name: mylibrary + - mountPath: /mnt/logs + name: logstorage securityContext: # RW access needed to volumes privileged: true @@ -44,9 +44,6 @@ spec: name: ctafrontend protocol: TCP volumes: - - name: dev-log - hostPath: - path: /dev/log - name: shared hostPath: path: /opt/cta @@ -59,3 +56,6 @@ spec: - name: mylibrary configMap: name: library-config + - name: logstorage + persistentVolumeClaim: + claimName: claimlogs diff --git a/continuousintegration/orchestration/pod-init.yaml b/continuousintegration/orchestration/pod-init.yaml index 6229a341a6b5a7c0468abb7ae9cb44c7196d1f45..36ff9ed56dbd73499ab2039f7cecc3f1a11ea1c3 100644 --- a/continuousintegration/orchestration/pod-init.yaml +++ b/continuousintegration/orchestration/pod-init.yaml @@ -42,6 +42,8 @@ spec: name: mydatabase - mountPath: /etc/config/library name: mylibrary + - mountPath: /mnt/logs + name: logstorage securityContext: privileged: true @@ -58,3 +60,6 @@ spec: - name: mylibrary configMap: name: library-config + - name: logstorage + persistentVolumeClaim: + claimName: claimlogs diff --git a/continuousintegration/orchestration/pod-kdc.yaml b/continuousintegration/orchestration/pod-kdc.yaml index b9b0d5ab9fd6a917312e88d7a6dc4397cd8e5261..079e72c492752b2f4d76a1c7fd2b49bd457408ae 100644 --- a/continuousintegration/orchestration/pod-kdc.yaml +++ b/continuousintegration/orchestration/pod-kdc.yaml @@ -28,6 +28,8 @@ spec: volumeMounts: - mountPath: /shared name: shared + - mountPath: /mnt/logs + name: logstorage securityContext: privileged: true @@ -35,3 +37,6 @@ spec: - name: shared hostPath: path: /opt/cta + - name: logstorage + persistentVolumeClaim: + claimName: claimlogs diff --git a/continuousintegration/orchestration/pod-tpsrv.yaml b/continuousintegration/orchestration/pod-tpsrv.yaml index bbd3018e12bc6533161743c1fac28b1ed3b485a1..691f69d5ab4cf70b478240b0bde405fa87088520 100644 --- a/continuousintegration/orchestration/pod-tpsrv.yaml +++ b/continuousintegration/orchestration/pod-tpsrv.yaml @@ -11,6 +11,12 @@ spec: image: gitlab-registry.cern.ch/cta/ctageneric:78673git921a9300 stdin: true env: + - name: MY_CONTAINER + value: "rmcd" + - name: MY_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name - name: MY_NAMESPACE valueFrom: fieldRef: @@ -26,6 +32,8 @@ spec: name: shared - mountPath: /etc/config/library name: mylibrary + - mountPath: /mnt/logs + name: logstorage securityContext: privileged: true @@ -33,6 +41,8 @@ spec: image: gitlab-registry.cern.ch/cta/ctageneric:78673git921a9300 stdin: true env: + - name: MY_CONTAINER + value: "taped" - name: MY_NAME valueFrom: fieldRef: @@ -58,6 +68,8 @@ spec: name: mydatabase - mountPath: /etc/config/library name: mylibrary + - mountPath: /mnt/logs + name: logstorage securityContext: privileged: true @@ -74,3 +86,6 @@ spec: - name: mylibrary configMap: name: library-config + - name: logstorage + persistentVolumeClaim: + claimName: claimlogs diff --git a/continuousintegration/orchestration/pvc_logs.yaml b/continuousintegration/orchestration/pvc_logs.yaml new file mode 100644 index 0000000000000000000000000000000000000000..bdad7aa6dfeddd81f9919afebc0771c05cbf3504 --- /dev/null +++ b/continuousintegration/orchestration/pvc_logs.yaml @@ -0,0 +1,13 @@ +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: claimlogs +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 2Gi + selector: + matchLabels: + type: logs