Deploying DSS services¶
Prerequisites¶
Before beginning services deployment:
- Deploy appropriate infrastructure (Kubernetes cluster is available)
- Complete appropriate pooling configuration
- Download & install the following tools to your workstation:
- Install kubectl to
interact with kubernetes
- Confirm successful installation with
kubectl version --client(should succeed from any working directory). - Note that kubectl can alternatively be installed via the Google Cloud SDK
gcloudshell if using Google Cloud.
- Confirm successful installation with
- Install tanka
- On Linux, after downloading the binary per instructions, run
sudo chmod +x /usr/local/bin/tk - Confirm successful installation with
tk --version
- On Linux, after downloading the binary per instructions, run
- Install Docker.
- Confirm successful installation with
docker --version
- Confirm successful installation with
- Install kubectl to
interact with kubernetes
Services deployment¶
This section describes how to deploy services for a DSS instance once the prerequisites have been satisified.
Depending on infrastructure deployment method, deploy services:
Then, deploy any necessary support services.
Docker images¶
The application logic of the DSS is located in core-service which is provided in
a Docker image. To use the prebuilt InterUSS Docker images (without building
them yourself), simply use docker.io/interuss/dss for VAR_DOCKER_IMAGE_NAME
and the rest of this section may be skipped.
Instead of using the prebuilt images, you can build the image locally and push it to a Docker registry of your choice. All major cloud providers have a docker registry service, or you can set up your own.
To build these images locally and, optionally, push them to a docker registry:
-
Set the environment variable
DOCKER_URLto your docker registry url endpoint.DOCKER_URLshould be set similarly to as described here, likegcr.io/your-project-id(do not include the image name; it will be appended by the build script)
-
Ensure you are logged into your docker registry service.
- These
are the recommended instructions (
gcloud auth configure-docker). Ensure that appropriate permissions are enabled.
- These
are the recommended instructions (
-
Use the
build.shscript to build and push an image tagged with the current date and git commit hash. -
Note the VAR_* value printed at the end of the script.
-
Set the environment variable
DOCKER_URLto your docker registry url endpoint.DOCKER_URLshould be set similarly to as described here, like${aws_account_id}.dkr.ecr.${region}.amazonaws.com/(do not include the image name; it will be appended by the build script)
-
Ensure you are logged into your docker registry service.
-
Use the
build.shscript to build and push an image tagged with the current date and git commit hash. -
Note the VAR_* value printed at the end of the script.
Access to private repository¶
See the description of VAR_DOCKER_IMAGE_PULL_SECRET in TFVARS.gen.md to configure authentication when using terraform to deploy infrastructure.
Verify signature of prebuilt InterUSS Docker images¶
The prebuilt docker images are signed using sigstore. The identity of the CI workflow, attested by GitHub, is used so sign the images.
The signature may be verified by using cosign:
Adapt the version specified if required.