Track configuration files

Track content (track.yml)

# track.yml
type: track
slug: my-first-track
icon: https://storage.googleapis.com/instruqt-frontend/img/tracks/default.png
title: My first track
teaser: A short description of the track.
description: |
A long description of the track.
You can use any GitHub flavoured markdown.
tags: []
challenges: []
owner: my-org-slug
developers:
- bas@instruqt.com
published: false
private: true

After the track is created, fill out the track.yml and config.yml files with the needed information. The track object contains the metadata that describes a track.

field

type

description

type

string

The type of the track. Can either be track or sandbox. Defaults to track.

slug

string

A string that is the ID of the track. The value of the ID should be globally unique.

icon

string

The URL of the icon that is to be shown with the track. The size of the icon should be 48x48 pixels.

title

string

The title of the track.

teaser

string

A short description of the track, which is shown in the track list.

description

string

A full description of the track, which is shown at the track details.

tags

list

A list of strings that represent tags associated with the track.

challenges

list

A list of challenges that belong to the track.

owner

string

The slug of the organization that owns this track.

developers

list

The developers of this track. Developers can preview the track when it is not yet published.

published

bool

Whether the track is published or not. When unpublished, the tracks is only visible to the track developers.

private

bool

Whether the track is visible outside an organization.

maintenance

bool

Whether the track is in maintenance. When true, the track can only be started by track developers. It remains visible to other users, but will show a maintenance banner.

show_timer

bool

Whether to show a timer during the assignment. When true, this timer will show how long the participant has left before the environment expires.

skipping_enabled

bool

Whether skipping challenges is enabled for end-users. Read more about skipping challenges here. Defaults to false.

Track configuration (config.yml)

The config object defines the environment that will be created for the participant. Configurations support containers, virtual machines and GCP projects. Depending on the resource type, different values need to be supplied in the configuration file.

# config.yml
version: 2
containers:
- name: container
image: alpine
ports:
- 8080
- 9090
resources:
memory: 128
shell: /bin/bash
environment:
ENV_VAR: value
ANOTHER: one
virtualmachines:
- name: vm
image: debian-9
machine_type: g1-small
pool_size: 1
shell: /bin/bash
environment:
ENV_VAR: value
ANOTHER: one
gcp_projects:
- name: gcp-project
services:
- cloudresourcemanager.googleapis.com
- compute.googleapis.com
aws_accounts:
- name: aws-account
iam_policy: |
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "cloudformation:*",
"Resource": "*"
}
]
}
managed_policies:
- arn:aws:iam::aws:policy/AmazonEC2FullAccess

The config object defines the environment that will be created for the participant. Configurations support containers, virtual machines and GCP projects. Depending on the resource type, different values need to be supplied in the configuration file.