# Upgrade from 3.11.x to 3.12.x

### ISD v3.11.x to ISD v3.12

Users can upgrade the ISD v3.11.x to ISD v3.12. The upgrade instructions and Script file can be found at the link below.

#### Script File

[https://github.com/OpsMx/platform-service/blob/master/data-migration/migration\_v3.11.x\_to\_v3.12.py](<https://github.com/OpsMx/platform-service/blob/master/data-migration/migration_v3.11.x_to_v3.12.py&#xD;&#xA;>)

#### Upgrade instructions&#x20;

[https://github.com/OpsMx/platform-service/blob/master/data-migration/steps\_to\_migrate\_from\_v3.11.x\_to\_v3.12.txt ](<https://github.com/OpsMx/platform-service/blob/master/data-migration/steps_to_migrate_from_v3.11.x_to_v3.12.txt >)[](<https://github.com/OpsMx/platform-service/blob/master/data-migration/migration_v3.11.x_to_v3.12.py&#xD;&#xA;>)

#### **Configuration changes:**

These configuration changes are applicable only for upgrading ISD from 3.11.x to 3.12.

**Stand-error-codes**

New configmap introduced for Stand-error-codes as mentioned in the link below:

[https://github.com/OpsMx/kubeyaml/blob/v3.12/common-conf/standard-error-codes.yml](<https://github.com/OpsMx/kubeyaml/blob/v3.12/common-conf/standard-error-codes.yml   &#xD;&#xA;>)

**Bootstrap:**

Configma&#x70;**:** Update **sapor-bootstrap-secret.yml** file as follows:

```
   encrypt: 
key: Q7udUkHPuA3VnNlOtksSgQ
```

**Autopilot:**

Add the following standard-error-code **volume Mounts & volumes** Into **autopilot deployment yaml** file:

```
Autopilot-deployment::
---------------------------------
VolumeMounts:
  - mountPath: /opsmx/conf/standard-error-code.csv
  name: standard-error-conf
subPath: standard-error-codes.csv

volumes:
   - configMap:
   defaultMode: 420
   items:
   - key: standard-error-codes.csv
   path: standard-error-codes.csv
   name: standard-error-codes-config
   name: standard-error-conf 
```

Update the below configuration into **autopilot-configmap**.

```
Configmap:
---------------------------------
#Datascience configuration
oes.datascience.baseUrl=http://oes-datascience:5005
ds.async.flow=true

#Standard-error-path
standardErrorCodes.filePath=/opsmx/conf/standard-error-code.csv

#Storage configuration
storage.type =db_storage
#storage.endpoint=http://${parameters.namespace}-minio:9000
#storage.accesskey = spinnakeradmin
#storage.secretkey = spinnakeradmin
#storage.region= us-east-1
ds.seperate.service=true
```

**Audit-client-service:**

Update the **Audit-client-service configmap** as follows.

```
standardErrorCodes:
 filePath: /opsmx/conf/standard-error-code.csv
```

Deployment yaml:  Add the **volume Mounts and volumes** for Standard-error-code csv as follows.

```
VolumeMounts:
  - mountPath: /opsmx/conf/standard-error-code.csv
  name: standard-error-conf
  subPath: standard-error-codes.csv

Volumes:
  - configMap:
  defaultMode: 420
  items:
  - key: standard-error-codes.csv
  path: standard-error-codes.csv
  name: standard-error-codes-config
  name: standard-error-conf
```

#### **Audit-service:**

Update the **Audit-service configmap** as follows.

```
standardErrorCodes:
      filePath: /opsmx/conf/standard-error-code.csv
```

Deployment yaml: Add the **volume Mounts and volumes** for Standard-error-code csv as follows.

```
VolumeMounts:
  - mountPath: /opsmx/conf/standard-error-code.csv
  name: standard-error-conf
  subPath: standard-error-codes.csv

  volumes:
  - configMap:
  defaultMode: 420
  items:
  - key: standard-error-codes.csv
  path: standard-error-codes.csv
  name: standard-error-codes-config
  name: standard-error-conf
```

**Datascience:**

Change the **Rabbitmq-service.yml** as follows:

```
selector:
 app: oes
 component: rabbitmq
```

**Dashboard-service:**

Configmap: Update the **dashboard configmap** as follows:

```
standardErrorCodes:
      filePath: /opsmx/conf/standard-error-code.csv
```

**Dashboard:**

Add the following configuration under **dashboard-local.yaml** file.

```
gateservice:
  url: "http://oes-gate:8084"
```

Deployment yaml: Add the **volume Mounts and volumes** for Standard-error-code csv as follows.

```
VolumeMounts:
  - mountPath: /opsmx/conf/standard-error-code.csv
  name: standard-error-conf
  subPath: standard-error-codes.csv
 
  volumes:
  - configMap:
  defaultMode: 420
  items:
  - key: standard-error-codes.csv
  path: standard-error-codes.csv
  name: standard-error-codes-config
  name: standard-error-conf 
```

**Platform-service:**

Configmap: Update the **platform-service-secret.yml** as follows:

```
standardErrorCodes:
      filePath: /opsmx/conf/standard-error-code.csv

     This should be added under: platform-local.yml > oes section
			-----------------
 		    dashboard:
          url: "http://oes-dashboard:8094"

      Change user > source value from ldap to: "gate"
   		-----------------
   			user: 
          source: gate
```

Deployment yaml: Add the **volume Mounts and volumes** for Standard-error-code csv as follows.

```
VolumeMounts:
  - mountPath: /opsmx/conf/standard-error-code.csv
  name: standard-error-conf
  subPath: standard-error-codes.csv

  volumes:
  - configMap:
  defaultMode: 420
  items:
  - key: standard-error-codes.csv
  path: standard-error-codes.csv
  name: standard-error-codes-config
  name: standard-error-conf
```

**visiblity-service:**

```
Configmap: - https://github.com/OpsMx/kubeyaml/blob/v3.12/visibility-service/configmap.yml
	------------------------------
    standardErrorCodes:
      filePath: /opsmx/conf/standard-error-code.csv

    Change git > apiurl to following
    ---------------------
    git: 
       apiurl: "/repos/{account}/{repo}/commits/{commitId}"

    Change git > navigate > url: 
    ---------------------
         url: "https://github.com/{account}/{repo_name}/commit/{commit_Id}"

    Change visibility > connectors > configured value to following:
    ---------------------
       visiblity: 
         connectors: 
           configured: "JIRA,GITHUB,AUTOPILOT,SONARQUBE,JENKINS,AQUAWAVE"

    Add the following configuration under: visibility-local.yaml:
    ----------------------
    ui:
      approval:
        url: "https://${uiingress}/application/visibility/{applicationId}/{serviceId}/{approvalGateId}"
```

Deployment yaml: Add the **volume Mounts and volumes** for Standard-error-code csv in visibility deployment yaml as follows.

```
VolumeMounts:
  - mountPath: /opsmx/conf/standard-error-code.csv
  name: standard-error-conf
  subPath: standard-error-codes.csv

volumes:
  - configMap:
  defaultMode: 420
  items:
  - key: standard-error-codes.csv
  path: standard-error-codes.csv
  name: standard-error-codes-config
  name: standard-error-conf 
```

**Gate:**

Update the following **Gate config secret** as follows:

```
oes-gate-config-secret.yml
------------------------------
rbac:
 feature:
  application:
   enabled: false   ## Configurable from user end, available values are: true or false


allowUnauthenticatedAccess:
  agentAPI: false     # bydefault it's false, user configurable;  available values are: true or false
  webhooks: false     # bydefault it's false, user configurable;  available values are: true or false
```

```
spinnaker:
 extensibility:
   plugins:
   deck-proxy:
    enabled: true
    plugins:
      Opsmx.VerificationGatePlugin:
       enabled: true
       version: 1.0.1
      Opsmx.TestVerificationGatePlugin:
       enabled: true
       version: 1.0.1
      Opsmx.PolicyGatePlugin:
       enabled: true
       version: 1.0.1
      Opsmx.VisibilityApprovalPlugin:
       enabled: true
       version: 1.0.1
  repositories:
    opsmx-repo:
     url: "file:///opt/spinnaker/plugins/plugins.json" 
```

**oes-sapor:**

Sapor-secret.yaml: Update the sapor-secret.yml as follows:

```
commongateurl: https://${gateingress} # if the gate installation is common gate use gate url or else empty    
```

Add the following standard error codes:

```
 standardErrorCodes:
      filePath: /opsmx/conf/standard-error-code.csv
```

Delete the following accounts:

```
     spinnaker:
       version: 1.26
       images: OPSMX     
       restart:
         endPoint: /webhooks/webhook/restartSpinnaker
       encrypt:
         key: Q7udUkHPuA3VnNlOtksSgQ
         salt: deadbeef  
         enabled: true  
```

Add the following accounts:

```
     spinnaker:
       restart:
         endPoint: /webhooks/webhook/restartSpinnaker
       encrypt:
         enabled: true
       sync:
         permission:
           enabled: true 
```

Add the following config under **kubernetes**.

```
kubernetes:
 kinds:
 omitKinds:
 - podPreset
```

Deployment yaml: Add the **volume Mounts and volumes** for Standard-error-code csv in sapor deployment yaml as follows.

```
VolumeMounts:
  - mountPath: /opsmx/conf/standard-error-code.csv
  name: standard-error-conf
  subPath: standard-error-codes.csv

volumes:
  - configMap:
  defaultMode: 420
  items:
  - key: standard-error-codes.csv
  path: standard-error-codes.csv
  name: standard-error-codes-config
  name: standard-error-conf 
```

**OES-UI:**

Please check **helptext.json** file for latest changes: [**https://github.com/OpsMx/kubeyaml/blob/v3.12/oes-ui/configmap.yml**](https://github.com/OpsMx/kubeyaml/blob/v3.12/oes-ui/configmap.yml)

### ISD v3.11.x to ISD v3.1**2**.1

Users can upgrade from ISD v3.11.x to ISD v3.12.1 by updating the v.3.12 changes as described [above](https://docs.opsmx.com/release-history/upgrading-to-3.7/upgrade-from-3.11.x-to-3.12.x#isd-v3.11.x-to-v3.12), as well as the configuration changes mentioned below.

#### Configuration changes:

**Platform config:**&#x20;

```
 # Replace user > source: from ldap with gate
     user:
       source: gate
```

**Visibility config:**

Added a new configuration to provide a link to the approval page during the approval stage; we must provide DNS here:

```
ui:
 approval:
  url: https://${singleurl}/ui/application/visibility/{applicationId}/{serviceId}/{approvalGateId}
<code>
```

#### UI config:

Please copy help-text.json from kubeyml repo branch v3.12. <https://github.com/OpsMx/kubeyaml/blob/v3.12/oes-ui/configmap.yml>

### ISD v3.11.x to ISD v3.1**2**.3

Users can upgrade from ISD v3.11.x to ISD v3.12.3 by updating the v.3.12 changes as described [above](https://docs.opsmx.com/release-history/upgrading-to-3.7/upgrade-from-3.11.x-to-3.12.x#isd-v3.11.x-to-v3.12), as well as the configuration changes mentioned below.

#### Configuration changes:

* Delete the following code block from **Audit-client & Audit-service configmap.yaml** files:

```
  config:
   default:
    connectTimeout: 5000
    readTimeout: 5000
    loggerLevel: basic
```

* Add the following config into platform **secret.yaml** and set the adminuser to ADMIN user:

```
app:
  dashboard:
adminuser: user2 # mandatory to provide admin user name to run admin jobs that compute dashboard counts
     fixedDelay:
      in:
        milliseconds: 120000
     initialDelay:
      in:
        milliseconds: 600000
```

### ISD v3.11.x to ISD v3.1**2**.4

Users can upgrade from ISD v3.11.x to ISD v3.12.4 by updating the v.3.12 changes as described [above](https://docs.opsmx.com/release-history/upgrading-to-3.7/upgrade-from-3.11.x-to-3.12.x#isd-v3.11.x-to-v3.12), as well as the configuration changes mentioned below.

#### Configuration changes:

**OES-UI:**

Please check **helptext.json** file for latest changes: [**https://github.com/OpsMx/kubeyaml/blob/v3.12/oes-ui/configmap.yml**](https://github.com/OpsMx/kubeyaml/blob/v3.12/oes-ui/configmap.yml)

### ISD v3.11.x to ISD v3.1&#x32;**.5**

Users can upgrade from ISD v3.11.x to ISD v3.12.5 by updating the v.3.12 changes as described [above](https://docs.opsmx.com/release-history/upgrading-to-3.7/upgrade-from-3.11.x-to-3.12.x#isd-v3.11.x-to-v3.12), as well as the configuration changes mentioned below.

The upgrade Script file for ISD v3.12.4 to v3.12.5 can be found at the link below.

#### Script File

[https://github.com/OpsMx/enterprise-spinnaker/blob/master/scripts/oes-data-migration-scripts/migration\_v3.12.4\_to\_v3.12.5.py ](<https://github.com/OpsMx/enterprise-spinnaker/blob/master/scripts/oes-data-migration-scripts/migration_v3.12.4_to_v3.12.5.py >)[](<https://github.com/OpsMx/platform-service/blob/master/data-migration/migration_v3.11.x_to_v3.12.py&#xD;&#xA;>)

#### **Configuration changes**

**Standard-error-codes:**

Ref:[https://github.com/OpsMx/kubeyaml/blob/v3.12/common-conf/standard-error-codes.yml](<https://github.com/OpsMx/kubeyaml/blob/v3.12/common-conf/standard-error-codes.yml&#xD;&#xA;>)

**OES UI:** [Configmap.yml](https://github.com/OpsMx/kubeyaml/blob/v3.12/oes-ui/configmap.yml)

**Audit-client-service:** Refer to this [URL](https://github.com/OpsMx/kubeyaml/blob/d58e8b785c93b2b4e079643cd63cfbc223d22d77/audit-client-service/configmap.yml).

Added fixed delay and initial delay configs.

```
 fixedDelay:
       in:
         milliseconds: 120000
     initialDelay:
       in:
         milliseconds: 300000
     scheduler:
         threads: 16
```

### ISD v3.11.x to ISD v3.1**2**.6

Users can upgrade from ISD v3.11.x to ISD v3.12.6 by updating the v.3.12 changes as described [above](https://docs.opsmx.com/release-history/upgrading-to-3.7/upgrade-from-3.11.x-to-3.12.x#isd-v3.11.x-to-v3.12), as well as the configuration changes mentioned below.

**Script File**\
The upgrade Script file for ISD **v3.12.5** to **v3.12.6** can be found at the link below. Upgrade script to handle approval count from the 'Gates Used' graph on the usage insights page.\
<https://github.com/OpsMx/enterprise-spinnaker/blob/master/scripts/oes-data-migration-scripts/migration_v3.12.5_to_v3.12.6.py>

**Upgrade instructions** \
[https://github.com/OpsMx/enterprise-spinnaker/blob/master/scripts/oes-data-migration-scripts/steps\_to\_migrate\_from\_v3.12.5\_to\_v3.12.6.txt ](<https://github.com/OpsMx/enterprise-spinnaker/blob/master/scripts/oes-data-migration-scripts/steps_to_migrate_from_v3.12.5_to_v3.12.6.txt >)

#### Configuration changes:

**Standard-error-codes:**\
Ref: [https://github.com/OpsMx/kubeyaml/blob/v3.12/common-conf/standard-error-codes.yml](<https://github.com/OpsMx/kubeyaml/blob/v3.12/common-conf/standard-error-codes.yml&#xD;&#xA;>)

**OES-UI Config:**\
Please check **helptext.json** file for latest changes: <https://github.com/OpsMx/kubeyaml/blob/v3.12/oes-ui/configmap.yml>

### ISD v3.11.x to ISD v3.1**2**.6.1

Users can upgrade from ISD v3.11.x to ISD v3.12.6.1 by updating the v.3.12 changes as described [above](https://docs.opsmx.com/release-history/upgrading-to-3.7/upgrade-from-3.11.x-to-3.12.x#isd-v3.11.x-to-v3.12), as well as the configuration changes mentioned below.

**Upgrade Script File**

One-time script for cleaning unused Audit events data from Audit DB for production version **3.12.6.1 or before**: <https://github.com/OpsMx/enterprise-spinnaker/blob/master/scripts/oes-data-migration-scripts/clean_unused_audit_data.py>

Refer the below link to see the steps to run the script: \
<https://github.com/OpsMx/enterprise-spinnaker/blob/master/scripts/oes-data-migration-scripts/steps_to_clean_unused_audit_data>

Upgrade Script file for ISD **v3.12.5** to **v3.12.6.1** can be found at the link below.&#x20;

Upgrade script to handle approval count from the 'Gates Used' graph on the usage insights page.\
<https://github.com/OpsMx/enterprise-spinnaker/blob/master/scripts/oes-data-migration-scripts/migration_v3.12.5_to_v3.12.6.py>

**Upgrade instructions** \
[https://github.com/OpsMx/enterprise-spinnaker/blob/master/scripts/oes-data-migration-scripts/steps\_to\_migrate\_from\_v3.12.5\_to\_v3.12.6.txt ](<https://github.com/OpsMx/enterprise-spinnaker/blob/master/scripts/oes-data-migration-scripts/steps_to_migrate_from_v3.12.5_to_v3.12.6.txt >)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.opsmx.com/opsmx-1/opsmx-context-engine/additional-resources/upgrading-to-3.7/upgrade-from-3.11.x-to-3.12.x.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
