provisioning-catalog/workflows/deploy-services/workflow.ncl

67 lines
2.2 KiB
Text
Raw Normal View History

let w = import "../../../schemas/lib/workflow.ncl" in
{
deploy_services | w.WorkflowDef = {
id = "deploy-services",
description = "Deploy L3 management services after k0s is operational",
steps = [
{
id = "deploy-postgresql",
targets = [{ component = "postgresql", operation = "install" }],
condition = "k0s-status = operational; nfs-shared storage class exists",
on_error = 'Stop,
},
{
id = "deploy-forgejo",
targets = [{ component = "forgejo", operation = "install" }],
depends_on = ["deploy-postgresql"],
condition = "postgresql-status = operational",
on_error = 'Stop,
},
{
id = "deploy-woodpecker",
targets = [{ component = "woodpecker", operation = "install" }],
depends_on = ["deploy-postgresql", "deploy-forgejo"],
condition = "postgresql-status = operational; forgejo-status = operational",
on_error = 'Stop,
},
{
id = "deploy-zot",
targets = [{ component = "zot", operation = "install" }],
condition = "k0s-status = operational",
on_error = 'Stop,
},
{
id = "validate-all",
targets = [
{ component = "postgresql", operation = "health" },
{ component = "forgejo", operation = "health" },
{ component = "woodpecker", operation = "health" },
{ component = "zot", operation = "health" },
],
depends_on = ["deploy-forgejo", "deploy-woodpecker", "deploy-zot"],
on_error = 'Continue,
},
],
},
metadata | w.WorkflowMetadata = {
id = "deploy-services",
name = "Deploy Management Services",
description = "PostgreSQL + Forgejo + Woodpecker + Zot on k0s cluster mode",
tags = ["deploy", "services", "L3"],
actors = ['Developer, 'Agent],
fsm_dimension = "services-status",
notifications = {
subject_prefix = "workflow.deploy-services",
on_start = true,
on_step = true,
on_complete = true,
on_error = true,
},
backlog_refs = ["bl-001"],
triggers = { manual = true },
},
}