Cannot install Helm Chart, Problem accessing main database (gitlab). Confirm username, password, and permissions.
Summary
When I try to install GitLab with Helm (fresh install for me), the migration/webservice/sidekiq/gitlab-runner pods are crashing. In many of these, I can see logs that let thinking of psql connection issue but I tried multiple password, different declarations in values.yml and nothing work. I tried to connect with a custom pod that run postgresql:17 and manual connection is working.
What can I do to fix that?
Thanks in advance!
Steps to reproduce
kubectl apply -f gitlab/namespace.yml
kubectl apply -f gitlab/database.yml -f gitlab/s3.yml -f gitlab/secret.yml
helm repo add gitlab https://charts.gitlab.io/
helm repo update
helm upgrade --install -n gitlab --create-namespace gitlab gitlab/gitlab -f gitlab/values.yml
Configuration used
namespace.yml
apiVersion: v1
kind: Namespace
metadata:
name: gitlab
database.yml (I'm using CNPG database)
apiVersion: postgresql.cnpg.io/v1
kind: Database
metadata:
name: database-gitlab
namespace: cnpg-database
spec:
name: gitlab
owner: gitlab
cluster:
name: database-cluster
extensions:
- name: btree_gist
- name: pg_trgm
- name: plpgsql
- name: amcheck
ensure: present
s3.yml: (I'm using rook-ceph RGW)
apiVersion: ceph.rook.io/v1
kind: CephObjectStoreUser
metadata:
name: gitlab
namespace: rook-ceph
spec:
store: ceph-objectstore
clusterNamespace: rook-ceph
keys:
- accessKeyRef:
name: gitlab-bucket-credentials
key: s3-access-key
secretKeyRef:
name: gitlab-bucket-credentials
key: s3-secret-key
---
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: git-lfs
namespace: rook-ceph
spec:
bucketName: git-lfs
storageClassName: ceph-bucket
additionalConfig:
bucketOwner: "gitlab"
---
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: gitlab-artifacts
namespace: rook-ceph
spec:
bucketName: gitlab-artifacts
storageClassName: ceph-bucket
additionalConfig:
bucketOwner: "gitlab"
---
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: gitlab-uploads
namespace: rook-ceph
spec:
bucketName: gitlab-uploads
storageClassName: ceph-bucket
additionalConfig:
bucketOwner: "gitlab"
---
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: gitlab-packages
namespace: rook-ceph
spec:
bucketName: gitlab-packages
storageClassName: ceph-bucket
additionalConfig:
bucketOwner: "gitlab"
---
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: gitlab-mr-diffs
namespace: rook-ceph
spec:
bucketName: gitlab-mr-diffs
storageClassName: ceph-bucket
additionalConfig:
bucketOwner: "gitlab"
---
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: gitlab-terraform-state
namespace: rook-ceph
spec:
bucketName: gitlab-terraform-state
storageClassName: ceph-bucket
additionalConfig:
bucketOwner: "gitlab"
---
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: gitlab-ci-secure-files
namespace: rook-ceph
spec:
bucketName: gitlab-ci-secure-files
storageClassName: ceph-bucket
additionalConfig:
bucketOwner: "gitlab"
---
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: gitlab-dependency-proxy
namespace: rook-ceph
spec:
bucketName: gitlab-dependency-proxy
storageClassName: ceph-bucket
additionalConfig:
bucketOwner: "gitlab"
---
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: gitlab-backups
namespace: rook-ceph
spec:
bucketName: gitlab-backups
storageClassName: ceph-bucket
additionalConfig:
bucketOwner: "gitlab"
---
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: gitlab-tmp
namespace: rook-ceph
spec:
bucketName: gitlab-tmp
storageClassName: ceph-bucket
additionalConfig:
bucketOwner: "gitlab"
secret.yml: (these passwords are generated only for this issue but followed the same rules for characters)
apiVersion: v1
kind: Secret
metadata:
name: gitlab-bucket-credentials
namespace: rook-ceph
type: Opaque
stringData:
s3-access-key: "E1QJQ%6aBRylSoSnwn3xalODBF3U%u3KwTq6LW8a4!15N$7ZpM2fgaQhgrQhFhYL"
s3-secret-key: "H6gmGjGWchRs$nACY2tDau5nHLuam1kGPv&v8SA%vps4swEgNF1WLG9miZ3M6u3h"
---
apiVersion: v1
kind: Secret
metadata:
name: gitlab-credentials
namespace: gitlab
type: Opaque
stringData:
postgresql-password: ewp6uHqI5KitSqia5DAMptC8Faam9N8NIzW8DTmVAhefa335gj2qYi52VKj55i4U
redis-password: "MM3l9efRW2urXS^sl&gg5G2!3d&#EvmY0X9^NS*GyrB^pu0r#rxFSGq9uF%zHcP#"
gitaly-authtoken: "pGfrAp3WH9bM6umyCSozEU3SrgK0AapUPESGYr1hXy0i0xMe6T8s3TY1UjoMr4eB"
s3-access-key: "E1QJQ%6aBRylSoSnwn3xalODBF3U%u3KwTq6LW8a4!15N$7ZpM2fgaQhgrQhFhYL"
s3-secret-key: "H6gmGjGWchRs$nACY2tDau5nHLuam1kGPv&v8SA%vps4swEgNF1WLG9miZ3M6u3h"
s3-connection-block: |
provider: AWS
region: eu-west-1
aws_access_key_id: E1QJQ%6aBRylSoSnwn3xalODBF3U%u3KwTq6LW8a4!15N$7ZpM2fgaQhgrQhFhYL
aws_secret_access_key: H6gmGjGWchRs$nACY2tDau5nHLuam1kGPv&v8SA%vps4swEgNF1WLG9miZ3M6u3h
endpoint: "http://rook-ceph-rgw-ceph-objectstore.rook-ceph.svc.cluster.local"
oidc-block: |
name: "openid_connect"
label: "Authentik"
args:
name: "openid_connect"
scope: ["openid", "profile", "email"]
response_type: "code"
issuer: "https://auth.my.domain/application/o/gitlab/"
client_auth_method: "query"
discovery: true
uid_field: "preferred_username"
send_scope_to_token_endpoint: "true"
pkce: true
client_options:
identifier: "pm1hb1ALlkCZKgRVXmsSDKo5cNcb1WiUXI7rpl0T"
secret: "Z5JAdi5NxTCMhQXaPBYKILXP1Tp36w5azFGOLgPpPQ5kz7fMkev5wsZs3ZPgM3Ilf4YqEcAnzpiTCgU4tLq3TtJBKAlopYpWPmvx9vBL7awufMiFI8lYz3u2ENekcI13"
redirect_uri: "https://git.my.domain/users/auth/openid_connect/callback"
shell_auth_token: "vALol0Vn2l73YZuzxUIn4dGUGbVdbx4UsEvgseAidAqK5aHZ61MO9OKFlarCpOvA"
ssh_host_rsa_key: |
-----BEGIN OPENSSH PRIVATE KEY-----
<self generated private key>
-----END OPENSSH PRIVATE KEY-----
ssh_host_rsa_key.pub: |
ssh-rsa <rsapublickey> git.my.domain
ssh_host_ed25519_key: |
-----BEGIN OPENSSH PRIVATE KEY-----
<self generated private key>
-----END OPENSSH PRIVATE KEY-----
ssh_host_ed25519_key.pub: |
ssh-ed25519 <ed25519publickey> git.my.domain
ssh_host_ecdsa_key: |
-----BEGIN OPENSSH PRIVATE KEY-----
<self generated private key>
-----END OPENSSH PRIVATE KEY-----
ssh_host_ecdsa_key.pub: |
ecdsa-sha2-nistp521 <ecdsapublickey> git.my.domain
registry-auth.key: |
-----BEGIN PRIVATE KEY-----
<self generated private key>
-----END PRIVATE KEY-----
registry-auth.crt: |
-----BEGIN CERTIFICATE-----
<self generated certificate>
-----END CERTIFICATE-----
registry_http_secret: "XRDj2u9nNsEBO7X8sqXrwC0eio1jWx0yJQPbHxw8fWhqMHSNep8sUFw2Udy2GITq"
registry_notification_secret: "[WArPn6qS80HoG4ZhIlwq6xabVozNfRl2]"
smtp_password: "73utiNzyrga4#mHlrpyl#Irumh9eXHKQ8q&5M$BAOyhotW95kZ&CroohRTsi9l*w"
values.yml: (little bit obfuscated for privacy)
global:
edition: ee
gitlabVersion: "18.4.1"
## https://docs.gitlab.com/charts/charts/globals#configure-host-settings
hosts:
domain: <mydomain>
https: true
gitlab:
name: git.<mydomain>
minio: {}
registry:
name: registry.<mydomain>
tls: {}
smartcard: {}
kas: {}
pages:
name: pages.<mydomain>
openbao: {}
workspaces:
name: workspaces.<mydomain>
## https://docs.gitlab.com/charts/charts/globals#configure-ingress-settings
ingress:
configureCertmanager: false
useNewIngressForCerts: false
provider: traefik
class: traefik
annotations:
cert-manager.io/cluster-issuer: letsencrypt-production
traefik.ingress.kubernetes.io/router.tls: "true"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
enabled: true
tls:
enabled: true
secretName: gitlab-my-domain-tls
path: /
pathType: Prefix
monitoring:
enabled: true
gitlab:
## Enterprise license for this GitLab installation
## Secret created according to https://docs.gitlab.com/charts/installation/secrets#initial-enterprise-license
## If allowing shared-secrets generation, this is OPTIONAL.
license: {}
# secret: RELEASE-gitlab-license
# key: license
## https://docs.gitlab.com/charts/charts/globals#configure-postgresql-settings
psql:
password:
useSecret: true
secret: gitlab-credentials
key: postgresql-password
host: database-cluster-rw.cnpg-database.svc.cluster.local
port: 5432
username: gitlab
database: gitlab
preparedStatements: false
databaseTasks: true
load_balancing:
hosts:
- database-cluster-ro.cnpg-database.svc.cluster.local
## https://docs.gitlab.com/charts/charts/globals#configure-redis-settings
redis:
auth:
enabled: true
secret: gitlab-credentials
key: redis-password
host: redis-master.redis.svc.cluster.local
port: 6379
database: 1
## https://docs.gitlab.com/charts/charts/globals#configure-gitaly-settings
gitaly:
enabled: true
authToken:
secret: gitlab-credentials
key: gitaly-authtoken
internal:
names: [default]
external: []
service:
name: gitaly
type: ClusterIP
externalPort: 8075
internalPort: 8075
tls:
externalPort: 8076
internalPort: 8076
tls:
enabled: false
praefect:
enabled: false
## https://docs.gitlab.com/charts/charts/globals#configure-minio-settings
minio:
enabled: false
## https://docs.gitlab.com/charts/charts/globals#configure-appconfig-settings
## Rails based portions of this chart share many settings
appConfig:
## https://docs.gitlab.com/charts/charts/globals#general-application-settings
enableUsagePing: true
enableSeatLink: false
enableImpersonation: true
applicationSettingsCacheSeconds: 60
usernameChangingEnabled: false
defaultTheme: 9
defaultColorMode: 3
defaultSyntaxHighlightingTheme: 1
defaultProjectsFeatures:
issues: true
mergeRequests: true
wiki: true
snippets: true
builds: true
containerRegistry: true
## https://docs.gitlab.com/charts/charts/globals#content-security-policy
contentSecurityPolicy:
enabled: true
report_only: false
## https://docs.gitlab.com/charts/charts/globals#lfs-artifacts-uploads-packages-external-mr-diffs-and-dependency-proxy
object_store:
enabled: true
proxy_download: true
storage_options:
server_side_encryption: AES256
connection:
secret: gitlab-credentials
key: s3-connection-block
lfs:
enabled: true
proxy_download: true
bucket: git-lfs
artifacts:
enabled: true
proxy_download: true
bucket: gitlab-artifacts
uploads:
enabled: true
proxy_download: true
bucket: gitlab-uploads
packages:
enabled: true
proxy_download: true
bucket: gitlab-packages
externalDiffs:
enabled: true
when:
proxy_download: true
bucket: gitlab-mr-diffs
terraformState:
enabled: true
bucket: gitlab-terraform-state
ciSecureFiles:
enabled: true
bucket: gitlab-ci-secure-files
dependencyProxy:
enabled: true
proxy_download: true
bucket: gitlab-dependency-proxy
backups:
bucket: gitlab-backups
tmpBucket: gitlab-tmp
## https://docs.gitlab.com/charts/installation/command-line-options.html#incoming-email-configuration
## https://docs.gitlab.com/charts/charts/gitlab/mailroom/index.html#incoming-email
incomingEmail:
enabled: false
## https://docs.gitlab.com/charts/charts/gitlab/mailroom/index.html#service-desk-email
serviceDeskEmail:
enabled: false
## https://docs.gitlab.com/charts/charts/globals#ldap
ldap:
preventSignin: false
servers: {}
duoAuth:
enabled: false
## https://docs.gitlab.com/charts/charts/globals#kas-settings
gitlab_kas: {}
workspaces: {}
## Configure GitLab Cells. Cells is a GitLab internal-use experiment.
## https://docs.gitlab.com/administration/cells/
cell:
enabled: false
## https://docs.gitlab.com/charts/charts/globals#suggested-reviewers-settings
suggested_reviewers: {}
## https://docs.gitlab.com/charts/charts/globals#omniauth
omniauth:
enabled: true
autoSignInWithProvider: openid_connect
syncProfileFromProvider: [openid_connect]
syncProfileAttributes: [email]
allowSingleSignOn: [openid_connect]
blockAutoCreatedUsers: false
autoLinkLdapUser: false
autoLinkSamlUser: false
autoLinkUser: [openid_connect]
externalProviders: []
allowBypassTwoFactor: []
providers:
- secret: gitlab-credentials
key: oidc-block
## https://docs.gitlab.com/charts/charts/globals#kerberos
kerberos:
enabled: false
## https://docs.gitlab.com/charts/charts/globals#configure-appconfig-settings
sentry:
enabled: false
gitlab_docs:
enabled: false
oidcProvider:
openidIdTokenExpireInSeconds: 120
smartcard:
enabled: false
sidekiq:
routingRules: []
# Config that only applies to the defaults on initial install
initialDefaults: {}
## End of global.appConfig
oauth:
gitlab-pages: {}
## https://docs.gitlab.com/charts/advanced/geo/
geo:
enabled: false
## https://docs.gitlab.com/charts/charts/gitlab/kas/
kas:
enabled: true
service:
apiExternalPort: 8153 # port for connections from the GitLab backend
tls:
enabled: false
verify: true
workspaces:
## If workspaces is enabled, you must provide a hostname under global.hosts
enabled: true
## https://docs.gitlab.com/charts/charts/gitlab/spamcheck/
spamcheck:
enabled: true
## https://docs.gitlab.com/charts/charts/globals#configure-gitlab-shell
shell:
authToken:
secret: gitlab-credentials
key: shell_auth_token
hostKeys:
secret: gitlab-credentials
## https://docs.gitlab.com/charts/charts/globals#tcp-proxy-protocol
tcp:
proxyProtocol: false
traefik:
entrypoint: "gitlab-shell"
## Rails application secrets
## Secret created according to https://docs.gitlab.com/charts/installation/secrets#gitlab-rails-secret
## If allowing shared-secrets generation, this is OPTIONAL.
railsSecrets: {}
## Rails generic setting, applicable to all Rails-based containers
rails:
bootsnap: # Enable / disable Shopify/Bootsnap cache
enabled: true
sessionStore:
sessionCookieTokenPrefix: ""
## https://docs.gitlab.com/charts/charts/globals#configure-registry-settings
registry:
bucket: registry
certificate:
secret: gitlab-credentials
key: registry-auth.crt
httpSecret:
secret: gitlab-credentials
key: registry_http_secret
notificationSecret:
secret: gitlab-credentials
key: registry_notification_secret
tls:
enabled: true
secretName: gitlab-registry-my-domain-tls
# Settings utilized by other services referencing registry:
enabled: true
pages:
enabled: true
accessControl: true
customDomainMode: https
artifactsServer: true
objectStore:
enabled: true
bucket: gitlab-pages
namespaceInPath: false
## GitLab Runner
## Secret created according to https://docs.gitlab.com/charts/installation/secrets#gitlab-runner-secret
## If allowing shared-secrets generation, this is OPTIONAL.
runner:
registrationToken: {}
## https://docs.gitlab.com/charts/charts/globals#outgoing-email
## Outgoing email server settings
smtp:
enabled: true
address: mail.<my-provider>
port: 587
user_name: "no-reply@my-domain"
## https://docs.gitlab.com/charts/installation/secrets#smtp-password
password:
secret: "gitlab-credentials"
key: smtp_password
authentication: "login"
starttls_auto: true
openssl_verify_mode: "peer"
open_timeout: 30
read_timeout: 60
pool: false
## https://docs.gitlab.com/charts/charts/globals#outgoing-email
## Email persona used in email sent by GitLab
email:
from: "GitLab <no-reply@my-domain>"
display_name: GitLab
reply_to: "no-reply@my-domain"
subject_suffix: ""
smime:
enabled: false
secretName: ""
keyName: "tls.key"
certName: "tls.crt"
## Timezone for containers.
time_zone: Europe/Paris
## https://docs.gitlab.com/charts/charts/globals#configure-workhorse-settings
## Global settings related to Workhorse
workhorse:
serviceName: webservice-default
tls:
enabled: false
## https://docs.gitlab.com/charts/charts/globals#configure-webservice
webservice:
workerTimeout: 60
## End of global
upgradeCheck:
enabled: true
image: {}
securityContext:
# in alpine/debian/busybox based images, this is `nobody:nogroup`
runAsUser: 65534
fsGroup: 65534
seccompProfile:
type: "RuntimeDefault"
## Allow to overwrite the specific security context under which the container is running.
containerSecurityContext:
runAsUser: 65534
allowPrivilegeEscalation: false
runAsNonRoot: true
capabilities:
drop: [ "ALL" ]
tolerations: []
annotations: {}
configMapAnnotations: {}
resources:
requests:
cpu: 50m
priorityClassName: ""
## Installation of certmananger.
## This value replaces `certmanager.install` to allow certmanager schema validation to pass.
## See dependencies in Chart.yaml for current version
installCertmanager: false
## Configuration of jetstack/cert-manager
certmanager:
installCRDs: false
nameOverride: certmanager
## https://docs.gitlab.com/charts/charts/nginx/
## https://docs.gitlab.com/charts/architecture/decisions#nginx-ingress
## Installation & configuration of charts/ingress-nginx:
nginx-ingress: &nginx-ingress
enabled: false
# Ingress controller to handle requests forwarded from other Geo sites.
# Configuration differences compared to the main nginx ingress:
# - Pass X-Forwarded-For headers as is
# - Use a different IngressClass name
nginx-ingress-geo:
<<: *nginx-ingress
enabled: false
haproxy:
install: false
## Installation & configuration of stable/prometheus
## See dependencies in Chart.yaml for current version
prometheus:
install: false
## Configuration of Redis
## https://docs.gitlab.com/charts/architecture/decisions#redis
## https://docs.gitlab.com/charts/installation/deployment.html#redis
redis:
install: false
## Installation & configuration of stable/postgresql
## See dependencies in Chart.yaml for current version
postgresql:
install: false
## Installation & configuration charts/registry
## https://docs.gitlab.com/charts/architecture/decisions#registry
## https://docs.gitlab.com/charts/charts/registry/
# registry:
# enabled: false
## Automatic shared secret generation
## https://docs.gitlab.com/charts/installation/secrets
## https://docs.gitlab.com/charts/charts/shared-secrets.html
shared-secrets:
enabled: true
rbac:
create: true
selfsign:
image:
# pullPolicy: IfNotPresent
# pullSecrets: []
repository: registry.gitlab.com/gitlab-org/build/cng/cfssl-self-sign
# Default tag is `master`, overridable by `global.gitlabVersion`.
# tag: master
keyAlgorithm: "rsa"
keySize: "4096"
expiry: "3650d"
caSubject: "GitLab Helm Chart"
env: production
serviceAccount:
enabled: true
create: true
name: # Specify a pre-existing ServiceAccount name
resources:
requests:
cpu: 50m
securityContext:
# in debian/alpine based images, this is `nobody:nogroup`
runAsUser: 65534
fsGroup: 65534
seccompProfile:
type: "RuntimeDefault"
containerSecurityContext:
allowPrivilegeEscalation: false
runAsNonRoot: true
capabilities:
drop: [ "ALL" ]
tolerations: []
podLabels: {}
annotations: {}
## Installation & configuration of gitlab/gitlab-runner
## See dependencies in Chart.yaml for current version
gitlab-runner:
install: true
rbac:
create: true
runners:
locked: false
# Set secret to an arbitrary value because the runner chart renders the gitlab-runner.secret template only if it is not empty.
# The parent/GitLab chart overrides the template to render the actual secret name.
secret: "nonempty"
config: |
[[runners]]
[runners.kubernetes]
image = "ubuntu:22.04"
{{- if .Values.global.minio.enabled }}
[runners.cache]
Type = "s3"
Path = "gitlab-runner"
Shared = true
[runners.cache.s3]
ServerAddress = {{ include "gitlab-runner.cache-tpl.s3ServerAddress" . }}
BucketName = "runner-cache"
BucketLocation = "us-east-1"
Insecure = false
{{ end }}
podAnnotations:
gitlab.com/prometheus_scrape: "true"
gitlab.com/prometheus_port: 9252
podSecurityContext:
seccompProfile:
type: "RuntimeDefault"
traefik:
install: false
## Settings for individual sub-charts under GitLab
## Note: Many of these settings are configurable via globals
gitlab:
## https://docs.gitlab.com/charts/charts/gitlab/toolbox
toolbox:
replicas: 1
antiAffinityLabels:
matchLabels:
app: gitaly
backups:
objectStorage:
config:
secret: gitlab-credentials
key: s3-connection-block
## https://docs.gitlab.com/charts/charts/gitlab/migrations
# migrations:
# enabled: false
## https://docs.gitlab.com/charts/charts/gitlab/webservice
webservice:
ingress:
tls:
secretName: gitlab-webservice-my-domain-tls
# enabled: false
## https://docs.gitlab.com/charts/charts/gitlab/sidekiq
# sidekiq:
# enabled: false
## https://docs.gitlab.com/charts/charts/gitlab/gitaly
# gitaly:
## https://docs.gitlab.com/charts/charts/gitlab/gitlab-shell
# gitlab-shell:
# enabled: false
## https://docs.gitlab.com/charts/charts/gitlab/gitlab-pages
# gitlab-pages:
## https://docs.gitlab.com/charts/charts/gitlab/kas
kas:
ingress:
tls:
secretName: gitlab-kas-my-domain-tls
## https://docs.gitlab.com/charts/charts/gitlab/praefect
# praefect:
## Installation & configuration of gitlab/gitlab-zoekt
gitlab-zoekt:
install: false
## Installation & configuration of OpenBao
openbao:
install: false
Current behavior
gitlab gitlab-gitaly-0 1/1 Running 0 22m
gitlab gitlab-gitlab-exporter-66f5bbc67-pchj5 1/1 Running 0 22m
gitlab gitlab-gitlab-pages-c4ff6dc68-97flk 1/1 Running 0 22m
gitlab gitlab-gitlab-runner-6b4c4dbffc-4gx8b 0/1 CrashLoopBackOff 6 (83s ago) 22m
gitlab gitlab-gitlab-shell-6745cbbd6b-ql7kc 1/1 Running 0 22m
gitlab gitlab-gitlab-shell-6745cbbd6b-qq9qb 1/1 Running 0 22m
gitlab gitlab-kas-6556dd55b8-dl5tw 0/1 Running 0 22m
gitlab gitlab-kas-6556dd55b8-nw5wl 0/1 Running 0 22m
gitlab gitlab-registry-65d957985f-n8k5c 1/1 Running 0 22m
gitlab gitlab-registry-65d957985f-rp9nl 1/1 Running 0 22m
gitlab gitlab-sidekiq-all-in-1-v2-5db7c9cb48-k64bm 0/1 Init:CrashLoopBackOff 6 (58s ago) 22m
gitlab gitlab-spamcheck-86f4f7769b-wndw6 1/1 Running 0 22m
gitlab gitlab-toolbox-5fc5699c4-p5wj7 1/1 Running 0 22m
gitlab gitlab-webservice-default-c687c7674-dhx27 0/2 Init:CrashLoopBackOff 6 (102s ago) 22m
gitlab gitlab-webservice-default-c687c7674-xp7jz 0/2 Init:Error 6 (5m1s ago) 22m
Expected behavior
gitlab gitlab-gitaly-0 1/1 Running 0 22m
gitlab gitlab-gitlab-exporter-66f5bbc67-pchj5 1/1 Running 0 22m
gitlab gitlab-gitlab-pages-c4ff6dc68-97flk 1/1 Running 0 22m
gitlab gitlab-gitlab-runner-6b4c4dbffc-4gx8b 1/1 Running 6 (83s ago) 22m
gitlab gitlab-gitlab-shell-6745cbbd6b-ql7kc 1/1 Running 0 22m
gitlab gitlab-gitlab-shell-6745cbbd6b-qq9qb 1/1 Running 0 22m
gitlab gitlab-kas-6556dd55b8-dl5tw 1/1 Running 0 22m
gitlab gitlab-kas-6556dd55b8-nw5wl 1/1 Running 0 22m
gitlab gitlab-registry-65d957985f-n8k5c 1/1 Running 0 22m
gitlab gitlab-registry-65d957985f-rp9nl 1/1 Running 0 22m
gitlab gitlab-sidekiq-all-in-1-v2-5db7c9cb48-k64bm 1/1 Running 6 (58s ago) 22m
gitlab gitlab-spamcheck-86f4f7769b-wndw6 1/1 Running 0 22m
gitlab gitlab-toolbox-5fc5699c4-p5wj7 1/1 Running 0 22m
gitlab gitlab-webservice-default-c687c7674-dhx27 2/2 Running 6 (102s ago) 22m
gitlab gitlab-webservice-default-c687c7674-xp7jz 2/2 Running 6 (5m1s ago) 22m
Versions
-
Chart:
$ helm show chart gitlab/gitlab apiVersion: v2 appVersion: v18.4.2 dependencies: - name: gitlab repository: "" version: '*.*.*' - name: certmanager-issuer repository: "" version: '*.*.*' - name: minio repository: "" version: '*.*.*' - name: registry repository: "" version: '*.*.*' - alias: certmanager condition: installCertmanager name: cert-manager repository: https://charts.jetstack.io/ version: v1.17.4 - condition: prometheus.install name: prometheus repository: https://prometheus-community.github.io/helm-charts version: 27.23.0 - condition: postgresql.install name: postgresql repository: https://charts.bitnami.com/bitnami version: 13.4.4 - condition: gitlab-runner.install name: gitlab-runner repository: https://charts.gitlab.io/ version: 0.80.1 - condition: redis.install name: redis repository: https://charts.bitnami.com/bitnami version: 18.19.4 - condition: nginx-ingress.enabled name: nginx-ingress repository: "" version: '*.*.*' - alias: nginx-ingress-geo condition: nginx-ingress-geo.enabled name: nginx-ingress repository: "" version: '*.*.*' - condition: gitlab-zoekt.install name: gitlab-zoekt repository: https://charts.gitlab.io/ version: 3.4.0 - condition: openbao.install name: openbao repository: https://charts.gitlab.io/ version: 0.5.1 - condition: traefik.install name: traefik repository: https://helm.traefik.io/traefik version: 10.19.4 - alias: haproxy condition: haproxy.install name: kubernetes-ingress repository: https://haproxytech.github.io/helm-charts version: 1.39.4 description: GitLab is the most comprehensive AI-powered DevSecOps Platform. home: https://about.gitlab.com/ icon: https://gitlab.com/gitlab-com/gitlab-artwork/raw/master/logo/logo-square.png keywords: - gitlab maintainers: - email: support@gitlab.com name: GitLab Inc. name: gitlab sources: - https://gitlab.com/gitlab-org/charts/gitlab version: 9.4.2 -
Platform:
- Self-hosted: NixOS 25.05 K8s 3-nodes cluster
-
Kubernetes: (
kubectl version)- Client: v1.32.0
- Server: v1.33.0
-
Helm: (
helm version)- Client: v3.17.1
Relevant logs
from migrations pod and some dependencies init container:
Begin parsing .erb templates from /var/opt/gitlab/templates
Writing /srv/gitlab/config/cable.yml
Writing /srv/gitlab/config/database.yml
Writing /srv/gitlab/config/gitlab.yml
Writing /srv/gitlab/config/resque.yml
Begin parsing .tpl templates from /var/opt/gitlab/templates
Copying other config files found in /var/opt/gitlab/templates to /srv/gitlab/config
Attempting to run '/bin/bash -c set -e;
/scripts/wait-for-deps;
/scripts/db-migrate;
' as a main process
Checking: resque.yml, cable.yml
[ClickHouse] INFO: ClickHouse is not configured. Skipping migration checks.
+ SUCCESS connecting to 'redis://redis-master.redis.svc.cluster.local:6379/1' from resque.yml, through redis-master.redis.svc.cluster.local
+ SUCCESS connecting to 'redis://redis-master.redis.svc.cluster.local:6379/1' from cable.yml, through redis-master.redis.svc.cluster.local
Checking: main, ci
WARNING: Problem accessing ci database (gitlab). Confirm username, password, and permissions.
Database Schema - ci (gitlab)
NOTICE: Database has not been initialized yet.
WARNING: schema version check bypassed by BYPASS_SCHEMA_VERSION='true'
WARNING: Problem accessing main database (gitlab). Confirm username, password, and permissions.
Database Schema - main (gitlab)
NOTICE: Database has not been initialized yet.
WARNING: schema version check bypassed by BYPASS_SCHEMA_VERSION='true'
NOTICE: There are 4857 pending migrations.
NOTICE: There are 4857 pending migrations.
Checking database migrations are up-to-date
Performing migrations (this will initialized if needed)
Skipping Topology Service health check due to the cell being disabled
Running db:schema:load:main rake task
rake aborted!
TypeError: Invalid type for configuration. Expected Symbol, String, or Hash. Got nil
/srv/gitlab/vendor/bundle/ruby/3.2.0/gems/activerecord-7.1.5.2/lib/active_record/database_configurations.rb:183:in `resolve'
/srv/gitlab/vendor/bundle/ruby/3.2.0/gems/activerecord-7.1.5.2/lib/active_record/connection_adapters/abstract/connection_handler.rb:324:in `resolve_pool_config'
/srv/gitlab/vendor/bundle/ruby/3.2.0/gems/activerecord-7.1.5.2/lib/active_record/connection_adapters/abstract/connection_handler.rb:134:in `establish_connection'
/srv/gitlab/vendor/bundle/ruby/3.2.0/gems/activerecord-7.1.5.2/lib/active_record/tasks/database_tasks.rb:535:in `with_temporary_pool'
/srv/gitlab/vendor/bundle/ruby/3.2.0/gems/activerecord-7.1.5.2/lib/active_record/tasks/database_tasks.rb:519:in `with_temporary_connection'
/srv/gitlab/vendor/bundle/ruby/3.2.0/gems/activerecord-7.1.5.2/lib/active_record/tasks/database_tasks.rb:510:in `with_temporary_connection_for_each'
/srv/gitlab/vendor/bundle/ruby/3.2.0/gems/activerecord-7.1.5.2/lib/active_record/railties/databases.rake:588:in `block (5 levels) in <main>'
/srv/gitlab/lib/tasks/gitlab/db.rake:188:in `configure_database'
/srv/gitlab/lib/tasks/gitlab/db.rake:163:in `block in configure_pg_databases'
/srv/gitlab/lib/tasks/gitlab/db.rake:160:in `each'
/srv/gitlab/lib/tasks/gitlab/db.rake:160:in `configure_pg_databases'
/srv/gitlab/lib/tasks/gitlab/db.rake:102:in `block (3 levels) in <main>'
Tasks: TOP => db:schema:load:main => db:test:purge:main
(See full trace by running task with --trace)