Stack.json Specification

If you want to view the spec for a specific key, use the Table of Contents on the right 👉

This document defines the specification for stack JSON implementation for Facets.Cloud.
For the actual schema, you can refer to the following GitHub page:

To understand how a complete stack specification looks like, check this JSON file in Github for Self-Hosting Kill Bill application.

Spec

The Stack Schema has four native keys, namely, composition, clusterVariablesMeta, stackVariables, and componentVersions.

Let's look at the values that can be used in each of these keywords, their description and usage.

Key

Optional

Type

Description

composition

No

Object

Plugins in use for this stack.

clusterVariablesMeta

No

Object

Variables and Secrets valid for the whole stack. Key are the names of var/secret

stackVariables

Yes

Object

Variables specific to the stack currently in use.

componentVersions

No

Object

Version of Components to hardcode.

Composition

Key

Optional

Type

Description

plugins

No

Array[Object]

List of Plugins that are in use

Plugins

Key

Optional

Type

Description

name

No

String

Name of the plugin.

Example

{"composition": {
        "plugins": [{
            "name": "logging_nfs"
            }]
    }
}

Cluster Variables Meta

Key

Optional

Type

Description

SampleSecretOrVariable

Yes

Object

Sample key for a variable/secret

Sample Secret Or Variable

Key

Optional

Type

Description

secret

No

Boolean

Defines if this is a secret.

value

No

String

Default value of the secret/variable.

exclude_from_app_env

Yes

Boolean

Defines if this should be wired to applications.

Example

{"clusterVariablesMeta": {
    "GOOGLE_CLIENT_ID": {
      "value": "dummy"
    },
    "NEWRELIC_LICENSE_KEY": {
      "value": "dummy"
    },
    "INTERNAL_API_AUTH_TOKEN": {
      "value": "dummy",
      "secret": true
    },
    "ADMIN_USER": {
      "value": "dummy"
    },
    "FLOCK_CC_NOTIFICATION_ENDPOINT": {
    },
    "GOOGLE_CLIENT_SECRET": {
      "secret": true,
      "value": "dummy"
    },
    "TF_GIT_PASSWORD": {
      "secret": true,
      "value": "dummy"
    },
    "TF_GIT_USERNAME": {
      "secret": true,
      "value": "dummy"
    }
}

Stack Variables

Example

{ "stackVariables": {
    "SPRING_PROFILES_ACTIVE": "production",
    "enable_scheduled_test_build": "0",
    "CODEBUILD_THREADPOOL_SIZE": 1,
    "FLOCK_PAUSE_RELEASES_NOTIFICATION_ENDPOINT": false,
    "GITHUB_USERNAME": "dummy",
    "BITBUCKET_PASSWORD": "dummy",
    "GITHUB_PASSWORD": "dummy",
    "BITBUCKET_USERNAME": "dummy",
    "NEWRELIC_API_KEY": "dummy"
  }
}

Component Versions

Key

Optional

Type

Description

KUBERNETES

No

String

Defines the version of Kubernetes. This can take the following two values from an Enum, namely: 1.19 and 1.17.

Example

{"componentVersions": {
  "KUBERNETES": "1.19"
 }
}

Did this page help you?