View on GitHub

dss

InterUSS Platform's implementation of the ASTM DSS concept for RID and flight coordination.

Certificates management

Introduction

The dss-certs.py helps you manage the set of certificates used for your DSS deployment.

Should this DSS beeing part of a pool, the script also provide some helpers to manage the set of CA certificates in the pool.

To run the script, just run ./dss-certs.py. The python script don’t require any dependencies, just a recent version of python 3.

Quick start guide

Single DSS instance in minikube`

Pool of 3 DSS instances in minikube, in namespace default, ns2 and ns3

Operations

Common parameters

--name

The name of your DSS instance, that should identify it in a unique way. Used as main identifier for the set of certificates and in certificates.

Example: dss-west-1

--organization

The name of the organization managing the DSS Instance. Used in certificates generation. The combination of (name, organization) shall be unique in a cluster.

Example: Interuss

--cluster-context

The kubernetes context the script should use.

Example: dss-local-cluster

--namespace

The kubernetes namespace to use.

Example: default

--nodes-count

The number of yugabyte nodes of your DSS instance. Default to 3.

init

Initializes the certificates for a new DSS instance including a CA, a client certificate and a certificate for each yugabyte node.

apply

Apply the current set of certificates to the kubernetes cluster. Shall be ran after each modification of the certificates, like addition / removal of CA in the pool, new nodes-count parameter.

regenerate-nodes

Generate missing nodes certificates. Useful if you want to add new nodes in your DSS Instance. Don’t forget to set the nodes-count parameters.

add-pool-ca

Add a CA certificate(s) of another(s) DSS Instance to the set of trusted certificates. Existing certificates are not added again.

You can set the file with certificate(s) with --ca-file or use stdin.

Don’t forget to use the apply command to update certificate on your kubernetes cluster.

Examples:

remove-pool-ca

Remove CA certificate(s) of DSS Instance(s) from the set of trusted certificates. Unknown certificates are not removed again.

You can set the file with certificate(s) with --ca-file, use stdin or use --ca-serial to specify the serial / name of the certificate you want to remove.

Don’t forget to use the apply command to update certificate on your kubernetes cluster.

Example:

list-pool-ca

List the set of accepted CA certificates.

Also display a ‘hash’ of CA serial, that you may use to compare other DSS Instances list of CA certificates easily.

get-pool-ca

Return all CA certificate in the current pool.

Can be used for debugging or to synchronize the set of CA certificates in a pool with others USS.

get-ca

Return your own CA certificate .

Display the compiled CA certificate. Can be used for debugging or to synchronize the set of CA certificates in a pool with others USS.

destroy

Destroy a certificate set. Be careful, there are no way to undo the command.