oc-deploy/docker
2025-05-14 16:13:31 +02:00
..
db add datas 2025-03-27 13:32:27 +01:00
tools Corrected traefik ports 2025-05-14 16:13:15 +02:00
build_containers.sh first improvement for interactive setup 2025-04-29 18:11:56 +02:00
README.md added TODO 2025-05-14 16:13:31 +02:00
start.sh oc-deploy vanilla k8s docker 2025-03-27 13:21:52 +01:00
stop.sh oc-deploy vanilla k8s docker 2025-03-27 13:21:52 +01:00

A guide to effective docker deployment for Open Cloud

We need a reliable process using the existing tools and the creation of new one to have a consistant deployment of Open Cloud when each service is running in a docker container.

This document aims at addressing :

  • The existing tools used
  • The functionning of said tools
  • The needed improvement (bugs/new features)
  • The required configuration for each service

Steps

  • Downloading the repos : oc-deploy/download_oc.py uses the interactivity offered by python's library to select and follow the cloning of the repos on the forge, oc-deploy/clone_opencloud_microservices.sh is more straifhtforward using bash.

  • Selecting the services to launch : build_containers.sh asks the user for the services that need to be launched. The user can choose non essential services (in front, monitord and shared) to be added to tthe list of minimum service to run open cloud (auth, catalog, datacenter, peer, workspace, worflow, scheduler, schedulerd)

  • Verify if the service really need a docker build : this operation is time and resource consumming, so we need to check :

    • is a container already runs
    • does an image already exist

    and prompt the user if he wants to proceed with the build, or just start a container with the existing image or let the the current container run.

  • Filling the configuration file for the service to be built :

    • We could create a script to interact with the user to display each key from the default config file and ask the value to use.
  • Build the image

Todo

  • Implement a script that interacts with the user to fill the configuration json file

  • Remove the filed json file from the forge to prevent that data from other dev are stored and used during build, which would lead the services to be missconfigured

    • We could let some generic value, like ports, container addresses...
  • Download and generate swagger for beego services

# Knowns errors and solutions

## Missing claims in the token

oc-auth uses NATS to communicate with the other services in order to retrieves claims/permissions. If you notice that the claims for a route on a specific service is absent from the token, check the service container's logs to see if it managed to connect with the NATS container.