UCloud logo UCloud logo UCloud
v2026.3.0
  1. UCloud/Core
  2. 1. Introduction
  3. 2. Projects
  4. 3. Accounting
  5. 4. Orchestration
  6. 5. Frontend
  7. UCloud/IM for Slurm-based HPC
  8. 6. Installation
  9. 7. Architecture and Networking
  10. 8. User and Project Management
  11. 9. Filesystem Integration
    1. 9.1. Inter-provider file transfers
  12. 10. Slurm Integration
    1. 10.1. Application Management
    2. 10.2. Built-in Applications
  13. 11. Reference
    1. 11.1. Configuration
    2. 11.2. CLI
  14. 12. Appendix
    1. 12.1. Built-in Application Index
  15. UCloud/IM for Kubernetes
  16. 13. Installation
  17. 14. Architecture and Networking
  18. 15. Filesystem Integration
  19. 16. Compute Jobs
    1. 16.1. Public Links
    2. 16.2. Public IPs
    3. 16.3. License Servers
    4. 16.4. SSH Servers
    5. 16.5. Job Audit Log
    6. 16.6. Virtual machines
  20. 17. Integrated applications
    1. 17.1. Syncthing
    2. 17.2. Integrated terminal
  21. 18. UCX applications
    1. 18.1. Hello world
    2. 18.2. Data binding
    3. 18.3. UI events
    4. 18.4. Component reference
    5. 18.5. API reference
  22. 19. Reference
    1. 19.1. Configuration
    2. 19.2. CLI
  23. Branding for UCloud
  24. 20. Branding and identity for UCloud
  25. H: Procedures
  26. 21. H: Procedures
  27. 22. H: Introduction
  28. 23. H: Auditing
  29. 24. H: Auditing scenario
  30. 25. H: GitHub actions
  31. 26. H: Deployment
  32. 27. H: 3rd party dependencies (risk assesment)
  1. Links
  2. Source Code
  3. Releases

Deployment

In this document we will describe the procedures and technologies involved in the deployment of UCloud services. Additional details about our infrastructure can be found in our infrastructure documentation (private).

Docker

All services are deployed as a Docker container in Kubernetes.

We host a private Docker registry at https://dreg.cloud.sdu.dk. Contact @hschu12 or @DanThrane for access.

Kubernetes

Kubernetes handles the orchestration of containers. It is configured via resources that describe the desired state of the cluster. Common types of Kubernetes resources include deployments and cron jobs. Kubernetes ensures that the state described in the resources are met in the cluster.

As a result there are no servers to configure or install software on. We simply describe to Kubernetes how we wish to run our containers and Kubernetes takes care of the rest. Once a server has joined the Kubernetes cluster it is ready to run any of our services.

See the Kubernetes documentation for more details.

Access to Kubernetes is done through K3s.

K3s

K3s is the software we use to manage new Kubernetes clusters.

GitHub actions

We use GitHub actions for building and testing the code.

Procedure and Backwards Compatibility

Under normal conditions, before deploying a new version you must ensure that the software checks every mark in the following list:

  • The software is built and tested. This process should make use of the development system, manual testing and automatic testing.
  • Relevant migrations must occur before the deployment of the new software.
  • Migrations should strive towards not breaking the existing build. The old and new version should be able to co-exist.
Previous H: GitHub actions
Next H: 3rd party dependencies (risk assesment)