# Namespaces in ECiDA

# Environments

Environments in ECiDA are implemented via namespaces in k8s. The following name convention is used to name them:

ecida-env-[env-name]

This namespace naming convention is not strict, and a specific installation can use different naming convention.

The following labels (strict) have to be attached to valid environments:

app.kubernetes.io/name: [user friendly short name, e.g., development]
app.kubernetes.io/part-of: ecida
app.kubernetes.io/component: environment

# What-If

What-If is a special kind of environment, usually exist for a limited time, and destroyed after it was used. It has the following naming convention:

ecida-whatif-[env-name]

with the following labels:

app.kubernetes.io/name: [a what-if scenario name, may also be auto-generated]
app.kubernetes.io/part-of: ecida
app.kubernetes.io/component: whatif

# Repository

Repository is a special kind of an environment, with the following name (convention):

ecida-repository

and labels (strict):

app.kubernetes.io/name: repository
app.kubernetes.io/part-of: ecida
app.kubernetes.io/component: repository

# Application

An application is run in a separate namespace

ecida-env-[env-name]-[app-name]

or (in case of running a what-if scenario):

ecida-whatif-[env-name]-[app-name]

with the following labels:

app.kubernetes.io/name: [app-name]
app.kubernetes.io/part-of: [full env-name, e.g., ecida-env-development]
app.kubernetes.io/component: application

# Namespace Labels Scheme

The namespace labels have the following structure:

app.kubernetes.io/name: [user friendly short name, e.g., development]
app.kubernetes.io/part-of: ecida | environment name (for applications)
app.kubernetes.io/component: repository | environment | whatif | application