Resolve "Mutual SSL Auth For Helm TIller"
What does this MR do?
As part of our move to support RBAC it will become increasingly important to lock down the permissions of Helm Tiller. As such we will use mutual SSL auth between Helm client and Tiller server with the keys only available to GitLab so users cannot authenticate to Tiller at all.
TODO
-
Encrypt secret keys in the DB so no secrets are stored unencrypted on disk -
Fix spec/features/projects/clusters/applications_spec.rb
somehow. Perhaps re-write it? Relying on polling and the way things are mocked in this test make it very flakey and difficult to troubleshoot. -
Make sure our CA certs and Tiller certs don't ever expire -
Improve Certificate
class. Reduce duplication in cert generation + improve name since it is a cert and key pair
Manual QA To Do
-
Install tiller with code that does not set up mutual SSL, then upgrade code and install applications and see that this still works as expected (including JupyterHub) -
Install tiller + 1 application, then upgrade code and install the rest of the applications (including JupyterHub)
Are there points in the code the reviewer needs to double check?
Why was this MR needed?
Screenshots (if relevant)
Does this MR meet the acceptance criteria?
-
Changelog entry added, if necessary -
Documentation created/updated - [-] API support added
-
Tests added for this feature/bug - Conforms to the code review guidelines
- [-] Has been reviewed by a UX Designer
- [-] Has been reviewed by a Frontend maintainer
-
Has been reviewed by a Backend maintainer -
Has been reviewed by a Database specialist
-
Conforms to the merge request performance guidelines -
Conforms to the style guides -
Conforms to the database guides -
If you have multiple commits, please combine them into a few logically organized commits by squashing them - [-] Internationalization required/considered
-
End-to-end tests pass ( package-and-qa
manual pipeline job)
What are the relevant issue numbers?
Closes #48098 (closed)
Edited by Dylan Griffith