Implement SSHServer controller
What does this MR do?
This MR implements a complete SSH Server controller for GitLab, enabling SSH access for Git operations within the cloud-native GitLab deployment. The implementation includes:
- Fixed SSH host keys naming to match standard Linux conventions (ssh_host_*_key)
- Complete Kubernetes templates for the SSH server deployment:
- GitLab Shell configuration
- Deployment, Service and ServiceMonitor resources
- Full controller implementation with:
- Host key generation
- Application server reference resolution
Test Plan
- Setup the minimal dev instance as usual.
- Configure the nginx to expose the SSH Port.
RELEASE=gtlb-sshserver EXTERNAL_SSH_PORT=22 ./scripts/development-kit/nginx.sh install
Alternatively, you can update the ApplicationConfig if using a non-standard port.
- Login to instance and setup ssh key.
- Pull/Push via ssh should work.
Author's Checklist
For anything in this list which will not be completed, please provide a reason in the MR discussion.
Required
-
Ensure a release milestone is set. -
MR title and description are up to date, accurate, and descriptive. -
MR targeting the appropriate branch. -
MR has a green pipeline on GitLab.com. -
When ready for review, MR is labeled workflowready for review per the MR workflow.
Expected
-
Test plan indicating conditions for success has been posted and passes. -
Documentation is created or updated. -
Tests are added.
Related issues
Implement controller for managing basic lifecyc... (#110 - closed)
Edited by Lucas Li