diff --git a/Dockerfile b/Dockerfile index 6b813d0f2c95bf31f54e0cd1f4e5c14d006d30c6..0ad2efa49bf23ff9dfdda81b8d2ec8e0563fa76d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ -ARG GITLAB_VERSION=v13.12.2-ubi8 +ARG GITLAB_VERSION=v14.0.0-ubi8 ARG BASE_REGISTRY=nexus-docker-secure.levelup-nexus.svc.cluster.local:18082 ARG BASE_IMAGE=gitlab/gitlab/gitlab-rails -ARG BASE_TAG=13.12.2 +ARG BASE_TAG=14.0.0 ARG RAILS_IMAGE=${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG} diff --git a/build-scripts/build.sh b/build-scripts/build.sh index 25b4a8196f52b23b11b41971e19ef97b45ad459e..8f54f27d069686677c63228e2e45b291d7c2b940 100755 --- a/build-scripts/build.sh +++ b/build-scripts/build.sh @@ -4,7 +4,7 @@ set -euxo pipefail -TAG=${1:-13.12.2} +TAG=${1:-14.0.0} REPOSITORY=${2:-} DOCKER_OPTS=${DOCKER_OPTS:-""} diff --git a/hardening_manifest.yaml b/hardening_manifest.yaml index 174e96712ead05f52156b6184c4bfce7aa4f0858..aa7a40a3888b1ab6d8bee186489c5e45f0373324 100644 --- a/hardening_manifest.yaml +++ b/hardening_manifest.yaml @@ -5,12 +5,12 @@ name: "gitlab/gitlab/gitlab-task-runner" # The most specific version should be the first tag and will be shown # on ironbank.dsop.io tags: - - "13.12.2" + - "14.0.0" - "latest" # Build args passed to Dockerfile ARGs args: BASE_IMAGE: "gitlab/gitlab/gitlab-rails" - BASE_TAG: "13.12.2" + BASE_TAG: "14.0.0" # Docker image labels labels: org.opencontainers.image.title: "Gitlab Task Runner" @@ -22,7 +22,7 @@ labels: org.opencontainers.image.url: "https://about.gitlab.com/" ## Name of the distributing entity, organization or individual org.opencontainers.image.vendor: "Gitlab" - org.opencontainers.image.version: "13.12.2" + org.opencontainers.image.version: "14.0.0" ## Keywords to help with search (ex. "cicd,gitops,golang") mil.dso.ironbank.image.keywords: "gitlab, git, gitops" ## This value can be "opensource" or "commercial" @@ -43,13 +43,13 @@ maintainers: username: "alfontaine" email: "alan.fontaine@centauricorp.com" resources: - - url: "https://gitlab-ubi.s3.amazonaws.com/ubi8-build-dependencies-v13.12.2-ubi8/gitlab-task-runner-ee.tar.gz" + - url: "https://gitlab-ubi.s3.amazonaws.com/ubi8-build-dependencies-v14.0.0-ubi8/gitlab-task-runner-ee.tar.gz" filename: "gitlab-task-runner-ee.tar.gz" validation: type: "sha256" - value: "fcc8fde5e263dc8d53cbd5fbd09db0b01e2ec6b1174730d5cde2f689e620a2f6" - - url: "https://gitlab-ubi.s3.amazonaws.com/ubi8-build-dependencies-v13.12.2-ubi8/gitlab-python.tar.gz" + value: "bf8db92af98abe995f4411a73acede96a01da96b5fee5915173a05fe6605d15d" + - url: "https://gitlab-ubi.s3.amazonaws.com/ubi8-build-dependencies-v14.0.0-ubi8/gitlab-python.tar.gz" filename: "gitlab-python.tar.gz" validation: type: "sha256" - value: "504cc701f686141196608dbd60aa23150d1e8c1b14564e6bcd6b5bdbb1ece21d" + value: "48068e0e17bb7f3083861f050cad709115360c072e89cce31566def73760c723" diff --git a/scripts/bin/backup-utility b/scripts/bin/backup-utility index bc4f5e985b200215dc6920049a1189742cf6e9e1..818604bdd1b55a973144f9176fafc87a45f46038 100755 --- a/scripts/bin/backup-utility +++ b/scripts/bin/backup-utility @@ -109,7 +109,7 @@ function get_existing_backups(){ # Example: TIMESTAMP_YYYY_MM_DD_VERSION_gitlab_backup.tar case $BACKUP_BACKEND in s3) - existing_backups=($(s3cmd ls s3://$BACKUP_BUCKET_NAME --rinclude '^\d{10}_\d{4}_\d{2}_\d{2}_.+_gitlab_backup.tar$' | awk '{print $4}' | LC_ALL=C sort)) + existing_backups=($(s3cmd ${S3_CMD_BACKUP_OPTION} ls s3://$BACKUP_BUCKET_NAME --rinclude '^\d{10}_\d{4}_\d{2}_\d{2}_.+_gitlab_backup.tar$' | awk '{print $4}' | LC_ALL=C sort)) ;; gcs) # Note: gsutil doesn't support regex, so we need to try to match the prefix as best we can with wildcards diff --git a/scripts/lib/object_storage_backup.rb b/scripts/lib/object_storage_backup.rb index 310393f9f3045775d870ae5db6e0323485cc1a43..ab2c42e0161803700fc08711e324bd40525f1bac 100644 --- a/scripts/lib/object_storage_backup.rb +++ b/scripts/lib/object_storage_backup.rb @@ -41,7 +41,7 @@ class ObjectStorageBackup FileUtils.mkdir_p("/srv/gitlab/tmp/#{@name}", mode: 0700) output, status = run_cmd(cmd) - failure_abort(output) unless status.zero? + failure_abort('creation of working directory', output) unless status.zero? # check the destiation for contents. Bucket may have been empty. if Dir.empty? "/srv/gitlab/tmp/#{@name}" @@ -54,7 +54,7 @@ class ObjectStorageBackup cmd = %W(tar -cf #{@local_tar_path} -I #{gzip_cmd} -C /srv/gitlab/tmp/#{@name} . ) output, status = run_cmd(cmd) - failure_abort(output) unless status.zero? + failure_abort('archive', output) unless status.zero? puts "done".green end @@ -68,9 +68,9 @@ class ObjectStorageBackup puts "done".green end - def failure_abort(error_message) + def failure_abort(action, error_message) puts "[Error] #{error_message}".red - abort "Restore #{@name} failed" + abort "#{action} of #{@name} failed" end def upload_to_object_storage(source_path) @@ -83,7 +83,7 @@ class ObjectStorageBackup output, status = run_cmd(cmd) - failure_abort(output) unless status.zero? + failure_abort('upload', output) unless status.zero? end def backup_existing @@ -97,7 +97,7 @@ class ObjectStorageBackup output, status = run_cmd(cmd) - failure_abort(output) unless status.zero? + failure_abort('sync existing', output) unless status.zero? end def cleanup @@ -107,7 +107,7 @@ class ObjectStorageBackup # Check if the bucket has any objects list_objects_cmd = %W(gsutil ls gs://#{@remote_bucket_name}/) output, status = run_cmd(list_objects_cmd) - failure_abort(output) unless status.zero? + failure_abort('GCS ls', output) unless status.zero? # There are no objects in the bucket so skip the cleanup if output.length == 0 @@ -117,20 +117,20 @@ class ObjectStorageBackup cmd = %W(gsutil rm -f -r gs://#{@remote_bucket_name}/*) end output, status = run_cmd(cmd) - failure_abort(output) unless status.zero? + failure_abort('bucket cleanup', output) unless status.zero? end def restore_from_backup extracted_tar_path = File.join(File.dirname(@local_tar_path), "/srv/gitlab/tmp/#{@name}") FileUtils.mkdir_p(extracted_tar_path, mode: 0700) - failure_abort("#{@local_tar_path} not found") unless File.exist?(@local_tar_path) + failure_abort('restore', "#{@local_tar_path} not found") unless File.exist?(@local_tar_path) untar_cmd = %W(tar -xf #{@local_tar_path} -C #{extracted_tar_path}) output, status = run_cmd(untar_cmd) - failure_abort(output) unless status.zero? + failure_abort('un-archive', output) unless status.zero? Dir.glob("#{extracted_tar_path}/*").each do |file| upload_to_object_storage(file)