Type object
File match starfish.yml
Schema URL https://catalog.lintel.tools/schemas/schemastore/starfish/latest.json
Source https://raw.githubusercontent.com/veepee-oss/json-schema/refs/heads/main/starfish/1-latest/starfish-schema.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Starfish configuration

Properties

applications object required

Declare all your applications here

locations object

Select where all yours app will be deployed to

1 nested properties
properties
info object

DO NOT USE: Starfish internal usage. This allows to give several informations for the deployment

7 nested properties
domain string

Company domain for this repository

product string

Company product for this repository

accountId string

Cloud account ID for the product

domainAccountId string

Cloud account ID for the domain

owner string
pattern=^#?[-A-z0-9]+$
contact string

Slack channel where to get support for this app

pattern=^([-A-z0-9]+)$
MyTool object
4 nested properties
domain string
product string
accountId string
domainAccountId string
config object

Customize starfish behaviour

5 nested properties
build object

Customize builds globally

2 nested properties
dependencies string | string[]
dockerReport boolean

Enable/disable docker report in MR

k8s object

Specific configuration for Kubernetes

1 nested properties
environments additionalEnv[]

Which environments should we deploy your apps to

nomad object

Specific configuration for Kubernetes

1 nested properties
environments additionalEnv[]

Which environments should we deploy your apps to

api object

Customize Api urls

3 nested properties
n8n string

n8n url

MyTool string

MyTool url

flipt string

flipt url

ci object

Customize some CI settings

24 nested properties
badgeImg string

Badge url for starfish gitops link

badgeImgDash string

Badge url for starfish dashboard link

build object

Customize builds globally

1 nested properties
starfishProvidedDockerfile string

Name of Dockerfile provided by Starfish tech templates (default to Dockerfile.starfish)

webHookPipelineURL string

Webhook pipeline url for gathering metrics about gitlab pipelines

branch string
pattern=^([-a-z0-9]+)$
cacheFolder string
pattern=^[-./_A-z0-9]+$
deployAllAtOnce boolean

Decides whether we deploy all applications at once or we deploy as soon as they're ready to deploy

featureBranchingEnable boolean

If set to true, this will enable a unique URL for the feature branch

deployFeatureBranchEnable boolean
lint object

Configure lint steps in CI

3 nested properties
enable boolean

Enable/disable all linters

allowFailure boolean

Allow/forbid linters failure in CI

linters object

Configure linters settings

techTemplates object

Configure templates steps in CI

smartTemplate string

template to use

security object

Configure security steps in CI

3 nested properties
enable boolean

Enable/disable security jobs

badgeImg string

Badge image for security ci

badgeUrl string

Badge URL for security ci

semantic object
3 nested properties
badgeImgDefault string

Badge image for semantic ci (default)

badgeImg string

Badge image for semantic ci

badgeUrl string

Badge URL for semantic ci

quality object

Configure quality steps in CI

1 nested properties
enable boolean

Enable/disable quality jobs

sonar object

Configure Sonarqube steps in CI

7 nested properties
enable boolean

Enable/disable Sonarqube jobs

dindEnable boolean

Enable/disable Docker-In-Docker fot the scanner

type string

dotnet|java|disable, defaut to autodetection **.java or **.cs. If value = disable then remove the sonar check job

image string

override default image for the scanner

projectPath string

change to this directory before running the scanner

defaults object | null
scannerOptions string

additional sonar command line options

smartChanges object

Configure smart changes detection

6 nested properties
build string

Files that triggers a build. DO NOT USE: for starfish internal usage

deploy string

Files that triggers a deploy. DO NOT USE: for starfish internal usage

yamlLint string

Files that triggers yamllint. DO NOT USE: for starfish internal usage

markdownLint string

Files that triggers markdown-lint. DO NOT USE: for starfish internal usage

enable boolean

Enable changes detection, default false (gitlab feature flag)

mode string

lastCommitInBranch (default) or firstCommitInBranch

fastDeploy object

Configure fast deploy feature

1 nested properties
enable boolean

Enable fast deploy feature, default false (flipt feature flag)

outputFolder string
pattern=^[-./_A-z0-9]+$
workflowName string
pattern=^([-a-z0-9]+)$
workflowRef string

Configure ci workflow template version (branch/tag) to be included

templates object

DO NOT USE: Starfish internal usage

deployment object

Controls how will be deployed your application

6 nested properties
orchestrator string

Orchestrator to use: k8s or nomad (default to k8s)

pattern=^(k8s|nomad)$
manual object

Decides which environment will be deployed manually or not. If not set, feature, integration and staging will be deployed automatically. Production would be manually deployed

allowFailure object

Decides which environment can block the pipeline in case of failure

waitForPreflight object

Decides which environment can wait for preflights

statusFile string

DO NOT USE: Starfish internal usage. This gives the path of the last deployment status file for the smart changes feature

helmAdditionalArgs array

Additional arguments to pass to helm when deploying your application

argoStatusCallback object

Setup automatic monitoring of your application

2 nested properties
enable boolean

Enable Argo callbacks for the deployment (k8s only)

events string[]

Definitions

infoApp object

DO NOT USE: Starfish internal usage. This allows to give several informations about an app

contact string

Slack channel where to get support for this app

pattern=^([-A-z0-9]+)$
owner string
pattern=^#?[-A-z0-9]+$
sil string

Service Importance Level, check https://mykb.eu/x/v4yD

pattern=^(1-VITAL|2-ESSENTIAL|3-NORMAL|0-UNKNOWN)$
ownedComponents object

Gives information about external dependencies such as APIs

connectedComponents object

Map of external product dependencies (sso, other product api, etc)

2 nested properties
itemType object

Gives information about external dependencies such as APIs

itemCount object

Gives information about external dependencies such as APIs

oncall boolean

Is the app on-call?

MyTool object
4 nested properties
domain string
product string
accountId string
domainAccountId string
infoGlobal object

DO NOT USE: Starfish internal usage. This allows to give several informations for the deployment

domain string

Company domain for this repository

product string

Company product for this repository

accountId string

Cloud account ID for the product

domainAccountId string

Cloud account ID for the domain

owner string
pattern=^#?[-A-z0-9]+$
contact string

Slack channel where to get support for this app

pattern=^([-A-z0-9]+)$
MyTool object
4 nested properties
domain string
product string
accountId string
domainAccountId string
slackChannel string
lowercaseStringDashes string
gitTag string
lowercaseStringDashesOrEmpty lowercaseStringDashes | string
semver string
url string
buildDependencies string | string[]
filesystemPath string
filesystemPathOrEmpty filesystemPath | string
zone string

Location of deployment

environments string

Environments for deployment

envZone object

Map of deployment location (environment + zone)

zoneList zone[]
additionalEnv object
name string
shortname string
cluster string
MyTool object
domain string
product string
accountId string
domainAccountId string
componentDependency object

Gives information about external dependencies such as APIs

rto string

Recovery Time Objective

urlPath string
linter Record<string, object>

Linter configuration

techTemplates Record<string, object>

template configuration

templateConfiguration object

Gitlab configuration to include the linter

project string
pattern=^/([+-_A-z0-9]+)?$
ref string

Version of the linter CI to include (tag or branch)

pattern=^[0-9]+(\.[0-9]+\.[0-9]+|-latest)?$
file string

File to load from the linter CI repository

pattern=^[-./_A-z0-9]+\.ya?ml$
ciJob object

Configure job in CI

enable boolean

Enable/disable build

dindEnable boolean

Enable/disable docker in docker

composePath string

Path to the docker-compose file to run in before_script (enables dind automatically)

cmd string

Command line to execute in the test image to run the tests

workdir string
image string | string | string

Container image to use to launch the tests

artifacts string[]

List of artifacts

rules string[]

List of rules

when string
type string
sonar object

Configure Sonarqube steps in CI

enable boolean

Enable/disable Sonarqube jobs

dindEnable boolean

Enable/disable Docker-In-Docker fot the scanner

type string

dotnet|java|disable, defaut to autodetection **.java or **.cs. If value = disable then remove the sonar check job

image string

override default image for the scanner

projectPath string

change to this directory before running the scanner

defaults object | null
scannerOptions string

additional sonar command line options

argoStatusCallback object

Setup automatic monitoring of your application

enable boolean

Enable Argo callbacks for the deployment (k8s only)

events string[]