The Doomsday Genesis Kit deploys and manages the Doomsday certificate monitoring service using the Doomsday BOSH Release.
- Overview
- Features
- Parameters
- Cloud Configuration
- Addons
- Deployment Examples
- Accessing Doomsday
- Upgrading
- Troubleshooting
Doomsday is a certificate monitoring system that tracks X.509 certificates across various platforms and alerts when certificates are approaching expiration. It helps prevent outages due to expired certificates by providing a centralized view of certificate health.
This Doomsday kit assumes that it is being deployed in a Management environment ("Mgmt"). It will:
- Scan the deployments of the BOSH director for certificates
- Target all BOSH directors it discovers to scan their CredhHub for certificates
- Scan Vault paths for certificates
- If using the
ocfpfeature, scan FQDNs defined in Terraform outputs
- ocfp - Open Cloud Foundry Platform - Deploys Doomsday according to the OCFP reference architecture. Automatically enables
tls,lb, anduserpassfeatures. When enabled, Doomsday will look up:- The BOSH director that deploys it to find other BOSH directors
- Terraform outputs in Vault at paths
mgmt/fqdnsandocf/fqdnsto monitor certificates - The Vault path certificates defined in the environment
- userpass - Enables username/password authentication for accessing the Doomsday UI. Creates credentials in Vault for administrator access.
- tls - Enables HTTPS for the Doomsday UI using TLS certificates. Certificates are stored in Vault.
- lb - Configures Doomsday instances for use behind a load balancer. Adds necessary VM extensions.
- sharded-vault-paths - (Not recommended) Allows configuration of custom Vault path prefixes for certificate scanning. If enabled, Doomsday will read configured path prefixes from the vault environment path at
/doomsday. These prefixes tell the Doomsday vault configuration which paths to scan for certificates.
The ocfp feature automatically enables:
tls(HTTPS access)lb(load balancer support)userpass(authentication)
-
ip- The static IP address to deploy the Doomsday service to. This IP must exist within the static range of thenetwork. -
network- The name of thenetwork(per cloud-config) where the Doomsday Service will be deployed. Defaults todoomsday.
-
fqdn- (Optional) The FQDN DNS Name of the Load Balancer fronting the Doomsday service. -
cert_dns_name- Custom DNS name to use for the TLS certificate. Defaults todoomsday.<network>.bosh. -
lb_vm_ext_name- The VM extension to use for load balancer configuration. Defaults todoomsday-lb.
-
stemcell_os- The operating system for the Doomsday VM. Defaults toubuntu-noble. -
stemcell_version- The version of the stemcell to deploy. Defaults tolatest. -
vm_type- The name of thevm_type(per cloud-config) for the Doomsday VM. Defaults todoomsdayordefault. -
disk_size- Size of the persistent disk provided to the Doomsday service. Defaults to20480(20G). -
availability_zones- The availability zones to deploy to. Defaults toz1.
-
server_auth_timeout- Session timeout in minutes for authenticated users. Defaults to 30 minutes. -
server_auth_refresh- Whether to refresh authentication sessions. Defaults totrue.
-
ca_validity_period- How long the CA certificate should be valid. Defaults to10y. -
cert_validity_period- How long the server certificate should be valid. Defaults to10y.
ocfp_env_scale- Size of environment for OCFP deployments. Can bedevorprod. Affects VM and disk sizing. Defaults todev.
This kit supports multiple IaaS providers for deploying the Doomsday service:
For OpenStack deployments, the cloud config needs to specify:
- Network with appropriate
net_idandsecurity_groups - VM types with appropriate
instance_typeand disk settings - Disk types with appropriate
typespecifications
Example OpenStack cloud config settings:
networks:
cloud_properties:
net_id: <network-id>
security_groups: ['default']
vm_types:
cloud_properties:
instance_type: m1.2
boot_from_volume: true
root_disk:
size: 32
disk_types:
cloud_properties:
type: storage_premium_perf6STACKIT deployments are similar to OpenStack but with a key difference: STACKIT has a 1:1 correspondence of networks to subnets, whereas OpenStack has a single overarching network.
For STACKIT deployments, ensure your cloud config includes:
- Network with appropriate
net_idandsecurity_groupsfor each subnet - VM types with appropriate
instance_typeand disk settings - Disk types with appropriate
typespecifications
Example STACKIT cloud config settings:
networks:
cloud_properties:
net_id: <network-id>
security_groups: ['default']
vm_types:
cloud_properties:
instance_type: m1.2
boot_from_volume: true
root_disk:
size: 32
disk_types:
cloud_properties:
type: storage_premium_perf6For vSphere deployments, the cloud config needs to specify:
- Network with appropriate
name - VM types with CPU, RAM, and disk settings
- Disk types with appropriate
typespecifications
For GCP deployments, the cloud config needs to specify:
- Network with appropriate
network_nameandsubnetwork_name - VM types with appropriate
machine_typeand disk settings - Disk types with appropriate
typespecifications
The tls addon provides HTTPS support for the Doomsday UI:
- Configures Doomsday to listen on port 443
- Sets up TLS certificates from Vault
- Exports the certificates for use by other systems
This addon is added automatically when using the ocfp feature or explicitly with tls.
The lb addon configures Doomsday for use behind a load balancer:
- Adds the VM extension specified by
lb_vm_ext_name(defaults todoomsday-lb) - This extension should be defined in your cloud config to apply the necessary IaaS-specific load balancer settings
This addon is added automatically when using the ocfp feature or explicitly with lb.
The userpass addon provides username/password authentication:
- Configures the Doomsday UI to require authentication
- Creates an admin user with credentials stored in Vault
- Session timeout can be configured with
server_auth_timeout - Session refresh can be enabled/disabled with
server_auth_refresh
This addon is added automatically when using the ocfp feature or explicitly with userpass.
A minimal Doomsday deployment requires the following:
---
# my-environment.yml
networks:
- name: default
static: [10.0.0.10]
params:
ip: 10.0.0.10
features:
- tls
- userpassFor an OCFP reference architecture deployment:
---
# ocfp-env.yml
networks:
- name: mgmt-doomsday
static: [10.0.10.10]
params:
ip: 10.0.10.10
features:
- ocfpOnce deployed, you can access the Doomsday UI through:
- If using the
tlsfeature:https://<ip> - Without
tls:http://<ip>:80
If you configured an fqdn parameter and have DNS properly set up:
- If using the
tlsfeature:https://<fqdn> - Without
tls:http://<fqdn>:80
If the userpass feature is enabled, you'll need to authenticate with:
- Username:
admin - Password: Retrieved from Vault at
<prefix>/users/admin:password
You can get this password using:
genesis <env> secrets users/admin:password
To upgrade to a new version of the Doomsday Genesis Kit:
-
Update your deployment repository with the latest kit version:
cd my-doomsday-deployments genesis update --kit doomsday -
Review the release notes for breaking changes
-
Deploy the updated environment:
genesis deploy my-environment
If Doomsday reports certificate expiration for its own certificates:
-
Rotate the certificates:
genesis rotate-secrets my-environment -
Re-deploy:
genesis deploy my-environment
If Doomsday can't connect to a backend:
- Verify network connectivity
- Check the credentials used (in Vault)
- Ensure security groups/firewall rules allow the connections
Access the Doomsday logs with:
genesis <env> bosh logs doomsday