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 |