/alpha-rotato

Alpha Rotation - A Concourse pipeline that hackily rotates your CF deployment credentials.

Primary LanguageShellApache License 2.0Apache-2.0

Alpha Rotato

A pipeline that hackily rotates your CF deployment credentials.

Credential List

List based on cf-deployment at commit 98c1a7 without any ops files.

Name Rotation Method Downtime?
adapter_rlp_tls Single Deploy Probably No
adapter_tls Single Deploy Probably No
blobstore_admin_users_password Single Deploy Probably Yes
blobstore_secure_link_secret Single Deploy Probably Yes
blobstore_tls Single Deploy Probably No
cc_bridge_cc_uploader Single Deploy Probably No
cc_bridge_cc_uploader_server Single Deploy Probably No
cc_bridge_tps Single Deploy Probably No
cc_bulk_api_password Single Deploy Probably Yes
cc_database New User Probably No
cc_db_encryption_key None Yet N/A
cc_internal_api_password Single Deploy Probably Yes
cc_staging_upload_password Single Deploy Probably Yes
cc_tls Single Deploy Probably No
cf_admin_password Single Deploy Probably Yes
cf_mysql_mysql_admin_password Single Deploy Probably Yes
cf_mysql_mysql_cluster_health_password Single Deploy Probably Yes
cf_mysql_mysql_galera_healthcheck_endpoint_password Single Deploy Probably Yes
cf_mysql_mysql_galera_healthcheck_password Single Deploy Probably Yes
cf_mysql_proxy_api_password Single Deploy Probably Yes
consul_agent Single Deploy Probably No
consul_agent_ca Three Stage Probably No
consul_encrypt_key Three Stage Probably No
consul_server Single Deploy Probably No
diego_auctioneer_client Single Deploy Probably No
diego_auctioneer_server Single Deploy Probably No
diego_bbs_client Single Deploy Probably No
diego_bbs_encryption_keys_passphrase Three Stage Probably No
diego_bbs_server Single Deploy Probably No
diego_database New User Probably No
diego_locket_client Single Deploy Probably No
diego_locket_server Single Deploy Probably No
diego_rep_agent Single Deploy Probably No
diego_rep_client Single Deploy Probably No
diego_ssh_proxy_host_key Single Deploy Probably No
dropsonde_shared_secret Single Deploy Probably Yes
locket_database New User Probably No
loggregator_ca Three Stage Probably No
loggregator_tls_cc_tc Single Deploy Probably No
loggregator_tls_doppler Single Deploy Probably No
loggregator_tls_metron Single Deploy Probably No
loggregator_tls_rlp Single Deploy Probably No
loggregator_tls_statsdinjector Single Deploy Probably No
loggregator_tls_tc Single Deploy Probably No
nats_password Single Deploy Probably Yes
network_connectivity_database New User Probably No
network_policy_ca Three Stage Probably No
network_policy_client Single Deploy Probably No
network_policy_database New User Probably No
network_policy_server Single Deploy Probably No
router_ca Three Stage Probably No
router_route_services_secret Single Deploy Probably Yes
router_ssl Single Deploy Probably No
router_status_password Single Deploy Probably Yes
routing_api_database New User Probably No
scheduler_api_tls Single Deploy Probably No
scheduler_client_tls Single Deploy Probably No
service_cf_internal_ca Three Stage Probably No
silk_ca Three Stage Probably No
silk_controller Single Deploy Probably No
silk_daemon Single Deploy Probably No
uaa_admin_client_secret Single Deploy Probably Yes
uaa_ca Three Stage Probably No
uaa_clients_cc-routing_secret Single Deploy Probably Yes
uaa_clients_cc-service-dashboards_secret Single Deploy Probably Yes
uaa_clients_cc_service_key_client_secret Single Deploy Probably Yes
uaa_clients_cloud_controller_username_lookup_secret Single Deploy Probably Yes
uaa_clients_doppler_secret Single Deploy Probably Yes
uaa_clients_gorouter_secret Single Deploy Probably Yes
uaa_clients_network_policy_secret Single Deploy Probably Yes
uaa_clients_routing_api_client_secret Single Deploy Probably Yes
uaa_clients_ssh-proxy_secret Single Deploy Probably Yes
uaa_clients_tcp_emitter_secret Single Deploy Probably Yes
uaa_clients_tcp_router_secret Single Deploy Probably Yes
uaa_database New User Probably No
uaa_jwt_signing_key Two Stage Probably No
uaa_login_saml Single Deploy Probably No
uaa_ssl Single Deploy Probably No

Rotation Methods

Single Deploy

Just change the value and deploy it again. The source and its consumers will be updated. This will cause downtime for things like passwords, because there will be a time when the source will not match the consumers.

New User

This method creates a new user with the appropriate access, then a second phase deletes the prior user. This allows rotation of password credentials without downtime.

Two Stage

This method provides a gradual rotation where step 1 adds a new value and step two removes the old value. This gradual process avoids a state where the source and consumers have mismatched values.

Three Stage

This method mostly applies to CA certificate rotation. Step 1 provides an additional trusted CA, step 2 provides new certificates based on that CA, step 3 removes the prior CA from trust.