# Changes from 3.12 to 4.0.3 branch

Changes from 3.12 to 4.0.3 branch (standard-gitops-repo) \
Repo URL: <https://github.com/OpsMx/standard-gitops-repo>

### **default/profiles/echo-local.yml:**

* Removed the “**rest enabled**” section
* Added the below section:<br>

  <pre data-overflow="wrap"><code>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
  </code></pre>

  <figure><img src="https://lh6.googleusercontent.com/gKYFRaQi_DEPgTYaXOQc7sFTUTeXIf12rET7J9Ih13UdILnasPYizy4Qw4OoLvCEvgAubN-JVKXrKif3YRRf4nRzM0FXr_CCxj0A-xcKxdrLZrfEjlV92InS7tM-swDgeBs1hYimTNe1pffqkFIdh6Y" alt=""><figcaption></figcaption></figure>

### default/profiles/fiat-local.yml:

Added the below section from line number 17 to 40.

{% code overflow="wrap" %}

```
#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"
```

{% endcode %}

<figure><img src="https://lh6.googleusercontent.com/BlIbhBDND2_pZc5N1DxGNF3hgRQ8BjWXFmrI9ENKOGc5WbP1V3xHoYwt13zLRHtdwjBqJOpTjLPt7YxyL2no1u-Z5j3fNGeC6hoo6AFdeTU6Rqf8TAfYaP2yARtxlc3URThJzQvolncfhzIQUUtQKmE" alt=""><figcaption></figcaption></figure>

### default/profiles/fiat-overrides.yml:

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
```

<figure><img src="https://lh4.googleusercontent.com/XhwVkkIOVsOx-IiwiS46gtx21JmTkF0dxdRl8HFUw4Y_OQVjjEo_nCrfE4S50GrhZ3kAiVBBNW15RIvKdaCBlK7DkbsktHfvJiKTcPoZ4zcXzIGGMp5_ToUcCHUV7TkqewWFdJNYA8Hr_ZfJLg3mpvE" alt=""><figcaption></figcaption></figure>

### default/profiles/gate-overrides.yml:

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
```

<figure><img src="https://lh4.googleusercontent.com/NAy0IMW6QvXZyshTkfYPXI70IWYrjjKGufKxKQm2q0CTcrt98vkTMTo_3mSk8p5YczK00nA5ZSe2QcBuzxecZtHM6pmE-hBKuF9lVZ9kxDjysQprOngAJ9UTKaNHS_ppIu4ajShFyZZHQ4-mlfNLzcE" alt=""><figcaption></figcaption></figure>

### default/profiles/orca-local.yml:

* 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.

  <pre data-overflow="wrap"><code>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: ""
  </code></pre>

  <figure><img src="https://lh3.googleusercontent.com/wWMwk1ARVSx-tvtl9xZinDEjTf-VwdVOwlXVfaRB9L3qhL1kXIncdiDtZEddcqJQcN2nQe4Aejq-12LgRYMEFxLzFh-Z-qikLbmLNY1ywQxy5Cva08FCFFKfP3OPR2yVoPK38M7nJphf-oItHdHoUb0" alt=""><figcaption></figcaption></figure>

* 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.

  <pre data-overflow="wrap"><code>                      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: ""
  </code></pre>

  <figure><img src="https://lh6.googleusercontent.com/HlWo9FPqlnAT39ZIac_eiAPl3Gc7gnCfjJbMYtx35-TPfNBJRTduvTZHgpOQNxiZRcmf6IQVgbSvMaogHApFcfdhTVlewRjRpeyX0g7E8xvWqW0SqAgCuI_esLjJ7hfjAU4tgUi5SM53oUsmog6e5yA" alt=""><figcaption></figcaption></figure>

* Added the below section before the “**webhook**” section **starting from line 220** in v4.0.3.<br>

  <pre data-overflow="wrap"><code>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
  </code></pre>

* 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"`<br>

  <figure><img src="https://lh4.googleusercontent.com/iuUf2Sf_YMFI7cxoq-EfnPU3KjmInfEywj-Vs_tSXy_w6iCCd1XsBM2g7VN-PTT1-0DG7SEG6Zs7l_IYsq8dRXH_SjyCXRzZdj6uovDgOshxTLnrnEe8TF6fsY2nES_dkuXNgbr60eG5iVxt8npMnt0" alt=""><figcaption></figcaption></figure>

* 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**)<br>

  <pre data-overflow="wrap"><code>label: "Ansible AWX - Create Instance Group"
      type: AnsibleAWXCreateInstanceGroup
      enabled: true
      description: Stage to create an instance group in ansible awx
      method: POST
      url: http://&#x3C;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://&#x3C;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://&#x3C;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://&#x3C;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://&#x3C;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://&#x3C;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://&#x3C;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://&#x3C;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://&#x3C;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://&#x3C;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://&#x3C;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"
  </code></pre>

* **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`<br>

  <figure><img src="https://lh6.googleusercontent.com/1sanNlHESbjaC2KE-66N_qsZ_BV3GE1Pvf7tG2DQOoDZmJkn3EZf8j50clJ-E5v6dRiyIeibRTSlTLR4qTZ6rpMcipUYGL_b8eYPO-fJ7u6h_mNNZYR0PdrGYeTbU0XUx0y3E18qkyx4H6dDioT19x0" alt=""><figcaption></figcaption></figure>

* 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.<br>

  ```
  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:
  ```

  <br>

  <figure><img src="https://lh4.googleusercontent.com/p1QWhmDBWy3UfbPRqib-6Go1hbw87woTS3V-EUm9dIRCtwQJOBBXmau7Y5SYemg7xnICUs6Mw0sTtN2pz5623lN6RfHUxzhjdbQoGjVWNBHdOrt_74k1WuLSDjRO4yPgTZnhoUAr2O2AYzoKvTMMkeQ" alt=""><figcaption></figcaption></figure>

* 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.<br>

  <pre data-overflow="wrap"><code>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:
  </code></pre>

  <figure><img src="https://lh5.googleusercontent.com/aipGMs2jS9-V48iv6YGx6KKKy3VypU8AAHfXDAtBvAmZbMfPsIH2Mun0qhxBCZouKxmCl111XDpt7JBkUZqceJEOYZl7YYhN15SwwDDzxqaHWCaehZGeaX_c3ZmovyBn37Lfy4Vx95MtjLiZcsqZSO4" alt=""><figcaption></figcaption></figure>

* 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.<br>

    <pre data-overflow="wrap"><code>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"
    </code></pre>

* 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:<br>

  <figure><img src="https://lh5.googleusercontent.com/90EG_2Dabs3F6Vt1xzHbWeWniavekJIggu7HCHAr236OOXlGGls7t_MUI7wxSAOrQInvDpEX10gkuvWqlH3AId2F_np0ZsDiuTHKcl1xx6o2PRifJslrkL70Xfr8qDu1ATyKiFMPXn3Hr7rkOhpMSfE" alt=""><figcaption></figcaption></figure>

* In line 1374 in v4.0.3 and line 368 in 3.12: the following section is added:<br>

  <pre data-overflow="wrap"><code>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
  </code></pre>

  <br>

  <figure><img src="https://lh4.googleusercontent.com/suJrRcSuDYJ7wYhtdvEhp8XfDK2OgY8nVCmx4RTg6ErIcLcvtM0wGQNOmW-W0y7_07OKvExbJfA6ydqrKH6bZIPYg7HDlqQVvbiBR6IZdAjvAmVb7UKN1whNxxGwpmlw_pHNASr9FHmoyhvXX-_uv50" alt=""><figcaption></figcaption></figure>

* **line 1381 in v4.0.3** and **line 370 in 3.12**: the below section is removed:                                   &#x20;

  ```
  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".<br>

  <pre data-overflow="wrap"><code>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"
  </code></pre>

  <figure><img src="https://lh5.googleusercontent.com/EaTUvI7doHhifhs0dVr-KPZ-mVLZ8SGVFvWf92T7uRh-Wtrwt8SUZXbOUG8zrk0C74YEspK9bbpkPNeiMTmC1pKAGns0NMiq4Dm_ADsNYhlr-xpOgzv7ru-4MRkWbtSZIBXML3Ix4U5xekcRhn3dMDU" alt=""><figcaption></figcaption></figure>

* 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.<br>

  <pre data-overflow="wrap"><code>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:
  </code></pre>

  <figure><img src="https://lh4.googleusercontent.com/1KwtKmVYCypPQm_CJ5lHZj2JVIUVICFki6Zh7YC-6tnVdI8WBKNHpTTNeSm36TRUeXrU61fuZNV7kakoFqDQdNQjUbjPfi3tkel3f4qr9af_G9t_rV2MMXrpFcDX8f3JX1gnFG0fbdRIGKy8-xwbASI" alt=""><figcaption></figcaption></figure>

* 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.<br>

  <pre data-overflow="wrap"><code> 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:
  </code></pre>

  <figure><img src="https://lh3.googleusercontent.com/dhRTQ-INU2gaXrRfHhQvRa7MtTFNEwzy4T4nkXf4qwQlp_Jj_6vXUXIRbkrjP8bbbI0Uya_smsuQ6pMD2pQ5byNCRg5HJixk8FTvEmH1cgeesTxdnSjqF7sX8sBp-XPCmNyj_QGnJRWMH5agQR7ec5o" alt=""><figcaption></figcaption></figure>

* 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.<br>

  <pre data-overflow="wrap"><code>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:
  </code></pre>

  <figure><img src="https://lh5.googleusercontent.com/IZgxYowPC7fpNsa9RV84Puq7xCRc_DFpeUe4d-Y801-63AhVjK5YB8re6qFA7ImD4AjL1T1wHpkT8RonyZaKR7cQ8sMlmYNfrt86Bpin-OvkTOVYPOh9leIEYlFjGK7A5PRj47TUNWkCp3BNNjgiVhQ" alt=""><figcaption></figcaption></figure>

* 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.<br>

  <pre data-overflow="wrap"><code>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:
  </code></pre>

  <figure><img src="https://lh5.googleusercontent.com/2rDCxdbkHpyYT2RhV0v4fD9fJVlAVrULvMIlgNw5mtwViv_WbZPAuqod0uYdXQqaiHWbVem8YiFchdimBDv8mN-lSFAs57TyWdbMLgJsUwXkNkVcqVQrAQGMf3lmnp9KC4k5SSWlMzdvVSWVNub5YfE" alt=""><figcaption></figcaption></figure>

* 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.<br>

  <pre data-overflow="wrap"><code> 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:
  </code></pre>

  <figure><img src="https://lh4.googleusercontent.com/Svq5kK0ziYc-A6Ttz-FD0mmlsnDdcF_t5Tde3SiOGZLQ1EUSdGEt2XWqlsqdfpS7ULz7U3eqzJw9cXW7X_zt2rPBpIXor0tWcI6Ivbopnq2v_qvzx6pWPGVY6FYLrWexm_yu_kvJ2u4RYBn3q1NAJk8" alt=""><figcaption></figcaption></figure>

* Added the below section after the **line 569 in 3.12**:<br>

  <pre data-overflow="wrap"><code>label: "ServiceDesk: Create request-OpsMx"
      type: CreateServiceDeskrequest (issue)
      enabled: true
      description: Stage that create an request in ServiceDesk
      method: POST
      url: https://&#x3C;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://&#x3C;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://&#x3C;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://&#x3C;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
  </code></pre>

### default/profiles/orca-overrides.yml:

* Added the below lines from **line 1 to 9:**<br>

  <pre data-overflow="wrap"><code>services:
    clouddriver:
      baseUrl: http://stormdriver-rw:8090
      enabled: true
    echo:
      baseUrl: http://spin-echo-worker:8089
      enabled: true

  global.spinnaker.timezone: America/Los_Angeles
  </code></pre>

  <figure><img src="https://lh4.googleusercontent.com/hK-KeR0WJKAqMfEEWjlQtmz5EhlrVgBGZf31uChPBFFr55fcFKlOCH6qSS4RFD02Ri8bhbE4jxqq6jyGKOjW32zOHLeR3Himj5cAmHgL6TjVu8PlnwbK8w-KXLQKW_ytfAPPd4u-SYID_DmkCJOzcho" alt=""><figcaption></figcaption></figure>

### default/profiles/spinnakerconfig.yml:

Changed **defaultLabel**: master to defaultLabel: BRANCH in line 13 & key: Q7udUkHPuA3VnNlOtksSgQ is changed to key: KEY under line 16.

<figure><img src="https://lh3.googleusercontent.com/Q19obpkxvrtNETbX17DnvLTVieS3q3k8vFwmZ-9aFZ58Z-f3kuyQKP6nuTTiOQ1pqhNwUNzEwffVA3biPrj4wzbJJqdmUIssAATz1qwkBELRk_0knmypY3RY6MfIfeRNHUkXJVVnN4fi1mQOA-CoTl0" alt=""><figcaption></figcaption></figure>

### default/profiles/stormdriver-spinnaker.yml:

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
```

### default/service-settings/gate.yml:

Added “**enabled:false**”\
Ignore artifactId modification and it is handled in bom file

&#x20;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"
```

<figure><img src="https://lh3.googleusercontent.com/MAhOhbytNFdoY7AYsB3joUdRVHKQQToAvLnajF6gqtLwC-3vdXPJxKrRShye0K2784tZ7TlzZtIQzrGgdQ9S4IYb8kA6TqWYdmLZhYdpqaqNg-9Ura6k-sWRDlwdf_cTRo-aCXYWHseypzBhmcxyi0c" alt=""><figcaption></figcaption></figure>
