2022-08-20 00:45:03 +02:00
|
|
|
# Some version goes here
|
|
|
|
|
2022-08-22 08:46:35 +02:00
|
|
|
# Version of schema to pull, will also determine level of yaml-language-schema
|
2022-08-20 00:45:03 +02:00
|
|
|
version: "some-upstream-repo-for-ruddle@some-api-version"
|
2022-08-22 08:46:35 +02:00
|
|
|
|
|
|
|
# The name of the service, used when unfolding ruddle, as well as proving tracing on where logs are coming from
|
2022-08-20 00:45:03 +02:00
|
|
|
name: "ruddle_base_plan"
|
2022-08-22 08:46:35 +02:00
|
|
|
# Usually most plugins come from the same registry, as such here we can set a common
|
2022-08-20 00:45:03 +02:00
|
|
|
implicitProvider: git.front.kjuulh.io
|
|
|
|
|
2022-08-22 08:46:35 +02:00
|
|
|
# Plugins / Components, provide either new functionality, or overrides for other plugins.
|
2022-08-20 00:45:03 +02:00
|
|
|
plugins:
|
2022-08-22 08:46:35 +02:00
|
|
|
|
|
|
|
# ruddle package, comes prepacked with ruddle itself
|
|
|
|
# global sets variables that are available to all the other plugins and descendants.
|
|
|
|
# They can either be set inline or be used by child packages. If not added to properties, but not required until the root packages.
|
2022-08-20 00:45:03 +02:00
|
|
|
ruddle/global@latest:
|
2022-08-22 08:46:35 +02:00
|
|
|
# file to look for in child packages for overrides
|
2022-08-20 00:45:03 +02:00
|
|
|
file: ruddle.yaml # is default, can be omitted
|
2022-08-22 08:46:35 +02:00
|
|
|
# path to look for, for overrides
|
2022-08-20 00:45:03 +02:00
|
|
|
path: org
|
|
|
|
orgSettings:
|
|
|
|
- key: "name"
|
|
|
|
required: true # required is default and can be omitted
|
|
|
|
- key: "squad"
|
|
|
|
required: true
|
|
|
|
- key: "domain"
|
|
|
|
required: false
|
2022-08-22 08:46:35 +02:00
|
|
|
|
|
|
|
# Vars are only used in scripts, and is meant to be either environment variables mounted directly
|
|
|
|
# from existing values, or secrets unwrapped by mozilla/sops
|
2022-08-20 00:45:03 +02:00
|
|
|
ruddle/vars@latest:
|
|
|
|
path: vars
|
|
|
|
vars:
|
2022-08-22 08:46:35 +02:00
|
|
|
# when dev is provided as arg, this will be used `. ruddle run vars --features=dev`
|
2022-08-20 00:45:03 +02:00
|
|
|
- when: dev
|
|
|
|
vars:
|
|
|
|
SOME_VARIABLE: SOME_VALUE
|
|
|
|
- when: prod
|
|
|
|
vars:
|
2022-08-22 08:46:35 +02:00
|
|
|
SOME_VARIABLE:
|
|
|
|
from_secret:
|
|
|
|
sops: ruddle_some_variable
|
2022-08-20 00:45:03 +02:00
|
|
|
|
2022-08-22 08:46:35 +02:00
|
|
|
# Actions are your bread and butter for providing scripts and actions to your descendants
|
2022-08-20 00:45:03 +02:00
|
|
|
ruddle/actions@1.0.0:
|
|
|
|
path: actions
|
|
|
|
dependsOn:
|
2022-08-22 08:46:35 +02:00
|
|
|
# Actions usually require an (action-provider) these can be anything between that can execute
|
|
|
|
# something, in this case shell or dagger, but could also be python, go, rust or something else entirely.
|
2022-08-20 00:45:03 +02:00
|
|
|
- ruddle/shell@1.0.0
|
|
|
|
- ruddle/dagger@1.0.0
|
2022-08-22 08:46:35 +02:00
|
|
|
# a global path is set for scripts, this means that each script can be implicit and not require specifying a direct path for each of them
|
2022-08-20 00:45:03 +02:00
|
|
|
basePath: scripts/
|
|
|
|
scripts:
|
|
|
|
notify_team:
|
|
|
|
description: |
|
|
|
|
will send notification on slack
|
|
|
|
args:
|
|
|
|
- arg: "text"
|
|
|
|
- env: "env"
|
|
|
|
- env: "slack_secret"
|
|
|
|
actions:
|
|
|
|
- shell: "send_notification"
|
|
|
|
build_service:
|
|
|
|
description: |
|
|
|
|
some quite long
|
|
|
|
description
|
|
|
|
args:
|
|
|
|
- arg: "version"
|
|
|
|
actions:
|
|
|
|
- shell: get_cache.sh
|
|
|
|
- dagger: download_dependencies
|
|
|
|
- dagger: build_service
|
|
|
|
- shell: upload_service
|
|
|
|
- ruddle: notify_team
|
|
|
|
|