Changes from 3.12 to 4.0.3 branch
Last updated
Last updated
Changes from 3.12 to 4.0.3 branch (standard-gitops-repo) Repo URL: https://github.com/OpsMx/standard-gitops-repo
Removed the “rest enabled” section
Added the below section:
message-broker:
endpoint:
name: rabbitmq #Currently support rabbitmq only
username: rabbitmq #rabbitmq username to connect
password: Networks123 #rabbitmq password to connect
host: rabbitmq-service #rabbitmq endpoint to connect
port: 5672 #rabbitmq port to connect
spinnaker:
name: preview-saas #Should be same as account name given in spinnaker setup
extensibility:
plugins:
Opsmx.EchoEventPlugin:
enabled: true
version: 1.0.1
config: null
Added the below section from line number 17 to 40.
#Please uncomment below section if spinnakerrbac is enabled and provide appropriate permissions
#auth.permissions.provider.pipeline: aggregate
#auth.permissions.source.pipeline.prefix:
# enabled: true
# prefixes:
# - prefix: "dev*"
# permissions:
# READ:
# - "devteam-group"
# - "qateam"
# WRITE:
# - "devteam-group"
# EXECUTE:
# - "devteam-group"
# - prefix: "qa*"
# permissions:
# READ:
# - "qateam"
# - "devteam-group"
# WRITE:
# - "qateam"
# EXECUTE:
# - "qateam"
Added a new file named “fiat-overrides.yml” inside the in the path “default/profiles/fiat-overrides.yml” with the below manifest:
services:
clouddriver:
baseUrl: http://stormdriver-ro:8090
enabled: true
global.spinnaker.timezone: America/Los_Angeles
Added a new file named “gate-overrides.yml” inside the in the path “default/profiles/gate-overrides.yml” with the below manifest:
services:
clouddriver:
baseUrl: http://stormdriver-ro:8090
enabled: true
echo:
baseUrl: http://spin-echo-worker:8089
enabled: true
global.spinnaker.timezone: America/Los_Angeles
In line 14, label is changed from pipelineSyncToGit to Pipeline sync to GitHub-OpsMx.
In line 17, description is changed from Update git with pipelines in Spinnaker to Backup the applications and pipelines from Spinnaker to the GitHub.
In line 19, application is changed from sampleapp to "${execution.application}".
In line 25, label is changed from spinnaker applications to Spinnaker applications.
In line 30, label is changed from pipeline names to Pipeline names.
job:
preconfigured:
kubernetes:
- label: Pipeline sync to GitHub-OpsMx
cloudProvider: kubernetes
credentials: default
description: Backup the applications and pipelines from Spinnaker to the GitHub
account: default
application: "${execution.application}"
type: pipelineSyncToGit
waitForCompletion: true
parameters:
- defaultValue: "app1,app2,..."
description: "Please enter spinnaker applications separated by comma"
label: Spinnaker applications
mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
name: spinnaker_applications
- defaultValue: "pipeline1,pipeline2..."
description: "Please enter spinnaker pipelines separated by comma"
label: Pipieline names
mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
name: spinnaker_pipelines
- defaultValue: ""
In line 117, label is changed from pipelineSyncToSpinnaker to Pipeline sync to Spinnaker-OpsMx.
In line 120, description is changed from Sync Spinnaker pipelines from git to Syncup the applications and pipelines from GitHub to the Spinnaker.
In line 122, application is changed from sampleapp to "${execution.application}".
In line 128, label is changed from spinnaker applications to Spinnaker Applications.
In line 133, label is changed from pipeline names to Pipeline Names.
secretName: git-token
restartPolicy: Never
serviceAccountName: default
- label: Pipeline sync to Spinnaker-OpsMx
cloudProvider: kubernetes
credentials: default
description: Syncup the applications and pipelines from GitHub to the Spinnaker
account: default
application: "${execution.application}"
type: pipelineSyncToSpinnaker
waitForCompletion: true
parameters:
- defaultValue: "app1,app2,..."
description: "Please enter spinnaker applications separated by comma"
label: Spinnaker Applications
mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
name: spinnaker_applications
- defaultValue: "pipeline1,pipeline2..."
description: "Please enter spinnaker pipelines separated by comma"
label: Pipieline Names
mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
name: spinnaker_pipelines
- defaultValue: ""
Added the below section before the “webhook” section starting from line 220 in v4.0.3.
label: "Update PR-OpsMx"
cloudProvider: kubernetes
credentials: default
application: "${execution.application}"
description: Update the PR with the comment
account: default
type: customPRStage
waitForCompletion: true
parameters:
- defaultValue: ""
description: Please enter the webhook url.
label: Webhook URL
mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
name: url
- defaultValue: ""
description: Please enter method.
label: Method
mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
name: method
- defaultValue: ""
description: Please enter payload.
label: Payload
mapping: 'manifest.spec.template.spec.containers[0].env[2].value'
name: payload
manifest:
apiVersion: batch/v1
kind: Job
metadata:
generateName: updateprjob-
namespace: SPINNAKER_NAMESPACE
labels:
stage: opsmx-custom
stagetype: updatepr
spec:
backoffLimit: 0
template:
spec:
containers:
- command:
- sh
- /tmp/initscript/run.sh
env:
- name: url
value:
- name: method
value:
- name: payload
value:
- name: accesstoken
valueFrom:
secretKeyRef:
key: accesstoken
name: updatepr-secrets
image: 'opsmxdev/apline-with-curl'
imagePullPolicy: Always
name: updatepr
volumeMounts:
- mountPath: /tmp/initscript/
name: initscript
restartPolicy: Never
volumes:
- configMap:
default: 420
name: updatepr-config
name: initscript
- label: Custom notification-OpsMx
cloudProvider: kubernetes
credentials: default
application: "${execution.application}"
description: Email notification that supports SPEL expression as mailid
account: default
type: customnotification
waitForCompletion: true
parameters:
- defaultValue: ""
description: Please enter the Email address
label: Email
mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
name: email
- defaultValue: ""
description: Please enter CC mail address with "," as saperated for more mails.
label: CC Address
mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
name: ccmail
- defaultValue: ""
description: Please enter Subject
label: Subject
mapping: 'manifest.spec.template.spec.containers[0].env[2].value'
name: subject
- defaultValue: ""
description: Please enter body message.
label: Body Message
mapping: 'manifest.spec.template.spec.containers[0].env[3].value'
name: body
manifest:
apiVersion: batch/v1
kind: Job
metadata:
generateName: smtpjob-
namespace: SPINNAKER_NAMESPACE
labels:
stage: opsmx-custom
stagetype: customnotification
spec:
backoffLimit: 0
template:
spec:
containers:
- command:
- sh
- /tmp/initscript/run.sh
env:
- name: email
value:
- name: ccmail
value:
- name: subject
value:
- name: body
value:
- name: ssmtpemail
valueFrom:
secretKeyRef:
key: ssmtpemail
name: ssmtp-secrets
- name: emailpassword
valueFrom:
secretKeyRef:
key: emailpassword
name: ssmtp-secrets
image: 'opsmxdev/apline-with-curl'
imagePullPolicy: Always
name: email-notify
volumeMounts:
- mountPath: /tmp/initscript/
name: initscript
restartPolicy: Never
volumes:
- configMap:
default: 420
name: email-config
name: initscript
- label: Ansible-OpsMx
cloudProvider: kubernetes
credentials: default
application: "${execution.application}"
description: Run playbooks to a single VM node
account: default
type: customAnsibleStage
waitForCompletion: true
parameters:
- defaultValue: ""
description: Please enter the Git repo url with out https://
label: Git repo
mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
name: gitrepo
- defaultValue: ""
description: Please enter ansiblefile location.
label: Ansible file
mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
name: ansiblefileepo
- defaultValue: ""
description: Please enter override inventoryfile.
label: Inventory file
mapping: 'manifest.spec.template.spec.containers[0].env[2].value'
name: inventoryfile
manifest:
apiVersion: batch/v1
kind: Job
metadata:
generateName: ansiblejob-
namespace: SPINNAKER_NAMESPACE
labels:
stage: opsmx-custom
stagetype: ansible
spec:
backoffLimit: 0
template:
spec:
containers:
- command:
- bash
- /tmp/initscript/run.sh
env:
- name: gitrepo
value:
- name: ansiblefile
value:
- name: inventoryfile
value:
- name: gitusername
valueFrom:
secretKeyRef:
key: gitusername
name: ansible-secrets
- name: gitpassword
valueFrom:
secretKeyRef:
key: gitpassword
name: ansible-secrets
- name: nodeuser
valueFrom:
secretKeyRef:
key: nodeuser
name: ansible-secrets
- name: userpassword
valueFrom:
secretKeyRef:
key: userpassword
name: ansible-secrets
image: 'opsmx11/ansible-job-image:v2'
imagePullPolicy: Always
name: ansible-test
volumeMounts:
- mountPath: /tmp/initscript/
name: initscript
restartPolicy: Never
volumes:
- configMap:
default: 420
name: ansible-config
name: initscript
- label: Terraform plan-OpsMx
cloudProvider: kubernetes
application: "${execution.application}"
description: Stage for Terraform plan operation
account: default
type: customTSPlanJobStage
waitForCompletion: true
parameters:
- defaultValue: ""
description: "Please enter the AWS Assure role configured account name."
label: AWS account name
mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
name: awsrole
- defaultValue: ""
description: "Please enter the namespace of spinnaker in HA mode."
label: Spinnaker Namespace
mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
name: namespace
- defaultValue: ""
description: "Please enter the artifact account name from artifactsaccounts.json, Account where you have tf script present.It is optional if not specified default branch is taken from the configmap"
label: Tf script account
mapping: 'manifest.spec.template.spec.containers[0].env[2].value'
name: scriptaccount
- defaultValue: ""
description: "Please enter the Git Repo Account of TF script."
label: Tf Plan script Repo
mapping: 'manifest.spec.template.spec.containers[0].env[3].value'
name: repo
- defaultValue: ""
description: Please enter Location of terraform script in the repo.
label: Tf Location
mapping: 'manifest.spec.template.spec.containers[0].env[4].value'
name: location
- defaultValue: ""
description: Please enter overrideVariableFile path if you want to override variables.
label: Override file
mapping: 'manifest.spec.template.spec.containers[0].env[5].value'
name: overridefile
- defaultValue: ""
description: Please enter terraform workspace name.
label: Terraform Workspace
mapping: 'manifest.spec.template.spec.containers[0].env[6].value'
name: TF_WORKSPACE
manifest:
apiVersion: batch/v1
kind: Job
metadata:
generateName: terraspinplanjob-
namespace: SPINNAKER_NAMESPACE
labels:
stage: opsmx-custom
stagetype: terraform
spec:
backoffLimit: 0
template:
spec:
containers:
- command:
- role.sh
env:
- name: awsrole
value:
- name: namespace
value:
- name: scriptaccount
value:
- name: repo
value:
- name: location
value:
- name: overridefile
value:
- name: TF_WORKSPACE
value:
- name: command
value: plan
image: 'quay.io/opsmxpublic/customterraformstage:terraform-1.1.7-isd-backendconfig'
imagePullPolicy: Always
name: terraspinplan
volumeMounts:
- mountPath: /home/terraspin/opsmx/app/config/
name: opsmx-terraspin-backend-config
restartPolicy: Never
volumes:
- secret:
secretName: terraspinbackendconfig
name: opsmx-terraspin-backend-config
- label: Terraform apply-OpsMx
cloudProvider: kubernetes
application: "${execution.application}"
description: Stage for Terraform apply operation
account: default
type: customTSApplyJobStage
waitForCompletion: true
parameters:
- defaultValue: ""
description: "Please enter the AWS Assure role configured account name."
label: AWS account name
mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
name: awsrole
- defaultValue: ""
description: "Please enter the namespace of spinnaker in HA mode."
label: Spinnaker Namespace
mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
name: namespace
- defaultValue: ""
description: "Please enter the artifact account name from artifactsaccounts.json, Account where you have tf script present."
label: Tf script account
mapping: 'manifest.spec.template.spec.containers[0].env[2].value'
name: scriptaccount
- defaultValue: ""
description: "Please enter the Git Repo Account of TF script."
label: Tf Plan script Repo
mapping: 'manifest.spec.template.spec.containers[0].env[3].value'
name: repo
- defaultValue: ""
description: Please enter Location of terraform script in the repo.
label: Tf Location
mapping: 'manifest.spec.template.spec.containers[0].env[4].value'
name: location
- defaultValue: ""
description: Please enter overrideVariableFile path if you want to override variables.
label: Override file
mapping: 'manifest.spec.template.spec.containers[0].env[5].value'
name: overridefile
- defaultValue: ""
description: Please enter terraform workspace name.
label: Terraform Workspace
mapping: 'manifest.spec.template.spec.containers[0].env[6].value'
name: TF_WORKSPACE
manifest:
apiVersion: batch/v1
kind: Job
metadata:
generateName: terraspinapplyjob-
namespace: SPINNAKER_NAMESPACE
labels:
stage: opsmx-custom
stagetype: terraform
spec:
backoffLimit: 0
template:
spec:
containers:
- command:
- role.sh
env:
- name: awsrole
value:
- name: namespace
value:
- name: scriptaccount
value:
- name: repo
value:
- name: location
value:
- name: overridefile
value:
- name: TF_WORKSPACE
value:
- name: command
value: apply
image: 'quay.io/opsmxpublic/customterraformstage:terraform-1.1.7-isd-backendconfig'
imagePullPolicy: Always
name: terraspinapply
volumeMounts:
- mountPath: /home/terraspin/opsmx/app/config/
name: opsmx-terraspin-backend-config
restartPolicy: Never
volumes:
- secret:
secretName: terraspinbackendconfig
name: opsmx-terraspin-backend-config
- label: Terraform destroy-OpsMx
application: "${execution.application}"
cloudProvider: kubernetes
credentials: default
description: Stage for Terraform destroy operation
account: default
type: customTSDestroyJobStage
waitForCompletion: true
parameters:
- defaultValue: ""
description: "Please enter the AWS Assure role configured account name."
label: AWS account name
mapping: 'manifest.spec.template.spec.containers[0].env[0].value'
name: awsrole
- defaultValue: ""
description: "Please enter the namespace of spinnaker in HA mode."
label: Spinnaker Namespace
mapping: 'manifest.spec.template.spec.containers[0].env[1].value'
name: namespace
- defaultValue: ""
description: "Please enter the artifact account name from artifactsaccounts.json, Account where you have tf script present."
label: Tf script account
mapping: 'manifest.spec.template.spec.containers[0].env[2].value'
name: scriptaccount
- defaultValue: ""
description: "Please enter the Git Repo Account of TF script."
label: Tf Plan script Repo
mapping: 'manifest.spec.template.spec.containers[0].env[3].value'
name: repo
- defaultValue: ""
description: Please enter Location of terraform script in the repo.
label: Tf Location
mapping: 'manifest.spec.template.spec.containers[0].env[4].value'
name: location
- defaultValue: ""
description: Please enter overrideVariableFile path if you want to override variables.
label: Override file
mapping: 'manifest.spec.template.spec.containers[0].env[5].value'
name: overridefile
- defaultValue: ""
description: Please enter terraform workspace name.
label: Terraform Workspace
mapping: 'manifest.spec.template.spec.containers[0].env[6].value'
name: TF_WORKSPACE
manifest:
apiVersion: batch/v1
kind: Job
metadata:
generateName: terraspindestroyjob-
namespace: SPINNAKER_NAMESPACE
labels:
stage: opsmx-custom
stagetype: terraform
spec:
backoffLimit: 0
template:
spec:
containers:
- command:
- role.sh
env:
- name: awsrole
value:
- name: namespace
value:
- name: scriptaccount
value:
- name: repo
value:
- name: location
value:
- name: overridefile
value:
- name: TF_WORKSPACE
value:
- name: command
value: destroy
image: 'quay.io/opsmxpublic/customterraformstage:terraform-1.1.7-isd-backendconfig'
imagePullPolicy: Always
name: terraspindestroy
volumeMounts:
- mountPath: /home/terraspin/opsmx/app/config/
name: opsmx-terraspin-backend-config
restartPolicy: Never
volumes:
- secret:
secretName: terraspinbackendconfig
name: opsmx-terraspin-backend-config
Under the “webhook” section: (line 707 in v4.0.3 and line 222 in 3.12)
The label is changed from "ServiceNow-Create Change Request" to "Ansible AWX - Create Instance Group".
label: "Ansible AWX - Create Instance Group"
Added the below section under the “webhook” section after the label: "Ansible AWX - Create Instance Group" line: (line 708 in v4.0.3 and line 223 in 3.12)
label: "Ansible AWX - Create Instance Group"
type: AnsibleAWXCreateInstanceGroup
enabled: true
description: Stage to create an instance group in ansible awx
method: POST
url: http://<URL>/api/v2/instance_groups/
customHeaders:
Authorization: Basic USER:PASSWORD-BASE64
Content-Type: application/json
payload: |-
{
"credential": "${parameterValues['credentialid']}",
"name": "${parameterValues['name']}",
"pod_spec_override": "${parameterValues['podspecoverride']}",
"policy_instance_list": [${parameterValues['policyinstancelist']}],
"is_container_group": ${parameterValues['iscontainergroup']},
"policy_instance_minimum": ${parameterValues['policyinstanceminimum']},
"policy_instance_percentage": ${parameterValues['policyinstancepercentage']}
}
parameters:
- label: Name
name: name
description: Name of this instance group. (string, required)
type: string
- label: Credential Id
name: credentialid
description: Credential id. Leave it blank if not needed
type: string
- label: Policy Instance Percentage
name: policyinstancepercentage
description: Minimum percentage of all instances that will be automatically assigned to this group when new instances come online. (integer, default=0)
type: string
- label: Policy Instance Minimum
name: policyinstanceminimum
description: Static minimum number of Instances that will be automatically assign to this group when new instances come online. (integer, default=0)
type: string
- label: Policy Instance List
name: policyinstancelist
description: List of exact-match Instances that will be assigned to this group (json, default=``). Provide value in "" and multiple values by coma seperated
type: string
- label: Pod Spec Override
name: podspecoverride
description: (string, default="")
type: string
- label: Is Container Group
name: iscontainergroup
description: true or false
type: string
- label: "Ansible AWX - Update Credential of Instance Group"
type: AnsibleAWXUpdatecredentialofInstanceGroup
enabled: true
description: Stage to update credential of an instance group in ansible awx
method: PATCH
url: http://<URL>/api/v2/instance_groups/${parameterValues['name']}/
customHeaders:
Authorization: Basic USER:PASSWORD-BASE64
Content-Type: application/json
payload: |-
{
"credential": "${parameterValues['credentialid']}",
"name": "${parameterValues['name']}"
"is_container_group": true
}
parameters:
- label: Name
name: name
description: Name of this instance group. (string, required)
type: string
- label: Credential Id
name: credentialid
description: Id of credential to which you want to change
type: string
- label: "Ansible AWX - Update Instance List of Instance Group"
type: AnsibleAWXUpdateInstanceListofInstanceGroup
enabled: true
description: Stage to update instance list an instance group in ansible awx
method: PATCH
url: http://<URL>/api/v2/instance_groups/${parameterValues['name']}/
customHeaders:
Authorization: Basic USER:PASSWORD-BASE64
Content-Type: application/json
payload: |-
{
"name": "${parameterValues['name']}",
"policy_instance_list": [${parameterValues['policyinstancelist']}]
}
parameters:
- label: Name
name: name
description: Name of this instance group. (string, required)
type: string
- label: Policy Instance List
name: policyinstancelist
description: List of exact-match Instances that will be assigned to this group (json, default=``). Provide value in "" and multiple values by coma seperated
type: string
- label: "Ansible AWX - Update Policy Instance Minimum of Instance Group"
type: AnsibleAWXUpdatePolicyInstanceMinimumofInstanceGroup
enabled: true
description: Stage to update policy instance minimum an instance group in ansible awx
method: PATCH
url: http://<URL>/api/v2/instance_groups/${parameterValues['name']}/
customHeaders:
Authorization: Basic USER:PASSWORD-BASE64
Content-Type: application/json
payload: |-
{
"name": "${parameterValues['name']}",
"policy_instance_minimum": ${parameterValues['policyinstanceminimum']}
}
parameters:
- label: Name
name: name
description: Name of this instance group. (string, required)
type: string
- label: Policy Instance Minimum
name: policyinstanceminimum
description: Static minimum number of Instances that will be automatically assign to this group when new instances come online. (integer, default=0)
type: string
- label: "Ansible AWX - Update Policy Instance Percentage of Instance Group"
type: AnsibleAWXUpdatePolicyInstancePercentageofInstanceGroup
enabled: true
description: Stage to update policy instance percentage of an instance group in ansible awx
method: PATCH
url: http://<URL>/api/v2/instance_groups/${parameterValues['name']}/
customHeaders:
Authorization: Basic USER:PASSWORD-BASE64
Content-Type: application/json
payload: |-
{
"name": "${parameterValues['name']}",
"policy_instance_percentage": ${parameterValues['policyinstancepercentage']}
}
parameters:
- label: Name
name: name
description: Name of this instance group. (string, required)
type: string
- label: Policy Instance Percentage
name: policyinstancepercentage
description: Minimum percentage of all instances that will be automatically assigned to this group when new instances come online. (integer, default=0)
type: string
- label: "Ansible AWX - Update Pod Spec Override of Instance Group"
type: AnsibleAWXUpdatePodSpecOverrideofInstanceGroup
enabled: true
description: Stage to update pod spec override of an instance group in ansible awx
method: PATCH
url: http://<URL>/api/v2/instance_groups/${parameterValues['name']}/
customHeaders:
Authorization: Basic USER:PASSWORD-BASE64
Content-Type: application/json
payload: |-
{
"name": "${parameterValues['name']}",
"pod_spec_override": "${parameterValues['podspecoverride']}"
}
parameters:
- label: Name
name: name
description: Name of this instance group. (string, required)
type: string
- label: Pod Spec Override
name: podspecoverride
description: (string, default="")
type: string
- label: "Ansible AWX - Name of Instance Group"
type: AnsibleAWXUpdateNameofInstanceGroup
enabled: true
description: Stage to update name of an instance group in ansible awx
method: PATCH
url: http://<URL>/api/v2/instance_groups/${parameterValues['currentname']}/
customHeaders:
Authorization: Basic USER:PASSWORD-BASE64
Content-Type: application/json
payload: |-
{
"name": "${parameterValues['changename']}"
}
parameters:
- label: Current Name
name: currentname
description: Name of the instance group which exists
type: string
- label: Change Name
name: changename
description: To what you need to change
type: string
- label: "Ansible AWX - Create Job Template"
type: AnsibleAWXCreateJobTemplate
enabled: true
description: Stage to create job template in ansible awx
method: POST
url: http://<URL>/api/v2/job_templates/
customHeaders:
Authorization: Basic USER:PASSWORD-BASE64
Content-Type: application/json
payload: |-
{
"allow_callbacks": "${parameterValues['allowcallbacks']}",
"allow_simultaneous": "${parameterValues['allowsimultaneous']}",
"ask_credential_on_launch": "${parameterValues['askcredentialonlaunch']}",
"ask_diff_mode_on_launch": "${parameterValues['askdiffmodeonlaunch']}",
"ask_inventory_on_launch": "${parameterValues['askinventoryonlaunch']}",
"ask_job_type_on_launch": "${parameterValues['askjobtypeonlaunch']}",
"ask_limit_on_launch": "${parameterValues['asklimitonlaunch']}",
"ask_scm_branch_on_launch": "${parameterValues['askscmbranchonlaunch']}",
"ask_skip_tags_on_launch": "${parameterValues['askskiptagsonlaunch']}",
"ask_tags_on_launch": "${parameterValues['asktagsonlaunch']}",
"ask_variables_on_launch": "${parameterValues['askvariablesonlaunch']}",
"ask_verbosity_on_launch": "${parameterValues['askverbosityonlaunch']}",
"become_enabled": "${parameterValues['becomeenabled']}",
"description": "${parameterValues['description']}",
"diff_mode": "${parameterValues['diffmode']}",
"extra_vars": "${parameterValues['extravars']}",
"forks": "${parameterValues['forks']}",
"host_config_key": "${parameterValues['hostconfigkey']}",
"job_slice_count": "${parameterValues['jobslicecount']}",
"job_tags": "${parameterValues['jobtags']}",
"job_type": "${parameterValues['jobtype']}",
"limit": "${parameterValues['limit']}",
"name": "${parameterValues['name']}",
"playbook": "${parameterValues['playbook']}",
"scm_branch": "${parameterValues['scmbranch']}",
"skip_tags": "${parameterValues['skiptags']}",
"timeout": "${parameterValues['timeout']}",
"use_fact_cache": "${parameterValues['usefactcache']}",
"verbosity": "${parameterValues['verbosity']}",
"webhook_service": "${parameterValues['webhookservice']}",
"project": "${parameterValues['project']}",
"webhook_credential": "${parameterValues['webhook_credential']}",
"inventory": "${parameterValues['inventory']}",
"execution_environment": "${parameterValues['executionenvironment']}"
}
parameters:
- label: Allow Callbacks
name: allowcallbacks
description: true or false
type: string
- label: Allow Simultaneous
name: allowsimultaneous
description: true or false
type: string
- label: Ask Credential on Launch
name: askcredentialonlaunch
description: true or false
type: string
defaultValue: false
- label: Ask Diff Mode on Launch
name: askdiffmodeonlaunch
description: true or false
type: string
defaultValue: false
- label: Ask Inventory On Launch
name: askinventoryonlaunch
description: true or false
type: string
defaultValue: false
- label: Ask Job Type on Launch
name: askjobtypeonlaunch
description: true or false
type: string
defaultValue: false
- label: Ask Limit on Launch
name: asklimitonlaunch
description: true or false
type: string
defaultValue: false
- label: Ask Scm Branch on Launch
name: askscmbranchonlaunch
description: true or false
type: string
defaultValue: false
- label: Ask Skip Tags On Launch
name: askskiptagsonlaunch
description: true or false
type: string
defaultValue: false
- label: Ask Tags on Launch
name: asktagsonlaunch
description: true or false
type: string
defaultValue: false
- label: Ask Variables on Launch
name: askvariablesonlaunch
description: true or false
type: string
defaultValue: false
- label: Ask Verbosity on Launch
name: askverbosityonlaunch
description: true or false
type: string
defaultValue: false
- label: Become Enabled
name: becomeenabled
description: true or false
type: string
defaultValue: false
- label: Description
name: description
description: Description about job template
type: string
- label: Diff Mode
name: diffmode
description: true or false. If enabled, textual changes made to any templated files on the host are shown in the standard output.
type: string
defaultValue: false
- label: Extra Vars
name: extravars
description: (json, default=``)
type: string
- label: Forks
name: forks
description: (integer, default=0)
type: string
defaultValue: 0
- label: Host Config Key
name: hostconfigkey
description: (string, default="")
type: string
- label: Job Slice Count
name: jobslicecount
description: The number of jobs to slice into at runtime. Will cause the Job Template to launch a workflow if value is greater than 1. (integer, default=1)
type: string
defaultValue: 1
- label: Job Tags
name: jobtags
description: (string, default="")
type: string
- label: Job Type
name: jobtype
description: Run(default) or Check
type: string
defaultValue: Run
- label: Limit
name: limit
description: (string, default="")
type: string
- label: Name
name: name
description: name
type: string
- label: playbook
name: playbook
description: (string, default="") Eg:- hello_world.yml
type: string
- label: Scm Branch
name: scmbranch
description: Branch to use in job run. Project default used if blank. Only allowed if project allow_override field is set to true. (string, default="")
type: string
- label: Skip Tags
name: skiptags
description: (string, default="")
type: string
- label: Timeout
name: timeout
description: The amount of time (in seconds) to run before the task is canceled. (integer, default=0)
type: string
defaultValue: 0
- label: Use Fact Cache
name: usefactcache
description: If enabled, Tower will act as an Ansible Fact Cache Plugin; persisting facts at the end of a playbook run to the database and caching facts for use by Ansible. (boolean, default=False)
type: string
defaultValue: false
- label: Verbosity
name: verbosity
description: 0(Normal)(default) - 1(Verbose) - 2(More Verbose) - 3(Debug) - 4(Connection Debug) - 5(WinRM Debug)
type: string
defaultValue: 0
- label: webhook_service
name: webhook_service
description: Service that webhook requests will be accepted from (choice) Eg:- github gitlab
type: string
- label: Project
name: project
description: (id, default=``)
type: string
- label: Webhook Credential
name: webhookcredential
description: Personal Access Token for posting back the status to the service API (id, default=null)
type: string
defaultValue: null
- label: Inventory
name: inventory
description: (id, default=``)
type: string
- label: Execution Environment
name: executionenvironment
description: (id, default=null)
type: string
defaultValue: null
- label: "Ansible AWX - Create Project"
type: AnsibleAWXCreateProject
enabled: true
description: Stage to create a project in ansible awx
method: POST
url: http://<URL>/api/v2/projects/
customHeaders:
Authorization: Basic USER:PASSWORD-BASE64
Content-Type: application/json
payload: |-
{
"name": "${parameterValues['name']}",
"description": "${parameterValues['description']}",
"local_path": "${parameterValues['localpath']}",
"scm_type": "${parameterValues['scmtype']}",
"scm_url": "${parameterValues['scmurl']}",
"scm_branch": "${parameterValues['scmbranch']}",
"scm_refspec": "${parameterValues['scmrefspec']}",
"scm_clean": "${parameterValues['scmclean']}",
"scm_delete_on_update": "${parameterValues['scmdeleteonupdate']}",
"credential": "${parameterValues['credential']}",
"timeout": "${parameterValues['timeout']}",
"organization": "${parameterValues['organization']}",
"scm_update_on_launch": "${parameterValues['scmupdateonlaunch']}",
"scm_update_cache_timeout": "${parameterValues['scmupdatecachetimeout']}",
"allow_override": "${parameterValues['allow_override']}",
"custom_virtualenv": "${parameterValues['customvirtualenv']}"
}
parameters:
- label: Name
name: name
description: Name of the project
type: string
- label: Description
name: description
description: Description for the project
type: string
- label: Local Path
name: localpath
description: Local path (relative to PROJECTS_ROOT) containing playbooks and related files for this project. (string, default="")
type: string
- label: Scm Type
name: scmtype
description: Specifies the source control system used to store the project. (choice). "" (Manual)(default) - git (Git) - hg (Mercurial) - svn (Subversion) - insights (Red Hat Insights) - archive (Remote Archive)
type: string
- label: Scm Url
name: scmurl
description: The location where the project is stored. (string, default="") Eg:- https://github.com/ansible/test-playbooks.git
type: string
- label: Scm Branch
name: scmbranch
description: Specific branch, tag or commit to checkout. (string, default="")
type: string
- label: Scm Refspec
name: scmrefspec
description: For git projects, an additional refspec to fetch. (string, default="")
type: string
- label: Scm Clean
name: scmclean
description: true or false. Discard any local changes before syncing the project. (boolean, default=False)
type: string
defaultValue: false
- label: Scm Delete on Update
name: scmdeleteonupdate
description: true or false. Delete the project before syncing. (boolean, default=False)
type: string
defaultValue: false
- label: Credential
name: credential
description: (id, default=``)
type: string
- label: Timeout
name: timeout
description: The amount of time (in seconds) to run before the task is canceled. (integer, default=0)
type: string
defaultValue: 0
- label: Organization
name: organization
description: The organization used to determine access to this template. (id, default=``)
type: string
- label: Scm Update on Launch
name: scmupdateonlaunch
description: Update the project when a job is launched that uses the project. (boolean, default=False)
type: string
defaultValue: false
- label: Scm Update Cache Timeout
name: scmupdatecachetimeout
description: The number of seconds after the last project update ran that a new project update will be launched as a job dependency. (integer, default=0)
type: string
defaultValue: 0
- label: Allow Override
name: allowoverride
description: Allow changing the SCM branch or revision in a job template that uses this project. (boolean, default=False)
type: string
defaultValue: false
- label: Custom Virtualenv
name: customvirtualenv
description: Local absolute file path containing a custom Python virtualenv to use (string, default="")
type: string
- label: "Ansible AWX - Get List of Job Templates"
type: AnsibleAWXUGetListofJobTemplates
enabled: true
description: Stage to list the job templates available
method: GET
url: http://<URL>/api/v2/job_templates/
customHeaders:
Authorization: Basic USER:PASSWORD-BASE64
Content-Type: application/json
payload: ""
parameters: ""
- label: "Ansible AWX - Invoke a Job Template"
type: AnsibleAWXInvokeJobTemplate
enabled: true
description: Stage to invoke job template in ansible awx.
method: POST
url: http://<URL>/api/v2/job_templates/${parameterValues['jobtemplateid']}/launch/
customHeaders:
Authorization: Basic USER:PASSWORD-BASE64
Content-Type: application/json
payload: ""
parameters:
- label: Job Template Id
name: jobtemplateid
description: Job template id
type: string
- label: "ServiceNow: Create a change request-OpsMx"
In line 1234 in v4.0.3 and line 225 in 3.12: The description is changed from Custom stage for servicenow normal request creation to ServiceNow normal request creation.
description: ServiceNow normal request creation
In line 1289 in v4.0.3 and lines 200 and 201 in 3.12: the label is changed from "ServiceNow-Change State of Change Request" to "ServiceNow: Change request Status-OpsMx".
In line 1292 in v4.0.3 and lines 284 in 3.12: the description is changed from Custom stage to change the state of the normal request to ServiceNow change the state of the normal request.
name: type
description: Emergency, Normal etc
type: string
- label: "ServiceNow: Change request Status-OpsMx"
type: ChangeStateofChangeRequest
enabled: true
description: ServiceNow change the state of the normal request
method: PATCH
url: SERVICENOW_URL/api/sn_chg_rest/v1/change/${parameterValues['sysid']}
customHeaders:
In line 1316 in v4.0.3 and lines 308 in 3.12: the label is changed from "ServiceNow-Add Work Note to Change Request" to "ServiceNow: Add a work note to the change request-OpsMx".
In line 1319 in v4.0.3 and lines 312 in 3.12: the description is changed from Custom stage to add work note to normal request to ServiceNow add work note to normal request.
name: sysid
description: Sys id of the request. Can get from url of the request Eg-7067852307303010268affa08c1ed0a6
type: string
- label: "ServiceNow: Add a work note to the change request-OpsMx"
type: AddWorkNotetoChangeRequst
enabled: true
description: ServiceNow add work note to normal request
method: PATCH
url: SERVICENOW_URL/api/sn_chg_rest/change/${parameterValues['sysid']}
customHeaders:
Under the “parameters” section:
line 1338 in v4.0.3 and line 331 in 3.12: the label is changed from "Service Now: Wait for state" to "ServiceNow: Wait for state-OpsMx".
In line 1341 in v4.0.3 and line 335 in 3.12: the description is changed from Custom stage that waits for a specific state on a Service Now Issue to Waits for a specific state on a ServiceNow issue.
parameters:
- label: Work Notes
name: worknotes
description: Add work notes to the request
type: string
- label: sys_id
name: sysid
description: Sys id of the request. Can get from url of the request Eg-7067852307303010268affa08c1ed0a6
type: string
- label: "ServiceNow: Wait for state-OpsMx"
type: waitServiceNowState
enabled: true
description: Waits for a specific state on a ServiceNow issue
method: GET
url: SERVICENOW_URL/api/sn_chg_rest/change/${parameterValues['sysid']}
customHeaders:
Authorization: Basic SERVICENOW_BASE64_USR_PASSWD
Content-Type: application/json
failPipeline: true
progressJsonPath: "result.state.display_value"
payload: ""
retryStatusCodes:
- 200
statusJsonPath: "result.state.display_value"
statusUrlResolution: "getMethod"
successStatuses: ${parameterValues['success']}
retryStatuses: ${parameterValue['retry']}
terminalStatuses: ${parameterValues['terminate']}
canceledStatuses: ${parameterValues['cancel']}
waitBeforeMonitor: "1"
waitForCompletion: true
parameters:
- label: Sys id
name: sysid
description: "sys id of the request"
type: string
defaultValue: ""
- label: Service Now Success States
name: success
description: "Service Now issue States that progress the pipeline, e.g,: In Verificaiton etc."
type: string
defaultValue: ""
- label: Service Now Retry States
name: retry
description: "Service Now issue states that Retry the stage e.g,: New etc. Can give multiple states coma seperated"
From line 1329 in v4.0.3 and line 322 in 3.12 to 1373 in v4.0.3 and line 367 in 3.12: the following spaces are removed:
In line 1374 in v4.0.3 and line 368 in 3.12: the following section is added:
type: string
defaultValue: ""
- label: Service Now Termination States
name: terminate
description: "Service Now issue states that terminates the pipeline, e.g,: Done etc."
type: string
line 1381 in v4.0.3 and line 370 in 3.12: the below section is removed:
label: Service Now Termination States
name: terminate
description: "Service Now issue states that terminates the pipeline, e.g,: Done etc."
type: string
defaultValue: ""
In line 1386 in v4.0.3 and line 380 in 3.12: the label is changed from "JIRA: Wait for state" to "JIRA: Wait for state-OpsMx".
label: Service Now Canceled States
name: cancel
description: "Service Now issue states that cancel the pipeline e.g,: Closed, etc."
type: string
defaultValue: Closed
- label: "JIRA: Wait for state-OpsMx"
In line 1389 in v4.0.3 and line 383 in 3.12: the description is changed from Custom stage that waits for a specific state on a Jira Issue to Stage that waits for a specific state on a Jira issue.
type: waitJiraState
enabled: true
description: Stage that waits for a specific state on a Jira issue
method: GET
url: JIRA_URL/rest/api/latest/issue/${parameterValues['issue']}
customHeaders:
In line 1435 in v4.0.3 and 429 in 3.12: the label is changed from "JIRA: Create Issue" to "JIRA: Create an issue-OpsMx".
In line 1438 in v4.0.3 and 432 in 3.12: the description is changed from Custom stage that add an Issue in Jira to Stage that add an issue in Jira.
description: "JIRA issue states that cancel the pipeline e.g,: Done, etc."
type: string
defaultValue: Done
- label: "JIRA: Create an issue-OpsMx"
type: addJiraIss
enabled: true
description: Stage that add an issue in Jira
method: POST
url: JIRA_URL/rest/api/2/issue/
customHeaders:
In line 1491 in v4.0.3 and 485 in 3.12: the label is changed from "JIRA: Comment on Issue" to "JIRA: Comment on issue-OpsMx".
In line 1494 in v4.0.3 and 488 in 3.12: the description is changed from Custom stage that posts a comment in a Jira Issue to Stage that posts a comment in a Jira issue.
name: description
description: description
type: string
- label: "JIRA: Comment on issue-OpsMx"
type: comJiraIss
enabled: true
description: Stage that posts a comment in a Jira issue
method: POST
url: JIRA_URL/rest/api/latest/issue/${parameterValues['issue']}/comment
customHeaders:
In line 1514 in v4.0.3 and 508 in 3.12: the label is changed from label: "JIRA: Update Issue" to "JIRA: Update issue-OpsMx".
In line 1517 in v4.0.3 and 511 in 3.12: the description is changed from Custom stage that updates an Issue in Jira to Stage that updates an issue in Jira.
name: message
description: message
type: string
- label: "JIRA: Update issue-OpsMx"
type: updJiraIss
enabled: true
description: Stage that updates an issue in Jira
method: PUT
url: JIRA_URL/rest/api/latest/issue/${parameterValues['issue']}
customHeaders:
In line 1551 in v4.0.3 and 545 in 3.12: the label is changed from label: "JIRA: Transition Issue" to "JIRA: Transition issue-OpsMx".
In line 1554 in v4.0.3 and 548 in 3.12: the description is changed from Custom stage that transitions an Issue in Jira to Stage that transitions an issue in Jira.
label: Description
name: description
description: description
- label: "JIRA: Transition issue-OpsMx"
type: transJiraIss
enabled: true
description: Stage that transitions an issue in Jira
method: POST
url: JIRA_URL/rest/api/latest/issue/${parameterValues['issue']}/transitions
customHeaders:
Added the below section after the line 569 in 3.12:
label: "ServiceDesk: Create request-OpsMx"
type: CreateServiceDeskrequest (issue)
enabled: true
description: Stage that create an request in ServiceDesk
method: POST
url: https://<URL>/rest/servicedeskapi/request
customHeaders:
Authorization: Basic USER/PASSWORD-BASE64
Content-Type: application/json
payload: |-
{
"serviceDeskId": "${parameterValues['projectid']}",
"requestTypeId": "${parameterValues['requesttypeid']}",
"requestFieldValues": {
"summary": "${parameterValues['summary']}",
"description": "${parameterValues['description']}"
},
"requestParticipants": [
"${parameterValues['requestParticipants']}"
]
}
parameters:
- label: Project ID
name: projectid
description: Which Servicedesk project do you want to create an item in?
type: string
- label: Request Type Id
name: requesttypeid
description: Request type like id "25" for IT HELP
type: string
- label: Summary
name: summary
description: summary of the request
type: string
- label: Request Participants
name: requestParticipants
description: requestParticipants of the request
type: string
- label: Description
name: description
description: Description of the request
type: string
- label: "ServiceDesk: Comment on issue-OpsMx"
type: Coment ServiceDesk Issue
enabled: true
description: Stage that post a comment in a ServiceDesk issue
method: POST
url: https://<URL>/rest/servicedeskapi/request/${parameterValues['issue']}/comment
customHeaders:
Authorization: Basic USER/PASSWORD-BASE64
Content-Type: application/json
payload: |-
{
"body": "${parameterValues['message']}",
"public": true
}
parameters:
- label: Issue ID
name: issue
description: Issue
type: string
- label: Message
name: message
description: message
type: string
- label: "ServiceDesk: Wait for state-OpsMx"
type: waitservicedeskstate
enabled: true
description: Stage that waits for a specific state on a Servicedesk issue
method: GET
url: https://<URL>/rest/servicedeskapi/request/${parameterValues['issue']}/status
customHeaders:
Authorization: Basic USER/PASSWORD-BASE64
Content-Type: application/json
failPipeline: true
progressJsonPath: "values[0].status"
payload: ""
retryStatusCodes:
- 200
statusJsonPath: "values[0].status"
statusUrlResolution: "getMethod"
successStatuses: ${parameterValues['success']}
retryStatuses: ${parameterValue['retry']}
canceledStatuses: ${parameterValues['cancel']}
waitBeforeMonitor: "1"
waitForCompletion: true
parameters:
- label: ServiceDesk Issue ID
name: issue
description: "The ServiceDesk issue, the default relies on ServiceDesk issue ID extraction"
type: string
defaultValue:
- label: ServiceDesk Retry States
name: retry
description: "ServiceDesk issue states that Retry the stage e.g,: To Do, In Progress, etc."
type: string
defaultValue: To Do, In Progress
- label: ServiceDesk Success States
name: success
description: "ServiceDeskissue States that progress the pipeline, e.g,: In Verificaiton etc."
type: string
defaultValue: In Verification
- label: ServiceDesk Canceled States
name: cancel
description: "ServiceDesk issue states that cancel the pipeline e.g,: Done, etc."
type: string
defaultValue: Done
- label: "ServiceDesk: Transition issue-OpsMx"
type: transservicedesk issue status
enabled: true
description: Stage that transitions an Servicedesk request status
method: POST
url: https://<URL>/rest/servicedeskapi/request/${parameterValues['issue']}/transition
customHeaders:
Authorization: Basic USER/PASSWORD-BASE64
Content-Type: application/json
X-ExperimentalApi: opt
payload: |-
{
"id": "${parameterValues['targetStageID']}",
"additionalComment": {
"body": "${parameterValues['body']}"
}
}
parameters:
- label: Issue ID
name: issue
description: Issue
type: string
- label: Target Stage ID
name: targetStageID
description: Target ID from the workflow of project
type: string
- label: Body
name: body
description: Current status as a comment to change the transition
type: string
Added the below lines from line 1 to 9:
services:
clouddriver:
baseUrl: http://stormdriver-rw:8090
enabled: true
echo:
baseUrl: http://spin-echo-worker:8089
enabled: true
global.spinnaker.timezone: America/Los_Angeles
Changed defaultLabel: master to defaultLabel: BRANCH in line 13 & key: Q7udUkHPuA3VnNlOtksSgQ is changed to key: KEY under line 16.
Added the below section under 4.0.3 branch from line 1 to 95:
# Copy this file to spinnaker.yml if configuring for stormdriver
# Note that HA Clouddriver and Echo is not supported at this time with Stormdriver
services:
clouddriver:
host: 0.0.0.0
port: 7002
baseUrl: http://stormdriver:7002
enabled: true
echo:
host: 0.0.0.0
port: 8089
baseUrl: http://spin-echo:8089
enabled: true
clouddriverCaching:
host: 0.0.0.0
port: 7002
baseUrl: http://spin-clouddriver-caching:7002
enabled: false
clouddriverRo:
host: 0.0.0.0
port: 7002
baseUrl: http://spin-clouddriver-ro:7002
enabled: false
clouddriverRoDeck:
host: 0.0.0.0
port: 7002
baseUrl: http://spin-clouddriver-ro-deck:7002
enabled: false
clouddriverRw:
host: 0.0.0.0
port: 7002
baseUrl: http://spin-clouddriver-rw:7002
enabled: false
deck:
host: 0.0.0.03
port: 9000
baseUrl: http://oes.ryzon7-isd40.opsmx.org/deck
enabled: true
echoScheduler:
host: 0.0.0.0
port: 8089
baseUrl: http://spin-echo-scheduler:8089
enabled: false
echoWorker:
host: 0.0.0.0
port: 8089
baseUrl: http://spin-echo-worker:8089
enabled: false
fiat:
host: 0.0.0.0
port: 7003
baseUrl: http://spin-fiat:7003
enabled: false
front50:
host: 0.0.0.0
port: 8080
baseUrl: http://spin-front50:8080
enabled: true
gate:
host: 0.0.0.0
port: 8084
baseUrl: http://oes.ryzon7-isd40.opsmx.org/gate
enabled: true
igor:
host: 0.0.0.0
port: 8088
baseUrl: http://spin-igor:8088
enabled: true
kayenta:
host: 0.0.0.0
port: 8090
baseUrl: http://spin-kayenta:8090
enabled: false
orca:
host: 0.0.0.0
port: 8083
baseUrl: http://spin-orca:8083
enabled: true
redis:
host: 0.0.0.0
port: 6379
baseUrl: redis://:password@RELEASE_NAME-redis-master:6379
enabled: true
rosco:
host: 0.0.0.0
port: 8087
baseUrl: http://spin-rosco:8087
enabled: true
monitoringDaemon:
host: 0.0.0.0
port: 8008
baseUrl: http://spin-monitoring-daemon:8008
enabled: false
global.spinnaker.timezone: America/Los_Angeles
Added “enabled:false” Ignore artifactId modification and it is handled in bom file
artifactId is updated from quay.io/opsmxpublic/ubi8-oes-spin-gate:v3.12.0 to quay.io/opsmxpublic/ubi8-gate:1.28.4_6.55.3-ubi8
enabled: false
artifactId: quay.io/opsmxpublic/ubi8-gate:1.28.4_6.55.3-ubi8
healthEndpoint: /health
kubernetes:
useExecHealthCheck: false
podAnnotations:
moniker.spinnaker.io/application: spin
env:
JAVA_OPTS: "-XX:MaxRAMPercentage=100.0"