Gitlab Operator doesn't have ability to override deployments rolling update timeout

Summary

In case where unicorn or sidekiq deployments do not have time to finish pods recreating gitlab operator starts the whole circle anew: shared-creds job, migrations, deployments update because the operator has deployments waiting timeout 300 seconds. I propose to add ability to define unicorn and sidekiq deployments strategy. I suppose it will be useful not only in case with the operators timeout.

Steps to reproduce

  1. Configure unicorn and sidekiq like this:
  sidekiq:
    enabled: true
    resources:
      requests:
        cpu: 2
        memory: 7.5Gi
      limits:
        cpu: 2
        memory: 7.5Gi
      maxReplicas: 4
      minReplicas: 4
      concurrency: 25

  unicorn:
    enabled: true
    resources:
      requests:
        cpu: 8
        memory: 16Gi
      limits:
        cpu: 10
        memory: 20Gi
    minReplicas: 3
    maxReplicas: 3
    replicaCount: 3
  1. Try to apply new version of helm chart with helm upgrade with with the operator included
  2. Operator will start whole circle: shared-creds, migrations and deployments rolling updates
  3. If unicorn or sidekiq deployments won't have time to finish rolling update then the operator will start whole circle wnew

Configuration used

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

(Paste sanitized configuration here)

Current behavior

Operator waits for deployments finish rolling update or has ability to define the rolling update timeout and sent in log a message to define the timeout

Expected behavior

If unicorn or sidekiq deployments won't have time to finish rolling update then the operator will start whole circle wnew

Versions

  • Chart: 3.0.4
  • Platform:
    • Self-hosted: self configured kubernetes cluster
  • Kubernetes: (kubectl version)
    • Client: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"darwin/amd64"}
    • Server: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.3", GitCommit:"5e53fd6bc17c0dec8434817e69b04a25d8ae0ff0", GitTreeState:"clean", BuildDate:"2019-06-06T01:36:19Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
  • Helm: (helm version)
    • Client: &version.Version{SemVer:"v2.16.3", GitCommit:"1ee0254c86d4ed6887327dabed7aa7da29d7eb0d", GitTreeState:"clean"}
    • Server: &version.Version{SemVer:"v2.16.3", GitCommit:"1ee0254c86d4ed6887327dabed7aa7da29d7eb0d", GitTreeState:"clean"}

Relevant logs

Edited by 🤖 GitLab Bot 🤖