x509: certificate is valid for ingress.local, not xxx.mydomain

Summary

Merging configuration from template file "/configmaps/config.template.toml" 
ERROR: Verifying runner... failed                   runner=3MEdYyzk5 status=couldn't execute POST against https://gitlab.mydomain.xxx/api/v4/runners/verify: Post "https://gitlab.mydomain.xxx/api/v4/runners/verify": tls: failed to verify certificate: x509: certificate is valid for ingress.local, not gitlab.mydomain.xxx
PANIC: Failed to verify the runner.                
Registration attempt 6 of 30
Runtime platform                                    arch=amd64 os=linux pid=149 revision=853330f9 version=16.5.0
WARNING: Running in user-mode.                     
WARNING: The user-mode requires you to manually start builds processing: 
WARNING: $ gitlab-runner run                       
WARNING: Use sudo for system-mode:                 
WARNING: $ sudo gitlab-runner...                  

Steps to reproduce

Install gitlab from helm, use custom domain. And create a new gitlab runner from GUI, get the token, fill it to the runner-token secret, and restart the gitlab-funner deployment.

Then there is the error.

Configuration used

Copy the secret gitlab-scm-wildcard-tls, to a new secret

kind: Secret
apiVersion: v1
metadata:
  name: gitlab-scm-runner-wildcard-tls
  namespace: git
  labels:
    app: gitlab
    chart: gitlab-7.6.0
    heritage: Helm
    release: gitlab-scm
data:
  gitlab.git.apricottavern.site.crt: >-
    LS0
  gitlab.git.apricottavern.site.key: >-
    LS0

Mount the secret

    spec:
      volumes:
        - name: runner-secrets
          emptyDir:
            medium: Memory
        - name: etc-gitlab-runner
          emptyDir:
            medium: Memory
        - name: projected-secrets
          projected:
            sources:
              - secret:
                  name: gitlab-scm-runner-wildcard-tls
              - secret:
                  name: gitlab-scm-minio-secret
              - secret:
                  name: gitlab-scm-gitlab-runner-secret
                  items:
                    - key: runner-registration-token
                      path: runner-registration-token
                    - key: runner-token
                      path: runner-token

(this is added)

              - secret:
                  name: gitlab-scm-runner-wildcard-tls

I already add

  config.template.toml: |
    [[runners]]
      tls-ca-file = "/secrets/gitlab.mydomain.xxx.crt"
      tls-cert-file = "/secrets/gitlab.mydomain.xxx.crt"
      tls-key-file = "/secrets/gitlab.mydomain.xxx.key"

to the k8s config map

I can confirm /secrets/gitlab.mydomain.xxx.crt exists by adding ls -al /secrets to config map

    echo "register crt from secrets"

    # file existes
    ls -al /secrets

    # this does not work, permission denied
    cp /secrets/xxx.crt
    /usr/local/share/ca-certificates/

    update-ca-certificates

  #  for i in $(seq 1 "${MAX_REGISTER_ATTEMPTS}"); do

Current behavior

runner can't register

Expected behavior

Use the crt specified in the tls-ca-file, and successfully register.

Versions

  • Chart: (tagged version | branch | hash git rev-parse HEAD) 0.59.1 16.6.0
  • Platform:
    • Cloud: (GKE | AKS | EKS | ?)
    • Self-hosted: (OpenShift | Minikube | Rancher RKE | ?) MicroK8S
  • Kubernetes: (kubectl version)
    • Client: v1.28.3
    • Server: v1.28.3
  • Helm: (helm version)
    • Client: v3.9.1
    • Server: v3.9.1

Relevant logs

(Please provide any relevant log snippets you have collected, using code blocks (```) to format)

this is now working

    echo "register crt from secrets"

    ls -al /secrets

    cp /secrets/gitlab.git.apricottavern.site.crt
    /usr/local/share/ca-certificates/

    update-ca-certificates

  #  for i in $(seq 1 "${MAX_REGISTER_ATTEMPTS}"); do

or

ls -al /etc/gitlab-runner/certs/

cp /secrets/gitlab.git.apricottavern.site.crt /etc/gitlab-runner/certs/

only getting errors like:

ls: /etc/gitlab-runner/certs/: Permission denied
cp: can't stat '/etc/gitlab-runner/certs/': Permission denied

this copy is succeed, but is not used too.

mkdir -p ~/.gitlab-runner/certs/

cp /secrets/gitlab.git.apricottavern.site.crt ~/.gitlab-runner/certs/
Edited by Ghost User