/ejbca-ce-helm-meetup

Primary LanguageSmartyGNU Lesser General Public License v2.1LGPL-2.1

EJBCA

Helm Chart for EJBCA Community Meetup 2022 Discuss Version: 1.0.0 Type: application AppVersion: 7.9.0

EJBCA covers all your needs – from certificate management, registration and enrollment to certificate validation.

Welcome to EJBCA – the Open Source Certificate Authority (software). EJBCA is one of the longest running CA software projects, providing time-proven robustness, reliability and flexibitlity. EJBCA is platform independent and can easily be scaled out to match the needs of your PKI requirements, whether you’re setting up a national eID, securing your industrial IoT platform or managing your own internal PKI for Enterprise or DevOps.

EJBCA is developed in Java and runs on a JVM such as OpenJDK, available on most platforms such as Linux and Windows.

There are two versions of EJBCA:

  • EJBCA Community (EJBCA CE) - free and open source, OSI Certified Open Source Software
  • EJBCA Enterprise (EJBCA EE) - commercial and Common Criteria certified

OSI Certified is a certification mark of the Open Source Initiative.

Prerequisites

Getting started

The EJBCA Community Helm Chart boostraps EJBCA Community on a Kubernetes cluster using the Helm package manager.

Add repo

helm repo add https://github.com/Keyfactor/ejbca-ce-helm
helm repo update

Quick start

helm upgrade --install ejbca-ce ejbca-ce \
  --repo https://github.com/Keyfactor/ejbca-ce-helm \
  --namespace ejbca --create-namespace

This command deploys ejbca-ce-helm on the Kubernetes cluster in the default configuration. To customize the installation, see helm install for command documentation.

See configuration below to customize deployment.

Uninstall chart

helm uninstall [RELEASE_NAME]

This command removes all Kubernetes components associated with this chart and deletes the release.

See helm uninstall for command documentation.

Community Support

In our Community we welcome contributions. The Community software is open source and community supported, there is no support SLA, but a helpful best-effort Community.

Commercial Support

Commercial support is available for EJBCA Enterprise.

License

EJBCA Community is licensed under the LGPL license, please see LICENSE.

Configuration

Values

Key Type Default Description
ejbca.enabled bool true Enables EJBCA deployment
ejbca.eeConfig.initialAdmin string ManagementCA;WITH_COMMONNAME;SuperAdmin Configures initial admin role and rules for EJBCA. Default value requires that a certificate signed by ManagementCA with CN SuperAdmin be passed to EJBCA when authenticating.
ejbca.eeConfig.adminWebAccess string true Enables EJBCA /adminweb/ access
ejbca.reverseProxy.image.repository string httpd Repository to get EJBCA reverse proxy. Default is Apache httpd
ejbca.reverseProxy.image.pullPolicy string "IfNotPresent Image pull policy
ejbca.reverseProxy.image.tag string 2.4 Reverse proxy image pull tag
ejbca.caFinderImage.image.repository string m8rmclarenkf/ejbca-management-ca-locator Repository for CA image finder deployed as init container. Certificate found by this container is used for client certificate authentication by reverse proxy
ejbca.caFinderImage.image.pullPolicy string IfNotPresent Image pull policy
ejbca.caFinderImage.image.tag string 1.0.0 Reverse proxy image pull tag
ejbca.logShipper.enabled string false Enables or disables the deployment of a compatible log shipper. By default, fluent-bit is deployed if this is true.
ejbca.logShipper.configMapName string fluent-bit-conf Configmap name used to configure log shipper. This configmap is mounted to the log shipper container.
ejbca.logShipper.logLevel string INFO Log level EJBCA should store in log shipper directory
ejbca.logShipper.logPath string /opt/log Directory EJBCA will store logs in for pickup by log shipper
ejbca.logShipper.maxStorageSize string 256 Maximum size of log directory in MB
ejbca.logShipper.image.repository string fluent/fluent-bit Log shipper container repository
ejbca.logShipper.image.tag string latest Log shipper container version
ejbca.logShipper.image.pullPolicy string IfNotPresent Log shipper container pull policy
ejbca.logShipper.ports list [{"name":"http","containerPort":80,"protocol":"TCP"}] List of objects that configure the ports that the log shipper container and service should expose
ejbca.ui.enabled bool true Enables creation of service and ingress objects for access to EJBCA UI endpoints
ejbca.ui.name string "ejbca-ui" Name of K8s service created for UI access
ejbca.ui.host string "" Ingress host
ejbca.ui.ingressClassName string "nginx" Ingress classname for K8s ingress controller
ejbca.ui.ingressAnnotations list [] Annotations to attach to UI ingress object
ejbca.ui.ports list [{"name":"https","port":8443,"paths":[]}] List of ports and associated configuration used to configure UI service and ingress objects
ejbca.ui.ports[n].paths list [{"path":"/ejbca","pathType":"Prefix"}] List of paths exposed by ingress object
ejbca.rr.enabled bool true Enables creation of service and ingress objects for access to EJBCA programmatic resources
ejbca.rr.name string "ejbca-rr" Name of K8s service created for programmatic access
ejbca.rr.host string "" Ingress host
ejbca.rr.ingressClassName string "nginx" Ingress classname for K8s ingress controller
ejbca.rr.ingressAnnotations list [] Annotations to attach to programmatic ingress object
ejbca.rr.ports list [{"name":"https","port":443,"paths":[]}] List of ports and associated configuration used to configure programmatic service and ingress objects
ejbca.rr.ports[n].paths list [{"path":"/.well-known","pathType":"Prefix"},{"path":"/ejbca/ejbca-rest-api","pathType":"Prefix"}] List of paths exposed by ingress object
ejbca.lb.enabled bool true Enables creation of NodePort service
ejbca.lb.name string "ejbca-lb" Name of K8s service created for programmatic access
ejbca.lb.ports list [{"name":"https","port":443,"nodePort":32713}] List of ports and associated configuration for the load balancer NodePort service
database.localDeployment.deployDatabase bool false Boolean that configures chart to deploy local database for connection to EJBCA
database.localDeployment.username string "ejbca" Database username
database.localDeployment.password string "ejbca" Database password
database.localDeployment.passwordRoot string "foo123" Database root password
database.localDeployment.image.repository string "mariadb" Repository to find database container
database.localDeployment.image.pullPolicy string IfNotPresent Image pull policy
database.localDeployment.image.tag string "10.5" Database proxy image pull tag
database.host string "database-svc" Hostname of database to connect to.
database.port string 3306 Database port
database.secretName string "ejbca-database-credentials" Secret name containing credentials to database

Related projects