Configuration

Configuration of StackApps is handled through a cluster scoped custom resource of KIND StackAppConfig in the API-GROUP features.criticalstack.com and is application specific.

the Spec of the StackAppConfig contains basic configuration for the application and more specific configuration for each StackApps controller.

apiVersion: features.criticalstack.com/v1alpha1
kind: StackAppConfig
metadata:
  generation: 1
  name: stackapp-config
spec:
  environmentname: dev
  appnamespace: prod-app
  stackapps: #StackApps specific configuration
  stackvalues: #StackValues Specific Configuration
  releases: #StackRelease Specific Configuration 

StackApps Specific Configuration

  stackapps:
    enabled: false

This is a switch to disable the StackApps Controllers and currently is not used

StackValues Specific Configuration

  stackvalues:
    enabled: false
    insecure: false
    tokenName: vault-token
    sources: #array of source configurations

enabled: Currently not implemented.

insecure: uses the hardcoded values provided in annotation form to populate the k8s resources. This is only for testing with non-secure text in a development invironment.

tokenName: the name of the k8s secret that contains the tokens to authenticate to platforms in which secrets and configuration items will be stored.

sources: Array of source configurations. Currently supported source types include artifactory, aws_s3, and vault.

StackValue Sources

      vault:
        name: myvault
        region: west
        type: vault
        route: "http://vault.external.svc:8200"

name: alais to be used for the source

'region: Aws hosting region, only used if source is equal to aws_s3`

type: type of source

route: url in which source is hosted

StackRelease Configuration

    enabled: true
    backendType: traefik
    ingressPort: 30080
    host: myapp.com
    releaseStages:
    - canaryWeight: 20
      stepDuration: "1m"
    - canaryWeight: 50
      stepDuration: "1m"
    - canaryWeight: 100 

enabled: Currently not implemented.

backendType: Specifies infrastructrue to use for deployends. Currently traefik is the only supported value. if this field does not exist StackRelease will not be used.

ingressPort: Port in which the application will be exposed.

host: Hostname of the application.

releaseStages: Array of stages the canary controller will step though. canaryWeight is represented in percent and `stepDuration is represented as a time i.e. "60s" is equal to "1m".

this full example yaml file can be found this link that i might put here at some point