Create shared storage service in Zerops
Zerops provides shared storage service that can be connected to runtime services. Shared storage enables your runtime service to share files between all containers of the same service or even among containers of different runtime services.
Connect a shared storage in Zerops GUI​
Connect your Go service directly when creating a new shared storage service. Just select your Go service in the Share with Services block on the Add new shared storage service page.
To connect the existing shared storage to the Go service, go to the shared storage service detail and select Shared storage connections. A list of all your current runtime services will be shown. Select a runtime service and the shared storage will be connected to the selected runtime.
Zerops will create a new folder /mnt/[shared storage name]`` in the runtime root folder. E.g.
/mnt/teststoragefor a
teststorage` shared storage. The content of this folder is shared among all containers of the runtime service you've selected. If you select multiple runtimes, the content of the folder will be shared among all containers of selected services.
Disconnect a shared storage in Zerops GUI​
Go to the shared storage service detail and select Shared storage connections. A list of all your current runtime services will be shown. Switch off the toggle to disconnect the shared storage from the selected runtime.
Your runtime service will be automatically restarted when a shared storage is disconnected.
Create Go service with a shared storage using zCLI​
zCLI is the Zerops command-line tool. To create a new Go service via the command-line, follow these steps:
- Install & setup zCLI
- Create a project description file
- Create a project with a Go service and a shared storage
Create a project description file​
Zerops uses a yaml format to describe the project infrastructure.
description.yml format​
Read the basics how to define the Go service using the description.yml.
Example with a shared storage​
Create a directory my-project
. Create an description.yml
file inside the my-project
directory with following content:
# basic project data
project:
# project name
name: my-project
# optional: project description
description: A project with a Go and a shared storage
# optional: project tags
tags:
- DEMO
- ZEROPS
# array of project services
services:
- # service name
hostname: teststorage
# shared storage service has no version
type: shared-storage
# mode: HA / NON_HA
mode: NON_HA
- # service name
hostname: app
# service type and version number in go@{version} format
type: go@latest
# defines the minimum number of containers for horizontal autoscaling. Max value = 6.
minContainers: 2
# defines the maximum number of containers for horizontal autoscaling. Max value = 6.
maxContainers: 4
# Mount the shared storage to the Go service
mount:
- teststorage
The mount attribute accepts an array of shared storage names you want to mount to your runtime service.
Create a project with a Go service and a shared storage​
Follow the article How to create a project based on the description.yml.