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:

  1. Fixed SSH host keys naming to match standard Linux conventions (ssh_host_*_key)
  2. Complete Kubernetes templates for the SSH server deployment:
    • GitLab Shell configuration
    • Deployment, Service and ServiceMonitor resources
  3. Full controller implementation with:
    • Host key generation
    • Application server reference resolution

Test Plan

  1. Setup the minimal dev instance as usual.
  2. 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.

  1. Login to instance and setup ssh key.
  2. 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

Merge request reports

Loading