[Barbican] TLS Implementation - #11217
Closed
rajivmucheli wants to merge 10 commits into
Closed
Conversation
rajivmucheli
requested review from
BerndKue,
JoJoPuppe and
dorneanu
as code owners
March 30, 2026 11:31
rajivmucheli
marked this pull request as draft
March 30, 2026 11:31
BerndKue
previously approved these changes
Mar 30, 2026
…94, WP-1195, WP-1196, WP-1197) This commit implements the BSI TLS certification requirements for Barbican: WP-1187: Migrate to Apache+mod_wsgi - Added Apache WSGI configuration template (_wsgi-barbican.conf.tpl) - Updated api-deployment.yaml to use Apache instead of paste.httpserver - Added api.processes and api.threads configuration in values.yaml WP-1188: Add TLS Termination to Apache - Added TLS certificate volume mounts - Added HTTPS port (443) to deployment and service - TLS certificates loaded from Kubernetes secret WP-1189: Switch Ingress to TLS Passthrough - Updated ingress.yaml with ssl-passthrough annotation - Added backend-protocol HTTPS annotation - Conditional configuration based on tls.passthrough setting WP-1194: TLS Bootstrap Job (Helm hook) - Created job-tls-bootstrap.yaml as pre-install/pre-upgrade hook - Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fe s- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- Fa- notation patch WP-1196: Apache TLS ProWP-1196: Apache TLS ProWP-1196: Apache TLS ProWP-1196: Apache TLS nt WP-1196: Apache TLS ProWP-1196: Apache TLS ProWP-1196: Apache TLS ProisaWP-1196: Apache TLS ProWP-1196: Apache TLS ProWP-1196: Apache TLScemWP-1196: Apache TLS ProWP-1196: ApacatiWP-1196: Apache TLS ProWP-1196: Apacs WP-1196: Apache TLS ProWP-1196: Apache TLS ProWP- -----------------------------------------------Acco------------------------------sive TLS configuration section in values.yaml - All features disable- All features disanabled: false)
rajivmucheli
force-pushed
the
bsi-barbican
branch
from
March 30, 2026 14:17
ea9bdc3 to
b5a9001
Compare
- Fix TLS 1.3 cipher suites: Remove TLS_AES_128_GCM_SHA256 (not in spec) - Fix TLS 1.2 cipher suites: Add ECDHE-ECDSA variants, remove CHACHA20-POLY1305 - Fix ECDHE curve order: brainpoolP256r1 > brainpoolP384r1 > prime256v1 > secp384r1 - Add configurable ecdheCurves parameter in values.yaml - Update comments to reference BSI TR-02102-2 and SF.Eco.3/SF.Eco.4 Acceptance criteria addressed: - Only TLS 1.3 and TLS 1.2 accepted - Correct cipher suites per SF.Eco.4 - Correct ECDHE curve order per SF.Eco.3 - SSLHonorCipherOrder on - SSLSessionTickets off - Perfect Forward Secrecy (all ECDHE)
- Change image from 'tls-lifecycle-manager' to 'ccloud/tls-lifecycle-manager' - Update imageTag from 'latest' to '20260407222924' The image is now fetched from keppel.eu-de-1.cloud.sap/ccloud/tls-lifecycle-manager:20260407222924
This reverts commit 82706dd.
- Fix imageTag: pin to empty string with required guard in both job templates (was: latest, non-deterministic) - Fix hook-delete-policy: add before-hook-creation so failed bootstrap jobs do not block subsequent helm upgrade runs - Fix RBAC: separate create/list from resourceNames-restricted verbs - Fix dual WSGI daemon groups: single barbican-api group shared by both VirtualHosts, halving the mod_wsgi process pool - Add LimitRequestBody 114688 to both VirtualHosts (matches keystone) - Align startup script with keystone: remove a2enmod calls and fallback path; fail fast on missing binary - Fix missing trailing newlines in three files - Remove verbose WP-xxxx inline comments from all templates
- Merge origin/master into bsi-barbican - Resolve conflict in values.yaml: keep tls block, add rbac.enabled from master - Resolve conflict in api-deployment.yaml: keep TLS volumes, add barbican-tmp and barbican-run emptyDir volumes from master - Bump chart version 0.8.6 -> 0.9.0
Contributor
Apache writes to /var/run/apache2, /var/log/apache2 and other paths at runtime that are not covered by emptyDir mounts.
Contributor
Replace NGINX ingress TLS passthrough with a dedicated LoadBalancer service using Calico BGP (projectcalico.org/loadBalancerIPs), matching the approach in #12448. - Add service-external.yaml: LoadBalancer + Calico BGP when tls.enabled=true and global.barbican_external_ip is set - ingress.yaml: remove passthrough branch; ingress always routes HTTP traffic to the internal port - service.yaml: drop barbican-https port (owned by external service) - values.yaml: restore full tls block (lost in merge), remove passthrough field, add global.barbican_external_ip - Chart version 0.9.0 -> 0.9.1
Contributor
Author
|
fixed in #12641 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does
tls.enabled=trueReview fixes
latest, now a required field -- fails fast at render time if unsetbefore-hook-creationso failed bootstrap jobs don't block subsequent helm upgradecreate+resourceNamesrule (Kubernetes silently ignorescreatewithresourceNames); split into two clean rulesbarbican-api-https+barbican-api-httpinto a singlebarbican-apiprocess group -- was doubling the mod_wsgi worker poola2enmodcalls and fallback path lookup that masked broken images; fail fast if binary missingMerge from master
rbac.enabled: truefrom masterbarbican-tmpandbarbican-runemptyDir volumes from masterreadOnlyRootFilesystem: false-- Apache writes to /var/run/apache2, /var/log/apache2 at runtimetls: enabled: falseto CI test values to prevent nil pointer in linter