|
2 | 2 | title: v2.36.0-rc4 Armory Continuous Deployment Release (Spinnaker™ v1.36.1) |
3 | 3 | toc_hide: true |
4 | 4 | date: 2025-02-05 |
5 | | -version: 2.36.0 |
| 5 | +version: <!-- version in 00.00.00 format ex 02.23.01 for sorting, grouping --> |
6 | 6 | description: > |
7 | 7 | Release notes for Armory Continuous Deployment v2.36.0-rc4. A beta release is not meant for installation in production environments. |
8 | 8 |
|
@@ -47,146 +47,6 @@ Armory scans the codebase as we develop and release software. Contact your Armor |
47 | 47 |
|
48 | 48 | ## Highlighted updates |
49 | 49 |
|
50 | | -### Java upgrades |
51 | | - |
52 | | -Java 17 is now the default source and target. Java 11 support has been removed entirely. Please note you may need to add the following JAVA_OPTS options: `--add-exports=java.base/sun.security.x509=ALL-UNNAMED --add-exports=java.base/sun.security.pkcs=ALL-UNNAMED --add-exports=java.base/sun.security.rsa=ALL-UNNAMED` to clouddriver if using GCP accounts due to credentials parsing of certificates. These can set in the [service-settings config](https://spinnaker.io/docs/reference/halyard/custom/#custom-service-settings) . These configs are likely to be added to the defaults in all future releases |
53 | | - |
54 | | -{{< highlight yaml "linenos=table,hl_lines=10" >}} |
55 | | -apiVersion: spinnaker.armory.io/v1alpha2 |
56 | | -kind: SpinnakerService |
57 | | -metadata: |
58 | | - name: spinnaker |
59 | | -spec: |
60 | | - spinnakerConfig: |
61 | | - service-settings: |
62 | | - clouddriver: |
63 | | - env: |
64 | | - JAVA_OPTS: "--add-exports=java.base/sun.security.x509=ALL-UNNAMED --add-exports=java.base/sun.security.pkcs=ALL-UNNAMED --add-exports=java.base/sun.security.rsa=ALL-UNNAMED" |
65 | | -{{< /highlight >}} |
66 | | - |
67 | | -### Enhanced pipeline batch update feature |
68 | | - |
69 | | -#### Gate |
70 | | - |
71 | | -Adds a new enpdoint, `POST /pipelines/bulksave`, which can take a list of pipeline configurations to save. The endpoint will return a response that indicates how many of the saves were successful, how many failed, and what the failures are. The structure is |
72 | | - |
73 | | -''' |
74 | | -[ |
75 | | - "successful_pipelines_count" : <int>, |
76 | | - "successful_pipelines" : <List<String>>, |
77 | | - "failed_pipelines_count" : <int>, |
78 | | - "failed_pipelines" : <List<Map<String, Object>>> |
79 | | -] |
80 | | -''' |
81 | | - |
82 | | -There are a few config knobs which control some bulk save functionality. The gate endpoint invokes an orca asynchronous process to manage saving the pipelines and polls until the orca operations are complete. |
83 | | - |
84 | | -''' |
85 | | -controller: |
86 | | - pipeline: |
87 | | - bulksave: |
88 | | - # the max number of times gate will poll orca to check for task status |
89 | | - max-polls-for-task-completion: <int> |
90 | | - # the interval at which gate will poll orca. |
91 | | - taskCompletionCheckIntervalMs: <int> |
92 | | -''' |
93 | | - |
94 | | -#### Orca |
95 | | - |
96 | | -Updates Orca’s SavePipelineTask to support bulk saves using the updated functionality in the front50 bulk save endpoint. |
97 | | - |
98 | | -With https://github.com/spinnaker/orca/pull/4781, keys from the stage context’s outputs section can now be removed (there by reducing the context size significantly). At present the following tasks support this feature: |
99 | | - |
100 | | -* PromoteManifestKatoOutputsTask |
101 | | -* WaitOnJobCompletionTask |
102 | | -* ResolveDeploySourceManifestTask |
103 | | -* BindProducedArtifactsTask |
104 | | - |
105 | | - |
106 | | -The PR https://github.com/spinnaker/orca/pull/4788 introduced a new CheckIfApplicationExists task that is added to various pipeline stages to check if the application defined in the pipeline stage context is known to front50 and/or clouddriver. The following config knobs are provided so that all of these stages can be individually configured to not perform this check if needed. Default value is set to false for all of them. |
107 | | - |
108 | | -{{< highlight yaml "linenos=table,hl_lines=9-28" >}} |
109 | | -apiVersion: spinnaker.armory.io/v1alpha2 |
110 | | -kind: SpinnakerService |
111 | | -metadata: |
112 | | - name: spinnaker |
113 | | -spec: |
114 | | - spinnakerConfig: |
115 | | - profiles: |
116 | | - orca: |
117 | | - tasks: |
118 | | - clouddriver: |
119 | | - promoteManifestKatoOutputsTask: |
120 | | - excludeKeysFromOutputs: |
121 | | - - outputs.createdArtifacts |
122 | | - - outputs.manifests |
123 | | - - outputs.boundArtifacts |
124 | | - waitOnJobCompletionTask: |
125 | | - excludeKeysFromOutputs: |
126 | | - - jobStatus |
127 | | - - completionDetails |
128 | | - resolveDeploySourceManifestTask: |
129 | | - excludeKeysFromOutputs: |
130 | | - - manifests |
131 | | - - requiredArtifacts |
132 | | - - optionalArtifacts |
133 | | - core: |
134 | | - bindProducedArtifactsTask: |
135 | | - excludeKeysFromOutputs: |
136 | | - - artifacts |
137 | | -{{< /highlight >}} |
138 | | - |
139 | | -Separate config knobs are also provided at the AbstractCheckIfApplicationExistsTask level to determine if clouddriver needs to be queried for the application or not. It is by default set to true, so it is an opt-out capability. the config property is: |
140 | | - |
141 | | -''' |
142 | | -tasks: |
143 | | - clouddriver: |
144 | | - checkIfApplicationExistsTask: |
145 | | - checkClouddriver: false # default is true |
146 | | -''' |
147 | | - |
148 | | -This feature runs in audit mode by default which means if checkIfApplicationExistsTask finds no application, a warning message is logged. But when audit mode is disabled through the following property, pipelines fail if application is not found: |
149 | | - |
150 | | -''' |
151 | | -tasks: |
152 | | - clouddriver: |
153 | | - checkIfApplicationExistsTask: |
154 | | - auditModeEnabled: false # default is true |
155 | | -''' |
156 | | - |
157 | | -#### Front50 |
158 | | - |
159 | | -Batch update operation in front50 is now atomic. Deserialization issues are addressed. |
160 | | -Configurable controls are added to decide whether cache should be refreshed while checking for duplicate pipelines: |
161 | | - |
162 | | -{{< highlight yaml "linenos=table,hl_lines=9-12" >}} |
163 | | -apiVersion: spinnaker.armory.io/v1alpha2 |
164 | | -kind: SpinnakerService |
165 | | -metadata: |
166 | | - name: spinnaker |
167 | | -spec: |
168 | | - spinnakerConfig: |
169 | | - profiles: |
170 | | - front50: |
171 | | - controller: |
172 | | - pipeline: |
173 | | - save: |
174 | | - refreshCacheOnDuplicatesCheck: false // default is true |
175 | | -{{< /highlight >}} |
176 | | - |
177 | | -Batch update call now responds with a status of succeeded and failed pipelines info. The response will be a map containing information in the following format: |
178 | | - |
179 | | -''' |
180 | | -[ |
181 | | - "successful_pipelines_count" : <int>, |
182 | | - "successful_pipelines" : <List<String>>, |
183 | | - "failed_pipelines_count" : <int>, |
184 | | - "failed_pipelines" : <List<Map<String, Object>>> |
185 | | -] |
186 | | -''' |
187 | | - |
188 | | -Here the value for `successful_pipelines` is the list of successful pipeline names whereas the value for `failed_pipelines` is the list of failed pipelines expressed as maps. |
189 | | - |
190 | 50 | <!-- |
191 | 51 | Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide: |
192 | 52 | - Major changes or new features we want to call out for Armory and OSS. Changes should be grouped under end user understandable sections. For example, instead of Deck, use UI. Instead of Fiat, use Permissions. |
|
0 commit comments