Skip to content

Latest commit

 

History

History
78 lines (59 loc) · 2.7 KB

docker-compose.md

File metadata and controls

78 lines (59 loc) · 2.7 KB

Docker compose target generation

The Docker compose target, still in alpha stage, allows you to generate the base configuration to run your services on docker compose.

This feature is intended for limited and development purposes, so no all features of the Kubernetes target are supported by this target.

How to use

The process to build and run the services in Docker compose is the following:

  1. generate the Skaffold and Docker compose configuration (option --docker-compose for harness-deployment)
  2. build the images for all the services using Skaffold
  3. run Docker compose

Translated to the command line:

harness-deployment ... --docker-compose  # replace ... by your options
skaffold build
cd deployment
docker compose up  # or "docker-compose up" depending on your installation

Supported features

In general, the supported scope for docker compose services includes the ones that are automatically handled by Cloud Harness, hence:

harness:
  deployment:
    auto: true 
  service:
    auto: true

Other custom Kubernetes templates are not included in the deployment.

Currently, the Docker compose target supports:

  • generation of "auto" deployment/services (service and deployment bing to the same artifact in Docker)
    • environmental variables
    • links/bindings between services
    • readiness/liveness probes as healthchecks
    • Resources requests and limits controls
    • replicas
  • generation of "auto" volumes and mounting on the services
  • resources (handled as configmaps in Kubernetes, handled as file mounts here)
  • reverse proxy (traefik configuration)
  • "auto" databases (postgresql)
  • secured: access gatekeepers configuration (Keycloak)
  • secrets (no encryption)

The following deployment files are generated by harness-deployment ... --docker-compose:

  • Docker compose configuration: deployment/docker-compose.yaml
  • Configuration files for the services that needs to be mounted in each docker container: deployment/compose/resources/
  • Skaffold configuration file for building the services images: skaffold.yaml

## Unsupported features

There are still some features that are not supported by the Docker compose target. Some are planned, others will not be, or not in a form that is compatible with the original k8s target.

Here is a list of the unsupported features at the moment that are in the roadmap:

  • TLS certificates
  • application proxy (use_services) specification
  • definition of custom compose templates
  • Events (through Kafka)
  • Jupyterhub

These features are not currently in the roadmap for Docker compose

  • Unsupported Kubernetes features from Docker
  • NFS server
  • Workflows and tasks (will not be supported as Argo is a dedicated solution for k8s)
  • DB backups