Package: nebari-plugin-cert-manager-chart
Nebari Plugin Cert-Manager ChartOverviewThis plugin integrates cert-manager into the Nebari platform, allowing X.509 certificate management within Nebari. Utilizing Python, Terraform, Kubernetes, and Helm charts, the plugin provides a configurable deployment.Design and ArchitectureThe plugin follows a modular design, leveraging Terraform to define the deployment of cert-manager within a Kubernetes cluster. Key components include:Terraform Configuration: Defines variables, outputs, and resources for deployment, including Helm release and Kubernetes secrets.Helm Chart Integration: Deploys cert-manager as a Helm chart within the specified Kubernetes namespace.Installation Instructionspip install nebari-plugin-cert-manager-chartUsage InstructionsConfigurations: Various configurations are available, including email, certificate, issuer, solver, and namespace settings.Configuration DetailsEnvironment VariableThe below environment variable must be present when deploying Nebari platform to create cloudflare-api Secret for Issuer to retrieve if using Cloudflare solver.#### cloudflare-apikey# have to get the client secret from cloudflare manuallyexportCLOUDFLARE_TOKEN="!!!GetThisFromCloudflareConsole!!!"PublicConfiguration of the cert-manager plugin is controlled through thecert_managersection of thenebari-config.yamlfor the environment.cert_manager:# helm release name and namespace - default default (nebari global namespace)namespace:cert-manager# email address to be associated with the ACME accountemail:sblair@metrostar.com# API to manage DNS01 ACME challenge records - default cloudflaresolver:cloudflare# whether to use ACME server's staging or production endpoint - default falsestaging:false# list of certificate resources to be createdcertificates:# name of certificate-name:metrostar-certificate# issuer responsible for issuing the certificateissuer:letsencrypt# list of issuers representing certificate issuing authorityissuers:# name of issuer-name:letsencrypt# type of issuertype:letsencrypt# ID of the CA key that the External Account is bound to, if any - leave blank if nonekeyId:""# symmetric MAC key of the External Account Binding, if any - leave blank if noneexistingSecret:""# helm chart values overridesvalues:{}InternalThe following configuration values apply to the internally managed terraform module and are indirectly controlled through related values innebari-config.yaml.domain,zone: Domain and zone for the plugin's deployment.create_namespace,namespace: Helm release's namespace configuration.email: Cloudflare email address.solver: Solver type.staging: Flag to use staging or production endpoint environment.certificates: cert-manager Certificate resources to be stored in Kubernetes Secret resources.apikey: Cloudflare API Token.issuers: cert-manager Issuer resources.overrides: Map for overriding default configurations.Testing OverviewThe plugin includes unit tests to validate its core functionalities:Constructor Test: Verifies the default priority.Input Variables Test: Validates namespaces, solver type, staging flag.Default Namespace Test: Tests the default namespace configuration.Licensenebari-plugin-label-studio-chartis distributed under the terms of theApachelicense.