UCloud logo UCloud logo UCloud
v2025.1.0
  1. UCloud/Core
  2. 1. Introduction
  3. 2. Projects
  4. 3. Accounting
  5. 4. Orchestration
  6. UCloud/IM for Slurm-based HPC
  7. 5. Installation
  8. 6. Architecture and Networking
  9. 7. User and Project Management
  10. 8. Filesystem Integration
    1. 8.1. Inter-provider file transfers
  11. 9. Slurm Integration
    1. 9.1. Application Management
    2. 9.2. Built-in Applications
  12. 10. Reference
    1. 10.1. Configuration
    2. 10.2. CLI
  13. 11. Appendix
    1. 11.1. Built-in Application Index
  14. UCloud/IM for Kubernetes
  15. 12. Installation
  16. 13. Architecture and Networking
  17. 14. Filesystem Integration
  18. 15. Compute Jobs
    1. 15.1. Public Links
    2. 15.2. Public IPs
    3. 15.3. License Servers
    4. 15.4. SSH Servers
  19. 16. Integrated applications
    1. 16.1. Syncthing
    2. 16.2. Integrated terminal
  20. 17. Reference
    1. 17.1. Configuration
  21. H: Procedures
  22. 18. H: Procedures
  23. 19. H: Introduction
  24. 20. H: Auditing
  25. 21. H: Auditing scenario
  26. 22. H: GitHub actions
  27. 23. H: Deployment
  28. 24. 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)