Service Deployment

DEVsheds uses the garden.io open source library to enable the modular build and deployment of software modules contained in the repository.

To access the Services view, you must first deploy the system. Click on the “Deploy System” button in the top nav bar.

This opens a progress window. In the background, the application is being built, tested, and deployed. Every developer has a private namespace in the cluster.

Once that is done, the Services card is enabled. Click on the Services card to open a view of the project’s modules, services, tasks, and tests.

A module is something you build. It can correspond to a Dockerfile and its associated code, a remote Docker image, a Helm chart, and more, depending on the module type. A module can contain zero or more services, tasks, and tests. It can also have build dependencies.

A service is something you deploy. A task is something you run and wait to finish, and a test has test results.

To show the dependencies between these objects, click on the “Stack Graph” item in the sidebar menu.

 

Configuration

The project configuration garden.yml file should be located in the top-level directory of the project's Git repository.

In addition, each of the project's modules' garden.yml should be located in that module's top-level directory. Modules define all the individual components of your project, including services, tasks and tests.

A garden specification is defined in a YAML file. Here is an example garden.yml taken from the test repository.

kind: Project name: demo-project defaultEnvironment: "remote" environments: - name: local - name: remote providers: - name: local-kubernetes environments: [local] - name: kubernetes environments: [remote] context: gke_apt-phenomenon-243802_us-central1-b_devsheds namespace: ${local.env.REPO_NAME} defaultHostname: ${local.env.REPO_NAME}.devsheds.io buildMode: cluster-docker setupIngressController: nginx

See https://docs.garden.io/using-garden/ for more detail.

The following settings are required to work in the DEVsheds environment:

provider

kubernetes

context

gke_apt-phenomenon-243802_us-central1-b_devsheds

Hostnames

must have the pattern: *.devsheds.io

buildMode

cluster-docker

setupIngressController

nginx