diff --git a/incubating/octopusdeploy-run-runbook/run_a_runbook.svg b/incubating/octopusdeploy-run-runbook/run_a_runbook.svg new file mode 100644 index 000000000..8e6a0b111 --- /dev/null +++ b/incubating/octopusdeploy-run-runbook/run_a_runbook.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/incubating/octopusdeploy-run-runbook/step.yaml b/incubating/octopusdeploy-run-runbook/step.yaml new file mode 100644 index 000000000..25b6a0513 --- /dev/null +++ b/incubating/octopusdeploy-run-runbook/step.yaml @@ -0,0 +1,179 @@ +version: "1.0" +kind: step-type +metadata: + name: octopusdeploy-run-runbook + version: 1.0.0 + title: Run a runbook in Octopus Deploy + isPublic: true + description: Run a runbook in Octopus Deploy + sources: + - "https://github.com/codefresh-io/steps/tree/master/incubating/octopusdeploy-run-runbook" + stage: incubating + official: true + categories: + - deployment + icon: + type: svg + url: "https://cdn.jsdelivr.net/gh/codefresh-io/steps/incubating/octopusdeploy-run-runbook/run_a_runbook.svg" + background: "#F4F6F8" + maintainers: + - name: OctopusDeploy + examples: + - description: Basic usage of the run a runbook step + workflow: + run-runbook: + type: octopusdeploy-run-runbook + arguments: + OCTOPUS_API_KEY: "${{OCTOPUS_API_KEY}}" + OCTOPUS_URL: "${{OCTOPUS_URL}}" + OCTOPUS_SPACE: "Spaces 1" + PROJECT: "Project Name" + NAME: "Runbook Name" + ENVIRONMENTS: + - "Development" + - "Production" + - description: Complex usage of the run a runbook step + workflow: + run-runbook: + type: octopusdeploy-run-runbook + arguments: + OCTOPUS_API_KEY: "${{OCTOPUS_API_KEY}}" + OCTOPUS_URL: "${{OCTOPUS_URL}}" + OCTOPUS_SPACE: "Spaces 1" + PROJECT: "Project Name" + NAME: "Runbook Name" + ENVIRONMENTS: + - "Development" + - "Production" + VARIABLES: + - "Label:Value" + TENANTS: + - "Tenant 1" + TENANT_TAGS: + - "Tenant tag 1" + USE_GUIDED_FAILURE: "false" +spec: + arguments: |- + { + "definitions": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "name": "octopusdeploy-run-runbook", + "additionalProperties": false, + "patterns": [], + "required": ["OCTOPUS_API_KEY", "OCTOPUS_URL", "OCTOPUS_SPACE", "PROJECT", "NAME", "ENVIRONMENTS"], + "properties": { + "OCTOPUS_API_KEY": { + "type": "string", + "description": "API key for octopus deploy (required)" + }, + "OCTOPUS_URL": { + "type": "string", + "description": "URL of the octopus deploy server (required)" + }, + "OCTOPUS_SPACE": { + "type": "string", + "description": "API key for octopus deploy (required)" + }, + "PROJECT": { + "type": "string", + "description": "The name of the project associated with this release (required)" + }, + "NAME": { + "type": "string", + "description": "Name of the runbook to run (required)" + }, + "ENVIRONMENTS": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The environment names to run in (required)" + }, + "VARIABLES": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Set the value for a prompted variable in the format Label:Value (optional)" + }, + "TENANTS": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Run for these tenants (optional)" + }, + "TENANT_TAGS": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Run for tenants matching these tags (optional)" + }, + "USE_GUIDED_FAILURE": { + "type": "string", + "description": "Enable Guided failure mode (true/false/default) (optional)" + } + } + } + returns: |- + { + "definitions": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "additionalProperties": true, + "patterns": [], + "required": [ + "RUNBOOK_RUNS" + ], + "properties": { + "RUNBOOK_RUNS": { + "type": "array", + "description": "The list of runbook runs", + "items": { + "type": "object", + "additionalProperties": true, + "patterns": [], + "required": [ + "RunbookRunId", + "ServerTaskId" + ], + "properties": { + "RunbookRunId": { + "type": "string", + "description": "The runbook run Id" + }, + "ServerTaskId": { + "type": "string", + "description": "The server task Id" + } + } + } + } + } + } + stepsTemplate: |- + run-runbook: + name: octopusdeploy-run-runbook + image: octopuslabs/octopus-cli + tag: latest + commands: + - OUTPUT=$(octopus runbook run + --project "[[.Arguments.PROJECT]]" + --name "[[.Arguments.NAME]]" + [[- range $val := .Arguments.ENVIRONMENTS ]] --environment "[[ $val ]]" [[ end ]] + [[- range $val := .Arguments.VARIABLES ]] --variable "[[ $val ]]" [[ end ]] + [[- range $val := .Arguments.TENANTS ]] --tenant "[[ $val ]]" [[ end ]] + [[- range $val := .Arguments.TENANT_TAGS ]] --tenant-tag "[[ $val ]]" [[ end ]] + [[- if .Arguments.USE_GUIDED_FAILURE ]] --guided-failure "[[ .Arguments.USE_GUIDED_FAILURE ]]" [[ end ]] + --output-format json + --no-prompt) + - cf_export RUNBOOK_RUNS=$OUTPUT + environment: + - 'OCTOPUS_URL=[[.Arguments.OCTOPUS_URL]]' + - 'OCTOPUS_API_KEY=[[.Arguments.OCTOPUS_API_KEY]]' + - 'OCTOPUS_SPACE=[[.Arguments.OCTOPUS_SPACE]]' + delimiters: + left: "[[" + right: "]]"