feat: custom/shared issuer support - #313
rbekhtaoui wants to merge 7 commits into
Conversation
faca823 to
5956b00
Compare
5956b00 to
fef89f5
Compare
d9517c8 to
e3775eb
Compare
lemaitre-aneo
left a comment
There was a problem hiding this comment.
mTLS could use the internal issuer if no CA is provided.
Also, I think there could be some refactor to mutualize the implementations of the certs.
| name: {{ list $certManager "existingIssuer" "name" | include "armonik.utils.index" }} | ||
| kind: {{ list $certManager "existingIssuer" "kind" | include "armonik.utils.index" | default "Issuer" }} | ||
| group: {{ list $certManager "existingIssuer" "group" | include "armonik.utils.index" | default "cert-manager.io" }} |
There was a problem hiding this comment.
You could simplify if you set a local variable {{ $issuer := $certManager.existingIssuer | default dict }}
| certManager: | ||
| issuer: | ||
| enabled: false | ||
| create: false | ||
| provider: selfSigned | ||
| name: '{{.Release.Name}}-shared-issuer' | ||
| kind: Issuer | ||
| group: cert-manager.io |
There was a problem hiding this comment.
Some of those information should not be in global: Only the information about its presence, the name, the kind and the group are required. The others are only required when deploying armonik umbrella chart itself.
| ############################################ | ||
| ###### CERT-MANAGER ISSUER PROVIDERS ###### | ||
| ############################################ | ||
| googleCas: | ||
| # Required when global.armonik.certManager.issuer.provider=googleCas. | ||
| project: "" | ||
| location: "" | ||
| caPoolId: "" | ||
| certificateAuthorityId: "" | ||
| credentials: | ||
| name: "" | ||
| key: credentials.json | ||
|
|
||
| venafi: | ||
| # Required when global.armonik.certManager.issuer.provider=venafi. | ||
| zone: "" | ||
| tpp: | ||
| url: "" | ||
| credentialsRef: | ||
| name: "" | ||
| caBundle: "" | ||
| cloud: | ||
| apiTokenSecretRef: | ||
| name: "" | ||
| key: apikey |
There was a problem hiding this comment.
I think this should be in a issuer configuration. Also, I would say we should just forward issuer config as-is without much tweaking, instead of manually exposing each and every parameters.
Co-authored-by: lemaitre-aneo <91961298+lemaitre-aneo@users.noreply.github.com>
Motivation
The main goal was to support a custom/external cert-manager issuer instead of only a self-generated one, so ArmoniK can issue its TLS certificates from an existing company CA (venafi, googleCas).
Description
armonik.certManager.issuerhelper inarmonik-common, used consistently by activemq, redis, ingress and the new mongodb Certificate template.certmanager-issuer.yamlnow supports three providers:selfSigned,venafi,googleCas, with validation guards.google-cas-issueroperator, opt-in viaglobal.armonik.operators.googleCasIssuer.deploy.extraDnsNames/ipAddresses.Testing
[When applicable, detail the testing you have performed to ensure that these changes function as intended. Include information about any added tests.]
Impact
[Discuss the impact of your modifications on ArmoniK. This might include effects on performance, configuration, documentation, new dependencies, or changes in behaviour.]
Additional Information
[Any additional information that reviewers should be aware of.]
Checklist