Skip to content

feat: support external CA via spec.external in CertificateAuthority (fixes #54)#134

Closed
mathildabot wants to merge 1 commit intomainfrom
feature/54-external-ca
Closed

feat: support external CA via spec.external in CertificateAuthority (fixes #54)#134
mathildabot wants to merge 1 commit intomainfrom
feature/54-external-ca

Conversation

@mathildabot
Copy link
Collaborator

Summary

Adds support for using an external (out-of-cluster) Puppet/OpenVox CA. When spec.external is set on a CertificateAuthority, the operator skips PVC and setup Job creation and uses the external CA URL for all CSR signing and CRL operations.

Changes

api/v1alpha1/certificateauthority_types.go

  • New ExternalCASpec: url, caSecretRef, tlsSecretRef, insecureSkipVerify
  • Added External *ExternalCASpec to CertificateAuthoritySpec
  • New phase: External
  • CEL: external and storage mutually exclusive

internal/controller/certificateauthority_controller.go

  • Delegates to reconcileExternalCA() when spec.external != nil
  • Skips PVC, Job, CRL refresh for external CAs

internal/controller/certificate_signing.go

  • New caHTTPClientForCA(): mTLS for external CAs, verified TLS for internal
  • Functions now accept caBaseURL instead of caServiceName

internal/controller/certificate_controller.go

  • Resolves URL from spec.external.url or findCAServiceName()

Samples + Docs

  • config/samples/certificateauthority-external.yaml
  • docs/guides/ca-import.md

Fixes #54

)

Add ExternalCASpec to CertificateAuthoritySpec allowing the operator to
connect to an external Puppet/OpenVox CA running outside Kubernetes.
When spec.external is set, the operator skips PVC creation, CA setup
Job, and CRL refresh, instead routing certificate signing requests
directly to the external CA URL with optional mTLS support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@slauger slauger closed this Mar 16, 2026
@slauger slauger mentioned this pull request Mar 16, 2026
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: support external CA — spec.external in CertificateAuthority + CA import guide

2 participants