Gitlab on Kubernetes Cluster - can't use git to clone or push

11/8/2020

I've installed gitlab on my Linode Kubernetes Cluster and the UI works properly. But I can't clone / push any repository because ssh access fails.

git clone ssh://git@gitlab.example.com:6022/v2o/prova.git
Clone in 'prova' in corso...
git@example.com: Permission denied (publickey,password).

I've created the SSH Key pair and I've added the public one on Gitlab but nothing.

I've read some suggestions from internet and I tried to run ssh -Tv ssh://git@gitlab.example.com:6022

debug1: Will attempt key: /Users/v20/.ssh/id_ed25519 ED25519 SHA256:1246872361472618746238bdhahdahsdhjfa explicit
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: /Users/v2o/.ssh/id_ed25519 ED25519 SHA256:5fTy/hjLhfZ7xvLQmkxxjdddMNFiIV7auC2/U7nxsEo explicit
debug1: Authentications that can continue: publickey,password
debug1: No more authentication methods to try.
git@gitlab.example.com: Permission denied (publickey,password).

It pick up the correct key (/Users/v20/.ssh/id_ed25519) but looks like it can't connect anyway.

NOTE 1 I've used a NodeBalancer which expose 6022:22 port - I don't know if this configuration is correct but it's UP on Linode so I guess so

NOTE 2 If I exec on runner task pod, I get an unknown version of git, redis and go. While it is fine with GO, I don't know with git/redis.

git@gitlab-task-runner-7869d8d675-k4s4l:/$ gitlab-rake gitlab:env:info

System information
System:
Current User:   git
Using RVM:      no
Ruby Version:   2.6.6p146
Gem Version:    2.7.10
Bundler Version:1.17.3
Rake Version:   12.3.3
Redis Version:  unknown
Git Version:    unknown
Sidekiq Version:5.2.9
Go Version:     unknown

GitLab information
Version:        13.5.3
Revision:
Directory:      /srv/gitlab
DB Adapter:     PostgreSQL
DB Version:     13.0
URL:            https://gitlab.example.com
HTTP Clone URL: https://gitlab.example.com/some-group/some-project.git
SSH Clone URL:  git@gitlab.example.com:some-group/some-project.git
Using LDAP:     no
Using Omniauth: no

GitLab Shell
Version:        13.11.0
Repository storage paths:
- default:      /var/opt/gitlab/repo
GitLab Shell path:              /home/git/gitlab-shell
Git:            /usr/bin/git

NOTE 3 the git path on the message above is wrong, that might be a problem, but I don't know how to change it :/

-- v2to
git
gitlab
kubernetes
linode
ssh

1 Answer

11/8/2020

I managed to solve this problem.

  1. I needed to specify in the GitLab configuration (values.yaml) the shell will be expose on an high port 3xxxx so I added this part:
  gitlab-shell:
    enabled: true
    minReplicas: 1
    maxReplicas: 1
    # Map gitlab-shell to a high-numbered NodePort to support cloning over SSH
    service:
      type: NodePort
      nodePort: 32022
  1. Then I needed to set another variable (in the same file) global.shell.port = 22.

  2. The Node balancer needed to be on port 22 -> 32022

… and finally it worked like a charm!

-- v2to
Source: StackOverflow