CM-830: Add trust-manager controller implementation - #498
openshift-app-platform-shift[bot] wants to merge 2 commits into
Conversation
Adds the TrustManager CRD (trustmanagers.operator.openshift.io/v1alpha1) to support deploying and managing the trust-manager operand. This implements the API types defined in enhancement proposal #1914 (CM-830). Key additions: - TrustManager type with singleton validation (name must be 'cluster') - TrustManagerConfig: logLevel, logFormat, trustNamespace (immutable), secretTargets, filterExpiredCertificates, defaultCAPackage, scheduling - SecretTargetsConfig with CEL cross-field validation rules - DefaultCAPackageConfig for OpenShift trusted CA bundle injection - TrustManager FeatureGate (TechPreview, default disabled) - Generated deepcopy, clientset, informers, listers, and CRD manifest - Integration test suite for validation rules Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements the trust-manager controller for EP #1914 (CM-830), which manages the trust-manager operand deployment. The controller follows the same patterns established by the istiocsr controller: - Reconciler with ctrlClient interface wrapping client.Client - Bindata-based static manifest deployment for all dependent resources - ReconcileError types (Irrecoverable, RetryRequired) for error handling - Label-filtered cache via NewCacheBuilder for managed resources - Feature gate gating via FeatureTrustManager (Beta, default: false) - ConditionalStatus for condition management (Ready/Degraded) Managed resources: ServiceAccount, ClusterRole/Binding, Role/Binding, Deployment, Services (webhook + metrics), Certificate, Issuer, ValidatingWebhookConfiguration, NetworkPolicies. Additional features: - Dynamic RBAC for secretTargets (creates/deletes ClusterRole/Binding based on SecretTargetsPolicy) - DefaultCAPackage support via OpenShift trusted CA bundle injection (CNO annotation-based ConfigMap injection + PEM-to-JSON conversion) - Configurable trust namespace, logging, resource requirements, affinity, tolerations, and node selectors Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@openshift-app-platform-shift[bot]: This pull request references CM-830 which is a valid jira issue. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: Repository: openshift/coderabbit/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: openshift-app-platform-shift[bot] The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Hi @openshift-app-platform-shift[bot]. Thanks for your PR. I'm waiting for a openshift member to verify that this patch is reasonable to test. If it is, they should reply with Regular contributors should join the org to skip this step. Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Summary
FeatureTrustManager(Beta, default: false), activated via--unsupported-addon-features=TrustManager=trueDepends On
Test plan
make generate && make manifests && make buildpassesTrustManager=truefeature flag is set🤖 Generated with Claude Code