Skip to content

GitLab Pages deploy job never get completed and duplicate itself 4 times

Summary

Here I'm back,

I thought my pipeline issue would be completely resolved with the previous issue #6184 (closed), but I still have a problem: My build job now completes successfully, but the Pages deployment job isn't working. It says “running” indefinitely (I forgot it for 86 hours and it didn't deploy anything). Furthermore, it duplicates itself up to 4 times in the interface, but that doesn't do anything. I should point out that I don't see any additional pods running, as it does during the build job.

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: "https://rook-ceph-rgw-ceph-objectstore.rook-ceph.svc.cluster.local"
    path_style: true
  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://gitlab.my.domain/users/auth/openid_connect/callback"
        gitlab:
          groups_attribute: "groups"
          admin_groups: ["authentik Admins"]
  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:

global:
  edition: ee
  gitlabVersion: "18.4.1"

  ## https://docs.gitlab.com/charts/charts/globals#configure-host-settings
  hosts:
    domain: <my.domain>
    https: true
    gitlab:
      name: gitlab.<my.domain>
    minio: {}
    registry:
      name: registry.<my.domain>
    tls: {}
    smartcard: {}
    kas:
      name: gitlab-kas.<my.domain>
    pages:
      name: pages.<my.domain>
    openbao: {}
    workspaces:
      name: workspaces.<my.domain>

  ## 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,default2]
    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
  
  certificates:
    customCAs:
      - secret: rook-ceph-rgw-tls
        keys:
          - ca.crt

## 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: null
    privileged: true
    # 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

image.png

image.png

There is no log for these jobs contrary to the build job (passed) so I cannot find what is the problem.

Expected behavior

It should be one pages:deploy job (or more if it's expected idk) and it should success. The Pages should be accessible.

Versions

  • Chart:

    $ helm show chart gitlab/gitlab
    apiVersion: v2
    appVersion: v18.5.1
    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.81.0
    - 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.6.0
    - condition: openbao.install
      name: openbao
      repository: https://charts.gitlab.io/
      version: 0.6.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.5.1
  • 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

I don't know where I can check. I already checked pages pod logs and there is nothing else than readiness ping every 10s. In the runner pod logs, there is only the build job but not the deploy job.