Skip to content

Disabling Minio and LFS result in wrong backup configuration

Summary

Disabled Minio deployment and configured GCS configuration secrets as a replacement object storage

Steps to reproduce

Deploy secrets and chart

Configuration used

(Please provide a sanitized version of the configuration used wrapped in a code block (```yaml))

helmfile:

repositories:
  - name: gitlab
    url: https://charts.gitlab.io/
releases:
  - name: gitlab
    namespace: gitlab
    chart: gitlab/gitlab
    version: 1.1.3
    values:
      - global:
          hosts:
            domain: ...
          psql:
            host: ...
            username: gitlab
            database: gitlab
            password:
              secret: gitlab-postgresql
              key: password
          ingress:
            configureCertmanager: false
            annotations:
              kubernetes.io/ingress.class: "contour-public"
          minio:
            enabled: false
          appConfig:
            lfs:
              enabled: false
            registry:
              bucket: gitlab-registry
            artifacts:
              bucket: gitlab-artifacts-storage
              connection:
                secret: object-storage
                key: connection
            uploads:
              bucket: gitlab-uploads-storage
              connection:
                secret: object-storage
                key: connection
            backups:
              bucket: gitlab-backup-storage
              tmpBucket: gitlab-tmp-storage




      - unicorn:
          tlsSecret: it-systems-tls
      - postgresql:
          install: false

      - certmanager:
          install: false
      - gitlab:
          migrations:
            image:
              repository: registry.gitlab.com/gitlab-org/build/cng/gitlab-rails-ce
          sidekiq:
            image:
              repository: registry.gitlab.com/gitlab-org/build/cng/gitlab-sidekiq-ce
          unicorn:
            image:
              repository: registry.gitlab.com/gitlab-org/build/cng/gitlab-unicorn-ce
            workhorse:
              image: registry.gitlab.com/gitlab-org/build/cng/gitlab-workhorse-ce
          task-runner:
            image:
              repository: registry.gitlab.com/gitlab-org/build/cng/gitlab-task-runner-ce
            backups:
              objectStorage:
                config:
                  secret: s3cmd-config
                  key: config

      - gitlab-runner:
          install: false

      - prometheus:
          install: false

      - registry:
          storage:
            secret: registry-storage
            key: config
      - nginx-ingress:
          enabled: false

Current behavior

Chart is deployed correctly

Expected behavior

Unicorn and Sidekiq pods are unable to start because the init container dependencies fails with the following error: Settingslogic::MissingSetting: Missing setting 'connection' in 'backup' section in /srv/gitlab/config/gitlab.yml

Versions

  • Chart: 1.1.3
  • Platform:
    • Cloud: GKE
  • Kubernetes: (kubectl version)
    • Client: v1.12.0
    • Server: v1.10.7-gke.6
  • Helm: (helm version)
    • Client: v2.11.0
    • Server: v2.11.0

Relevant logs

Unicorn dependencies init container logs:

+ /scripts/set-config /var/opt/gitlab/templates /var/opt/gitlab/config/gitlab/
Begin parsing .erb files from /var/opt/gitlab/templates
Writing /var/opt/gitlab/config/gitlab/database.yml
Writing /var/opt/gitlab/config/gitlab/resque.yml
Writing /var/opt/gitlab/config/gitlab/gitlab.yml
Copying other config files found in /var/opt/gitlab/templates
Copying unicorn.rb into /var/opt/gitlab/config/gitlab/
Copying smtp_settings.rb into /var/opt/gitlab/config/gitlab/
+ exec /scripts/wait-for-deps
Checking database connection and schema version
WARNING: This version of GitLab depends on gitlab-shell 8.3.3, but you're running Unknown. Please update gitlab-shell.
rake aborted!
Settingslogic::MissingSetting: Missing setting 'connection' in 'backup' section in /srv/gitlab/config/gitlab.yml
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/settingslogic-2.0.9/lib/settingslogic.rb:189:in `missing_key'
(eval):3:in `connection'
/srv/gitlab/config/initializers/direct_upload_support.rb:9:in `verify!'
/srv/gitlab/config/initializers/direct_upload_support.rb:17:in `block (2 levels) in <top (required)>'
/srv/gitlab/config/initializers/direct_upload_support.rb:16:in `each'
/srv/gitlab/config/initializers/direct_upload_support.rb:16:in `block in <top (required)>'
/srv/gitlab/config/initializers/direct_upload_support.rb:15:in `tap'
/srv/gitlab/config/initializers/direct_upload_support.rb:15:in `<top (required)>'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:268:in `load'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:268:in `block in load'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:240:in `load_dependency'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:268:in `load'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/engine.rb:652:in `block in load_config_initializer'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/notifications.rb:166:in `instrument'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/engine.rb:651:in `load_config_initializer'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/engine.rb:616:in `block (2 levels) in <class:Engine>'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/engine.rb:615:in `each'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/engine.rb:615:in `block in <class:Engine>'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/initializable.rb:30:in `instance_exec'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/initializable.rb:30:in `run'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/initializable.rb:55:in `block in run_initializers'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/initializable.rb:44:in `each'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/initializable.rb:44:in `tsort_each_child'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/initializable.rb:54:in `run_initializers'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/application.rb:352:in `initialize!'
/srv/gitlab/config/environment.rb:11:in `<top (required)>'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:274:in `require'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:274:in `block in require'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:240:in `load_dependency'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:274:in `require'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/application.rb:328:in `require_environment!'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/application.rb:457:in `block in run_tasks_blocks'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'
/srv/gitlab/bin/bundle:3:in `load'
/srv/gitlab/bin/bundle:3:in `<main>'
Tasks: TOP => db:version => environment
(See full trace by running task with --trace)
Checking database connection and schema version
WARNING: This version of GitLab depends on gitlab-shell 8.3.3, but you're running Unknown. Please update gitlab-shell.
rake aborted!
Settingslogic::MissingSetting: Missing setting 'connection' in 'backup' section in /srv/gitlab/config/gitlab.yml
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/settingslogic-2.0.9/lib/settingslogic.rb:189:in `missing_key'
(eval):3:in `connection'
/srv/gitlab/config/initializers/direct_upload_support.rb:9:in `verify!'
/srv/gitlab/config/initializers/direct_upload_support.rb:17:in `block (2 levels) in <top (required)>'
/srv/gitlab/config/initializers/direct_upload_support.rb:16:in `each'
/srv/gitlab/config/initializers/direct_upload_support.rb:16:in `block in <top (required)>'
/srv/gitlab/config/initializers/direct_upload_support.rb:15:in `tap'
/srv/gitlab/config/initializers/direct_upload_support.rb:15:in `<top (required)>'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:268:in `load'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:268:in `block in load'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:240:in `load_dependency'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:268:in `load'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/engine.rb:652:in `block in load_config_initializer'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/notifications.rb:166:in `instrument'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/engine.rb:651:in `load_config_initializer'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/engine.rb:616:in `block (2 levels) in <class:Engine>'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/engine.rb:615:in `each'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/engine.rb:615:in `block in <class:Engine>'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/initializable.rb:30:in `instance_exec'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/initializable.rb:30:in `run'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/initializable.rb:55:in `block in run_initializers'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/initializable.rb:44:in `each'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/initializable.rb:44:in `tsort_each_child'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/initializable.rb:54:in `run_initializers'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/application.rb:352:in `initialize!'
/srv/gitlab/config/environment.rb:11:in `<top (required)>'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:274:in `require'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:274:in `block in require'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:240:in `load_dependency'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:274:in `require'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/application.rb:328:in `require_environment!'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/railties-4.2.10/lib/rails/application.rb:457:in `block in run_tasks_blocks'
/srv/gitlab/vendor/bundle/ruby/2.4.0/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'
/srv/gitlab/bin/bundle:3:in `load'
/srv/gitlab/bin/bundle:3:in `<main>'
Tasks: TOP => db:version => environment
(See full trace by running task with --trace)
Checking database connection and schema version
Edited by DJ Mountney