Skip to main content
Skip to main content
🚧 Work in Progress

Import configuration

In this section you will find the fullest example of import yaml configuration file.

Caution

Consider this a guideline only, not all keys are valid for all service types. If you want to know about the specifics of each technology, head to their Create service page in How To section.

Note
  • REQUIRED. If a parent object is defined, the key-value pair is required to be filled. All other key-value pairs are optional.
# ==== Define a project to import ====
project:
# REQUIRED. Name of your project
name: project0
# Project description
description: "This project is an example only"
# List of project tags for filtering
tags:
- test
- dev
# ==== Define a list of services to import into the project ====
services:
# REQUIRED. Name of your service
- hostname: service1
# REQUIRED. Choose from list of supported technologies and their versions
type: nodejs@latest
# HA or NON_HA mode
mode: HA
# Map of secret environment variables
envSecrets:
DATABASE_HOST: ${db_hostname}
DATABASE_NAME: ${db_hostname}
# Object storage size in GB
objectStorageSize: 2
# Choose object storage policy from a predefined list
objectStoragePolicy: public-read-write
# Define additional policy
objectStorageRawPolicy:
# One time build git repository
buildFromGit: https://github.com/zeropsio/recipe-nodejs-hello-world@main
# true or false
enableSubdomainAccess: true
# The higher the sooner the service is created
priority: 1
# Vertical autoscaling configuration object
verticalAutoscaling:
minVCpu: 1
maxVCpu: 5
# Choose SHARED or DEDICATED
cpuMode: DEDICATED
minRam: 1
maxRam: 32
minDisk: 1
maxDisk: 100
startCpuCoreCount:
minFreeCpuCores:
minFreeCpuPercent:
minFreeRamGB:
minFreeRamPercent:
# Minimum number of containers
minContainers: 2
# Maximum number of containers
maxContainers: 3
# List of shared storage services to connect to
mount:
- teststorage1
# Full nginx config
nginxConfig: |-
server {
listen 80 default_server;
listen [::]:80 default_server;

server_name _;
root /var/www;

location / {
try_files $uri $uri/ /index.html;
}

access_log syslog:server=unix:/dev/log,facility=local1 default_short;
error_log syslog:server=unix:/dev/log,facility=local1;
}
# Zerops.yml service name or full config file
zeropsSetup:
build:
base: nodejs@latest
buildCommands:
- echo zerops.yml from import
- yarn
- yarn run build
deployFiles: ./
cache: node_modules
run:
initCommands:
- |
if ! zcli bucket s3 create $STORAGE_HOSTNAME $STORAGE_BUCKET_NAME --x-amz-acl=private; then
echo "The bucket was not created, you have to do it manually!"
fi
start: yarn start
# REQUIRED. Name of your other service
- hostname: teststorage1
type: shared-storage
...

project​

REQUIRED, iff a whole project is imported

Only one project can be defined.

name​

string, REQUIRED

The name of the new project. Duplicates are allowed.

description​

string

Description of the new project.

tags​

list of strings

One or more string tags. Tags do not have a functional meaning, they only provide better orientation in projects.

services​

REQUIRED section

At least one service is required.

hostname​

string, REQUIRED

The unique service identifier. Limitations:

  • duplicates in the same project forbidden
  • maximum 25 characters, lowercase ASCII letters (a-z) or numbers (0-9) only

type​

choose a value, REQUIRED

Specifies the service type and version.

mode​

choose a value

  • HA / NON_HA (default NON_HA)

Defines the operation mode of the service.

envSecrets​

list of key-value pairs

Environment variables that are blurred by default in Zerops GUI. Can be edited or deleted in Zerops GUI.

objectStorageSize​

int

Object storage size in GB.

objectStoragePolicy​

choose a value

  • private / public-read / public-objects-read / public-write / public-read-write / custom

Select a predefined AWS S3 bucket access policy.

objectStorageRawPolicy​

json

Define your own AWS S3 bucket access policy. See AWS docs for details.

Use {{ .BucketName }} placeholder if you need to use bucket name in your custom policy rules.

buildFromGit​

url string

A URL of a Github or Gitlab repository used for a one-time build of your service.

enableSubdomainAccess​

boolean (default false)

Set true, if you want to enable a public access to your service via a Zerops subdomain. Not suitable for production.

priority​

int

Services are sorted before creation by priority in descending order, i.e. the higher the priority the sooner the service is created.

verticalAutoscaling​

nested object

minVCpu​

maxVCpu​

cpuMode​

choose a value

  • SHARED / DEDICATED

minRam​

float

Minimum RAM in GB that each container of the service can scale down to.

maxRam​

float

Minimum RAM in GB that each container of the service can scale up to.

minDisk​

float

Minimum disk space in GB that each container of the service can scale down to.

maxDisk​

float

Minimum disk space in GB that each container of the service can scale up to.

startCpuCoreCount​

int

Number of CPU cores with which each container starts.

minFreeCpuCores​

float

Minimum number of unused CPU cores before a container starts scaling.

minFreeCpuPercent​

float

Minimum percentage of unused CPU cores before a container starts scaling.

minFreeRamGB​

float

Minimum unused memory in GB before a container starts scaling.

minFreeRamPercent​

float

Minimum percentage of unused memory before a container starts scaling.

minContainers​

int (default 1, maximum value 6)

Minimum number of containers of the service.

maxContainers​

int (maximum value 6)

Maximum number of containers of the service.

mount​

list of shared storage service hostnames

Mount shared storages to the service. buildFromGit must be filled.

nginxConfig​

nginx config

Insert full nginx config.

zeropsSetup​

string / yaml format

Provide name of the service from your zerops.yml (find it under -setup: {name}) or insert full zerops.yml configuration file.