<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Armory Docs – Armory Continuous Deployment Release Notes</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/</link><description>Recent content in Armory Continuous Deployment Release Notes on Armory Docs</description><generator>Hugo -- gohugo.io</generator><atom:link href="/continuous-deployment/release-notes/rn-armory-spinnaker/index.xml" rel="self" type="application/rss+xml"/><item><title>Continuous-Deployment: v2.36.9 Armory Continuous Deployment Release (Spinnaker™ v1.36.1)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-9/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-9/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="2026-04-01-release-notes">2026-04-01 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Important&lt;/h4>
&lt;a href="/continuous-deployment/installation/armory-operator/">Armory Operator&lt;/a> has been deprecated and is considered EOL. Please migrate to the &lt;a href="/continuous-deployment/spinnaker-user-guides/armory-operator-to-kustomize-migration/">Kustomize&lt;/a> method of deployment.
&lt;/div>
&lt;p>To install, upgrade, or configure Armory CD 2.36.9, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;p>The following configuration properties have been restructured:&lt;/p>
&lt;p>Previous Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New configuration format&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">optimize-execution-retrieval&lt;/span>: &amp;lt;boolean&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-execution-retrieval-threads&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-number-of-pipeline-executions-to-process&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">execution-retrieval-timeout-seconds&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>These changes improve query performance and execution retrieval efficiency, particularly for large-scale pipeline applications.&lt;/p>
&lt;p>&lt;a href="#performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/a>&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="echo-filter-enabled-pipelines-feature">Echo Filter enabled pipelines feature&lt;/h3>
&lt;p>Spinnaker OSS Version 1.31.0 introduced a feature to filter pipelines from front50, that was disabled by default.
Version 1.35.0 enabled it by default, which is not recommended and can cause issues with automated triggers.
In Armory CD 2.36.2 we recommend to explicitly disable this feature by setting the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>apiVersion: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kind: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>metadata:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> name: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>spec:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> spinnakerConfig:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> profiles:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> pipelineCache:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> filterFront50Pipelines: false
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;h3 id="clouddriver-redis-scheduler-configuration-validation">Clouddriver: Redis scheduler configuration validation&lt;/h3>
&lt;p>Clouddriver now validates Redis scheduler configuration keys more strictly at startup:&lt;/p>
&lt;ul>
&lt;li>Legacy scalar &lt;code>redis.scheduler&lt;/code> is rejected.&lt;/li>
&lt;li>Legacy &lt;code>redis.parallelism&lt;/code> is rejected.&lt;/li>
&lt;li>Use nested keys under &lt;code>redis.scheduler.*&lt;/code>.&lt;/li>
&lt;/ul>
&lt;p>Before:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">redis&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">scheduler&lt;/span>: default
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">parallelism&lt;/span>: -&lt;span style="color:#bd93f9">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>After:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">redis&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">scheduler&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">type&lt;/span>: default
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">parallelism&lt;/span>: -&lt;span style="color:#bd93f9">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If &lt;code>redis.scheduler.type&lt;/code> is missing or blank, Clouddriver defaults to &lt;code>default&lt;/code> for compatibility.&lt;/p>
&lt;h3 id="security-hardening-url-restriction-validation-for-artifacts-and-webhooks">Security hardening: URL restriction validation for artifacts and webhooks&lt;/h3>
&lt;p>This release includes fixes that improve validation around user-supplied Git repository inputs used by GitRepo artifacts.&lt;/p>
&lt;p>This release tightens URL host validation for artifact accounts and Orca webhook URL restrictions:&lt;/p>
&lt;ul>
&lt;li>Validation now uses parsed host handling (&lt;code>HttpUrl.host()&lt;/code>) instead of authority fallback parsing.&lt;/li>
&lt;li>This prevents authority/userinfo patterns from bypassing hostname checks.&lt;/li>
&lt;li>URL handling for underscore hostnames and IPv6 input is stricter and more predictable.&lt;/li>
&lt;/ul>
&lt;p>If you use uncommon URL formats (for example userinfo segments, unbracketed IPv6 literals, or underscore-based hosts), test those paths after upgrade.&lt;/p>
&lt;h3 id="clouddriver-sql-cache-sharding-aware-unknown-agent-cleanup">Clouddriver SQL cache: sharding-aware unknown-agent cleanup&lt;/h3>
&lt;p>&lt;code>SqlUnknownAgentCleanupAgent&lt;/code> now respects shard ownership and includes additional safety controls to avoid cross-pod or startup-race cleanup behavior in SQL cache environments.&lt;/p>
&lt;p>Key updates:&lt;/p>
&lt;ul>
&lt;li>The cleanup agent remains opt-in and disabled by default.&lt;/li>
&lt;li>The cleanup agent is only created when &lt;code>sql.read-only=false&lt;/code>.&lt;/li>
&lt;li>Cleanup skips when sharding state is uninitialized or misconfigured.&lt;/li>
&lt;li>New controls include &lt;code>minRecordAgeSeconds&lt;/code>, &lt;code>dryRun&lt;/code>, and &lt;code>excludedDataTypes&lt;/code>.&lt;/li>
&lt;/ul>
&lt;p>Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">unknown-agent-cleanup-agent&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">pollIntervalSeconds&lt;/span>: &lt;span style="color:#bd93f9">120&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">timeoutSeconds&lt;/span>: &lt;span style="color:#bd93f9">60&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">minRecordAgeSeconds&lt;/span>: &lt;span style="color:#bd93f9">300&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deleteBatchSize&lt;/span>: &lt;span style="color:#bd93f9">100&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">dryRun&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">excludedDataTypes&lt;/span>: []
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="ha-deployment-guidance">HA deployment guidance&lt;/h4>
&lt;p>In HA mode, enable &lt;code>sql.unknown-agent-cleanup-agent.enabled: true&lt;/code> only on Clouddriver caching pods.&lt;/p>
&lt;p>For caching pods:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">unknown-agent-cleanup-agent&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>For all non-caching Clouddriver pods:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">unknown-agent-cleanup-agent&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="clouddriver-cache-sharding-pluggable-strategy-and-key-extraction">Clouddriver cache sharding: pluggable strategy and key extraction&lt;/h3>
&lt;p>Cache sharding now supports pluggable strategies and key extractors for Redis and SQL sharding observers:&lt;/p>
&lt;ul>
&lt;li>&lt;code>strategy: modulo&lt;/code> (default, preserves legacy ownership mapping)&lt;/li>
&lt;li>&lt;code>strategy: canonical-modulo&lt;/code> (canonical positive modulo)&lt;/li>
&lt;li>&lt;code>strategy: jump&lt;/code> (jump consistent hash, less key movement during scale events)&lt;/li>
&lt;li>&lt;code>sharding-key: account | region | agent&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>Defaults remain &lt;code>strategy: modulo&lt;/code> and &lt;code>sharding-key: account&lt;/code>, so existing behavior is preserved unless you opt in to a different strategy/key.&lt;/p>
&lt;p>Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">cache-sharding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">strategy&lt;/span>: modulo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">sharding-key&lt;/span>: account
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">replica-ttl-seconds&lt;/span>: &lt;span style="color:#bd93f9">60&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">heartbeat-interval-seconds&lt;/span>: &lt;span style="color:#bd93f9">30&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>SqlCachingPodsObserver&lt;/code> also resets to a fail-open state on heartbeat/topology refresh failure to avoid stale routing decisions.&lt;/p>
&lt;h3 id="clouddriver-redis-priority-scheduler-opt-in">Clouddriver: Redis Priority Scheduler (opt-in)&lt;/h3>
&lt;p>A new Redis-based &lt;code>priority&lt;/code> scheduler is available for Clouddriver caching agents.&lt;/p>
&lt;p>Key points:&lt;/p>
&lt;ul>
&lt;li>Uses Redis sorted sets and Lua scripts for atomic scheduling transitions.&lt;/li>
&lt;li>Adds cleanup services (zombie/orphan), circuit breakers, and richer scheduler observability.&lt;/li>
&lt;li>Requires Redis 6.2+ (&lt;code>ZMSCORE&lt;/code>).&lt;/li>
&lt;/ul>
&lt;p>Enablement:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">redis&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">scheduler&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">type&lt;/span>: priority
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">agent&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-concurrent-agents&lt;/span>: &lt;span style="color:#bd93f9">100&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Migration notes:&lt;/p>
&lt;ul>
&lt;li>Legacy scalar &lt;code>redis.scheduler&lt;/code> and legacy &lt;code>redis.parallelism&lt;/code> are rejected.&lt;/li>
&lt;li>&lt;code>redis.scheduler.parallelism&lt;/code> is ignored in &lt;code>priority&lt;/code> mode.&lt;/li>
&lt;li>Use &lt;code>redis.agent.max-concurrent-agents&lt;/code> to control concurrency for &lt;code>priority&lt;/code> mode.&lt;/li>
&lt;li>&lt;code>redis.agent.disabledAgents&lt;/code> is ignored in &lt;code>priority&lt;/code> mode; use &lt;code>redis.agent.disabled-pattern&lt;/code>.&lt;/li>
&lt;/ul>
&lt;h3 id="aws-jdbc-driver-update">AWS JDBC Driver Update&lt;/h3>
&lt;p>The AWS JDBC driver has been updated from the deprecated aws-mysql-jdbc driver (version 1.0.0) to the &lt;a href="https://github.com/aws/aws-advanced-jdbc-wrapper">AWS Advanced JDBC Wrapper&lt;/a>.&lt;/p>
&lt;p>This update adds support for IAM authentication with AWS Aurora Global Database endpoints. The previous driver did not support global database endpoint format (&lt;code>*.global.rds.amazonaws.com&lt;/code>) when using IAM authentication, resulting in the error:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>java.sql.SQLException: Unsupported AWS hostname &amp;#39;&amp;lt;hostname&amp;gt;.global.rds.amazonaws.com&amp;#39;.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Amazon domain name in format *.AWS-Region.rds.amazonaws.com is expected
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Note:&lt;/strong> Standard database connections (without IAM authentication) continue to work as before and do not require any configuration changes.&lt;/p>
&lt;p>&lt;strong>Affected services:&lt;/strong> Front50, Orca, Clouddriver, Fiat&lt;/p>
&lt;h4 id="configuration-for-iam-authentication-with-aurora-global-database">Configuration for IAM Authentication with Aurora Global Database&lt;/h4>
&lt;p>If you are using IAM authentication and want to connect to Aurora Global Database endpoints, update your JDBC connection string:&lt;/p>
&lt;p>&lt;strong>New JDBC URL format:&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>jdbc:aws-wrapper:mysql://&amp;lt;GLOBAL_ENDPOINT&amp;gt;:&amp;lt;PORT&amp;gt;/&amp;lt;DATABASE&amp;gt;?wrapperPlugins=iam&amp;amp;globalClusterInstanceHostPatterns=?.&amp;lt;CLUSTER_IDENTIFIER&amp;gt;.&amp;lt;REGION1&amp;gt;.rds.amazonaws.com,?.&amp;lt;CLUSTER_IDENTIFIER&amp;gt;.&amp;lt;REGION2&amp;gt;.rds.amazonaws.com&amp;amp;iamRegion=&amp;lt;CURRENT_REGION&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Example:&lt;/strong> If your Aurora Global Database has:&lt;/p>
&lt;ul>
&lt;li>Global endpoint: &lt;code>mydb-global.global-xxxxx.global.rds.amazonaws.com&lt;/code>&lt;/li>
&lt;li>Primary (us-west-2): &lt;code>mydb.cluster-abc123.us-west-2.rds.amazonaws.com&lt;/code>&lt;/li>
&lt;li>Secondary (us-east-1): &lt;code>mydb.cluster-abc123.us-east-1.rds.amazonaws.com&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>Configure the JDBC URL as:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>jdbc:aws-wrapper:mysql://mydb-global.global-xxxxx.global.rds.amazonaws.com:3306/front50?wrapperPlugins=iam&amp;amp;globalClusterInstanceHostPatterns=?.cluster-abc123.us-west-2.rds.amazonaws.com,?.cluster-abc123.us-east-1.rds.amazonaws.com&amp;amp;iamRegion=us-west-2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="observability-plugin-update">Observability Plugin Update&lt;/h3>
&lt;p>The Armory Observability plugin has been updated to version 1.6.1 to resolve compatibility issues with the new AWS JDBC wrapper.&lt;/p>
&lt;h3 id="security-enhancement-url-filteringrestriction-capabilities-on-artifact-accounts">Security enhancement: Url Filtering/Restriction capabilities on Artifact accounts&lt;/h3>
&lt;p>Starting in Armory Continuous Deployment 2.36.6, we have enabled to capability to filter/restrict urls that can be accessed per artifact accounts.
This feature provides a safeguard around user input of remote urls when artifact accounts are in used in the context of a pipeline execution.&lt;/p>
&lt;p>An example configuration can be found below which can be added per artifact account (http, github, helm):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">artifacts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">http&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">name&lt;/span>: http_account
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">urlRestrictions&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">allowedDomains&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - mydomain.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - raw.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - api.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLocalhost&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLinkLocal&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectVerbatimIps&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectedIps&lt;/span>: [] &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>By default the configuration blocks any local CIDR ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), localhost, link local and raw IPs.
For full configuration details please refer to this &lt;a href="https://github.com/spinnaker/spinnaker/blob/main/clouddriver/clouddriver-artifacts/src/main/java/com/netflix/spinnaker/clouddriver/artifacts/config/HttpUrlRestrictions.java">configuration class&lt;/a>&lt;/p>
&lt;h3 id="armory-continuous-deployment-2362-onwards-docker-images-now-based-on-ubuntu">Armory Continuous Deployment 2.36.2 onwards Docker images now based on Ubuntu&lt;/h3>
&lt;p>The Armory Continuous Deployment 2.36.2 Docker images have been updated to use Ubuntu as the base image, replacing the previous Alpine base.
This change enhances compatibility with various libraries and tools, improving overall stability and performance.
Additionally, the new images now include all the necessary dependencies for authentication on a Kebreros server.&lt;/p>
&lt;h3 id="pipeline-reference-feature-is-now-able-to-lazy-load-the-pipeline-reference-pipelines">Pipeline Reference feature is now able to Lazy load the pipeline reference pipelines&lt;/h3>
&lt;p>In Spinnaker OSS release 1.35.0 Orca introduced a feature flag to reduce the execution size in nested pipelines by
converting PipelineTrigger to PipelineRefTrigger:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">executionRepository&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipelineRef&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>When enabled, child pipeline execution ids are stored in sql instead of the entire child pipeline execution context.&lt;/p>
&lt;p>In Armory CD 2.36.2 this functionality is now extended to make the in-memory representation of the pipelines aware of the pipeline reference
and to not load in-memory a full representation of the pipeline context. To enable this feature in Deck add the following in &lt;code>settings-local.js&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.pipelineRefEnabled = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span> &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4842">PR 4842&lt;/a>&lt;/em>
&lt;em>Deck &lt;a href="https://github.com/spinnaker/deck/pull/10164">PR 10164&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="new-pipeline-stage-configuration-backoffperiodms">New pipeline stage configuration &lt;code>backOffPeriodMs&lt;/code>&lt;/h3>
&lt;p>A new configuration option &lt;code>backOffPeriodMs&lt;/code> has been added to the pipeline stage configuration. This option allows users
to specify a back-off period in milliseconds for stages that may need to retry operations after a failure. Before this,
pipeline authors had no control over the backoff period. It came from either spinnaker configuration properties or
implementations of RetryableTask.getDynamicBackoffPeriod.&lt;/p>
&lt;p>Additionally, the following configuration options have been added that allow admins to specify globablly the backoff period:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.global.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.&amp;lt;cloud provider&amp;gt;.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> tasks.&amp;lt;cloud provider&amp;gt;.&amp;lt;account name&amp;gt;.backOffPeriod:&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4841">PR 4841&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="java-upgrades">Java upgrades&lt;/h3>
&lt;p>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: &lt;code>--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&lt;/code> to clouddriver if using GCP accounts due to credentials parsing of certificates. These can set in the &lt;a href="https://spinnaker.io/docs/reference/halyard/custom/#custom-service-settings">service-settings config&lt;/a> . These configs are likely to be added to the defaults in all future releases&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">service-settings&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">env&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">JAVA_OPTS&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;--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&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="performance-improvements-for-pipeline-executions">Performance Improvements for Pipeline Executions&lt;/h3>
&lt;p>This release includes several optimizations to improve pipeline execution times, particularly for complex pipeline structures.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>Memorize the &lt;code>anyUpstreamStagesFailed&lt;/code> extension function to improve time complexity from exponential to linear&lt;/li>
&lt;li>Optimize &lt;code>getAncestorsImpl&lt;/code> to reduce time complexity by a factor of N, where N is the number of stages in a pipeline&lt;/li>
&lt;li>Optimize &lt;code>StartStageHandler&lt;/code> to only call withAuth (which calls getAncestorsImpl) when&lt;/li>
&lt;/ol>
&lt;p>These enhancements significantly reduce pipeline execution time, with the most notable gains observed in dense pipeline graphs. For example, in the &lt;code>ComplexPipeline.kt&lt;/code> test scenario, execution time improved from not completing at all to approximately &lt;code>160ms&lt;/code>.&lt;/p>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4824">PR 4824&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/h3>
&lt;p>This release enhances the performance of SQL-backed pipeline queries by optimizing database operations, particularly for the API call:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>/applications/{application}/pipelines?expand=false&amp;amp;limit=2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>which is frequently initiated by Deck and forwarded through Gate to Orca.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ul>
&lt;li>Improved Query Efficiency: Optimized the retrieval of pipeline execution data, significantly reducing database query times.&lt;/li>
&lt;li>Refactored &lt;code>TaskController&lt;/code>: Externalized configuration properties to allow better flexibility and tuning.&lt;/li>
&lt;li>Enhanced &lt;code>getPipelinesForApplication()&lt;/code>
&lt;ul>
&lt;li>Limits the number of pipeline config IDs queried.&lt;/li>
&lt;li>Processes multiple pipeline config IDs simultaneously.&lt;/li>
&lt;li>Introduces multi-threading to handle batches efficiently.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4804">PR 4804&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="feature-read-connection-pool-for-sql-execution-repository">Feature: Read Connection Pool for SQL Execution Repository&lt;/h3>
&lt;p>This release introduces support for a dedicated read connection pool for specific read-only database queries in &lt;code>SqlExecutionRepository&lt;/code>&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>New &amp;ldquo;read&amp;rdquo; Connection Pool: Allows read operations to be routed to a separate connection pool.&lt;/li>
&lt;li>Configurable Read Pool: Users can define an additional read connection pool in the SQL configuration.&lt;/li>
&lt;li>Ensures Data Consistency: Some read queries still rely on recently written data and are not yet converted to use a read replica due to potential replication lag.&lt;/li>
&lt;/ol>
&lt;p>Configuration Example&lt;/p>
&lt;p>To enable the read connection pool, add the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionPools&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;...&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">read&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jdbcUrl&lt;/span>: jdbc:...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user&lt;/span>: orca_service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">password&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">validationTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxPoolSize&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">minIdle&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxLifetimeMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">idleTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4803">PR 4803&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="enhanced-pipeline-batch-update-feature">Enhanced pipeline batch update feature&lt;/h3>
&lt;h4 id="gate">Gate&lt;/h4>
&lt;p>Adds a new enpdoint, &lt;code>POST /pipelines/bulksave&lt;/code>, 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&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bulksave&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the max number of times gate will poll orca to check for task status&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-polls-for-task-completion&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the interval at which gate will poll orca.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">taskCompletionCheckIntervalMs&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="orca">Orca&lt;/h4>
&lt;p>Updates Orca&amp;rsquo;s SavePipelineTask to support bulk saves using the updated functionality in the front50 bulk save endpoint.&lt;/p>
&lt;p>With &lt;a href="https://github.com/spinnaker/orca/pull/4781">Orca PR 4781&lt;/a>, keys from the stage context&amp;rsquo;s outputs section can now be removed (there by reducing the context size significantly). At present the following tasks support this feature:&lt;/p>
&lt;ul>
&lt;li>PromoteManifestKatoOutputsTask&lt;/li>
&lt;li>WaitOnJobCompletionTask&lt;/li>
&lt;li>ResolveDeploySourceManifestTask&lt;/li>
&lt;li>BindProducedArtifactsTask&lt;/li>
&lt;/ul>
&lt;p>The &lt;a href="https://github.com/spinnaker/orca/pull/4788">Orca PR 4788&lt;/a> 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.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">promoteManifestKatoOutputsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.createdArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.boundArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">waitOnJobCompletionTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - jobStatus
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - completionDetails
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">resolveDeploySourceManifestTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - requiredArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - optionalArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">core&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">bindProducedArtifactsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - artifacts&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkClouddriver&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">auditModeEnabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="front50">Front50&lt;/h4>
&lt;p>Batch update operation in front50 is now atomic. Deserialization issues are addressed.
Configurable controls are added to decide whether cache should be refreshed while checking for duplicate pipelines:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">front50&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">save&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">refreshCacheOnDuplicatesCheck&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> // default is true&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Here the value for &lt;code>successful_pipelines&lt;/code> is the list of successful pipeline names whereas the value for &lt;code>failed_pipelines&lt;/code> is the list of failed pipelines expressed as maps.&lt;/p>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>Armory CD 2.36.9 tracks the latest published upstream &lt;code>1.36.x&lt;/code> patch line.&lt;/p>
&lt;p>Upstream references:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://www.spinnaker.io/changelogs/1.36.1-changelog/">Spinnaker v1.36.1&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.spinnaker.io/changelogs/1.36.2-changelog/">Spinnaker v1.36.2&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.spinnaker.io/changelogs/1.36.3-changelog/">Spinnaker v1.36.3&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Notable upstream changes:&lt;/p>
&lt;ul>
&lt;li>Clouddriver: improved ECS target-group health evaluation and several AWS/GCP reliability fixes.&lt;/li>
&lt;li>Gate/Echo: SAML signing behavior fix and duplicate manual-judgment notification fix.&lt;/li>
&lt;li>Clouddriver (Google): async operation retry/status polling to prevent progressing pipeline tasks before cloud operations settle.&lt;/li>
&lt;li>Clouddriver (GitRepo artifacts): validation fixes around user input and repository URL handling (backports &lt;a href="https://github.com/spinnaker/spinnaker/pull/7542">#7542&lt;/a>, &lt;a href="https://github.com/spinnaker/spinnaker/pull/7564">#7564&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>
version: 2.36.9
timestamp: 2026-04-01
services:
clouddriver:
version: 2.36.9
commit: 6deeb3c2a0f57149a595698ba3f2b83a2be8e36f
deck:
version: 2.36.9
commit: 54a2aada8cb187554536daeb8b8b2858714d1afe
dinghy:
version: 2.36.9
commit: d36fdf5b496b18212275686d4c9069d72c9dbeb1
echo:
version: 2.36.9
commit: 9ff1559a08ed6851c036ff1f51bde20e1eb36248
fiat:
version: 2.36.9
commit: e77853e0322014f3b3f8911d9d6f2431830c192c
front50:
version: 2.36.9
commit: 5f8f39172e88b3abe49bab28e2fcb786b8653bf0
gate:
version: 2.36.9
commit: f99a459232f70e19a719a1962f7c6fcee9218750
igor:
version: 2.36.9
commit: 30cab7aaabdfe08c05c37146ab644555cf413513
kayenta:
version: 2.36.9
commit: 2ce818eed3873004412758a0f731cf8420df8594
orca:
version: 2.36.9
commit: 178d4b576e7b8136c42e0baa108cbf2730f6cec8
rosco:
version: 2.36.9
commit: 8e35f1c3560b3b8f7de6fc4a35718b4aee98a47c
terraformer:
version: 2.36.9
commit: 8453d42107fda5f0c315c8459f523e9182805832
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-clouddriver---23682369">Armory Clouddriver - 2.36.8&amp;hellip;2.36.9&lt;/h4>
&lt;ul>
&lt;li>fix(validation): Fixes some validation around user inputs (upstream &lt;a href="https://github.com/spinnaker/spinnaker/pull/7542">#7542&lt;/a>)&lt;/li>
&lt;li>fix(gitrepo): Fix git repo with some odd character combinations (upstream &lt;a href="https://github.com/spinnaker/spinnaker/pull/7564">#7564&lt;/a>)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---23682369">Armory Fiat - 2.36.8&amp;hellip;2.36.9&lt;/h4>
&lt;h4 id="armory-front50---23682369">Armory Front50 - 2.36.8&amp;hellip;2.36.9&lt;/h4>
&lt;h4 id="armory-orca---23682369">Armory Orca - 2.36.8&amp;hellip;2.36.9&lt;/h4>
&lt;h4 id="armory-igor---23682369">Armory Igor - 2.36.8&amp;hellip;2.36.9&lt;/h4>
&lt;h4 id="terraformer---23682369">Terraformer™ - 2.36.8&amp;hellip;2.36.9&lt;/h4>
&lt;h4 id="armory-rosco---23682369">Armory Rosco - 2.36.8&amp;hellip;2.36.9&lt;/h4>
&lt;h4 id="armory-gate---23682369">Armory Gate - 2.36.8&amp;hellip;2.36.9&lt;/h4>
&lt;h4 id="armory-echo---23682369">Armory Echo - 2.36.8&amp;hellip;2.36.9&lt;/h4>
&lt;h4 id="armory-deck---23682369">Armory Deck - 2.36.8&amp;hellip;2.36.9&lt;/h4>
&lt;h4 id="armory-kayenta---23682369">Armory Kayenta - 2.36.8&amp;hellip;2.36.9&lt;/h4>
&lt;h4 id="dinghy---23682369">Dinghy™ - 2.36.8&amp;hellip;2.36.9&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-igor---1361">Spinnaker Igor - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-rosco---1361">Spinnaker Rosco - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-gate---1361">Spinnaker Gate - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-echo---1361">Spinnaker Echo - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-deck---1361">Spinnaker Deck - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-orca---1361">Spinnaker Orca - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1361">Spinnaker Kayenta - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-front50---1361">Spinnaker Front50 - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1361">Spinnaker Clouddriver - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-fiat---1361">Spinnaker Fiat - 1.36.1&lt;/h4></description></item><item><title>Continuous-Deployment: v2.36.8 Armory Continuous Deployment Release (Spinnaker™ v1.36.1)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-8/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-8/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="2026-03-05-release-notes">2026-03-05 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Important&lt;/h4>
&lt;a href="/continuous-deployment/installation/armory-operator/">Armory Operator&lt;/a> has been deprecated and is considered EOL. Please migrate to the &lt;a href="/continuous-deployment/spinnaker-user-guides/armory-operator-to-kustomize-migration/">Kustomize&lt;/a> method of deployment.
&lt;/div>
&lt;p>To install, upgrade, or configure Armory CD 2.36.8, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;p>The following configuration properties have been restructured:&lt;/p>
&lt;p>Previous Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New configuration format&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">optimize-execution-retrieval&lt;/span>: &amp;lt;boolean&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-execution-retrieval-threads&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-number-of-pipeline-executions-to-process&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">execution-retrieval-timeout-seconds&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>These changes improve query performance and execution retrieval efficiency, particularly for large-scale pipeline applications.&lt;/p>
&lt;p>&lt;a href="#performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/a>&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="echo-filter-enabled-pipelines-feature">Echo Filter enabled pipelines feature&lt;/h3>
&lt;p>Spinnaker OSS Version 1.31.0 introduced a feature to filter pipelines from front50, that was disabled by default.
Version 1.35.0 enabled it by default, which is not recommended and can cause issues with automated triggers.
In Armory CD 2.36.2 we recommend to explicitly disable this feature by setting the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>apiVersion: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kind: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>metadata:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> name: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>spec:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> spinnakerConfig:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> profiles:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> pipelineCache:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> filterFront50Pipelines: false
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;h3 id="clouddriver-redis-scheduler-configuration-validation">Clouddriver: Redis scheduler configuration validation&lt;/h3>
&lt;p>Clouddriver now validates Redis scheduler configuration keys more strictly at startup:&lt;/p>
&lt;ul>
&lt;li>Legacy scalar &lt;code>redis.scheduler&lt;/code> is rejected.&lt;/li>
&lt;li>Legacy &lt;code>redis.parallelism&lt;/code> is rejected.&lt;/li>
&lt;li>Use nested keys under &lt;code>redis.scheduler.*&lt;/code>.&lt;/li>
&lt;/ul>
&lt;p>Before:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">redis&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">scheduler&lt;/span>: default
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">parallelism&lt;/span>: -&lt;span style="color:#bd93f9">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>After:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">redis&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">scheduler&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">type&lt;/span>: default
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">parallelism&lt;/span>: -&lt;span style="color:#bd93f9">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If &lt;code>redis.scheduler.type&lt;/code> is missing or blank, Clouddriver defaults to &lt;code>default&lt;/code> for compatibility.&lt;/p>
&lt;h3 id="security-hardening-url-restriction-validation-for-artifacts-and-webhooks">Security hardening: URL restriction validation for artifacts and webhooks&lt;/h3>
&lt;p>This release tightens URL host validation for artifact accounts and Orca webhook URL restrictions:&lt;/p>
&lt;ul>
&lt;li>Validation now uses parsed host handling (&lt;code>HttpUrl.host()&lt;/code>) instead of authority fallback parsing.&lt;/li>
&lt;li>This prevents authority/userinfo patterns from bypassing hostname checks.&lt;/li>
&lt;li>URL handling for underscore hostnames and IPv6 input is stricter and more predictable.&lt;/li>
&lt;/ul>
&lt;p>If you use uncommon URL formats (for example userinfo segments, unbracketed IPv6 literals, or underscore-based hosts), test those paths after upgrade.&lt;/p>
&lt;h3 id="clouddriver-sql-cache-sharding-aware-unknown-agent-cleanup">Clouddriver SQL cache: sharding-aware unknown-agent cleanup&lt;/h3>
&lt;p>&lt;code>SqlUnknownAgentCleanupAgent&lt;/code> now respects shard ownership and includes additional safety controls to avoid cross-pod or startup-race cleanup behavior in SQL cache environments.&lt;/p>
&lt;p>Key updates:&lt;/p>
&lt;ul>
&lt;li>The cleanup agent remains opt-in and disabled by default.&lt;/li>
&lt;li>The cleanup agent is only created when &lt;code>sql.read-only=false&lt;/code>.&lt;/li>
&lt;li>Cleanup skips when sharding state is uninitialized or misconfigured.&lt;/li>
&lt;li>New controls include &lt;code>minRecordAgeSeconds&lt;/code>, &lt;code>dryRun&lt;/code>, and &lt;code>excludedDataTypes&lt;/code>.&lt;/li>
&lt;/ul>
&lt;p>Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">unknown-agent-cleanup-agent&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">pollIntervalSeconds&lt;/span>: &lt;span style="color:#bd93f9">120&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">timeoutSeconds&lt;/span>: &lt;span style="color:#bd93f9">60&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">minRecordAgeSeconds&lt;/span>: &lt;span style="color:#bd93f9">300&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deleteBatchSize&lt;/span>: &lt;span style="color:#bd93f9">100&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">dryRun&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">excludedDataTypes&lt;/span>: []
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="ha-deployment-guidance">HA deployment guidance&lt;/h4>
&lt;p>In HA mode, enable &lt;code>sql.unknown-agent-cleanup-agent.enabled: true&lt;/code> only on Clouddriver caching pods.&lt;/p>
&lt;p>For caching pods:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">unknown-agent-cleanup-agent&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>For all non-caching Clouddriver pods:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">unknown-agent-cleanup-agent&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="clouddriver-cache-sharding-pluggable-strategy-and-key-extraction">Clouddriver cache sharding: pluggable strategy and key extraction&lt;/h3>
&lt;p>Cache sharding now supports pluggable strategies and key extractors for Redis and SQL sharding observers:&lt;/p>
&lt;ul>
&lt;li>&lt;code>strategy: modulo&lt;/code> (default, preserves legacy ownership mapping)&lt;/li>
&lt;li>&lt;code>strategy: canonical-modulo&lt;/code> (canonical positive modulo)&lt;/li>
&lt;li>&lt;code>strategy: jump&lt;/code> (jump consistent hash, less key movement during scale events)&lt;/li>
&lt;li>&lt;code>sharding-key: account | region | agent&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>Defaults remain &lt;code>strategy: modulo&lt;/code> and &lt;code>sharding-key: account&lt;/code>, so existing behavior is preserved unless you opt in to a different strategy/key.&lt;/p>
&lt;p>Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">cache-sharding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">strategy&lt;/span>: modulo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">sharding-key&lt;/span>: account
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">replica-ttl-seconds&lt;/span>: &lt;span style="color:#bd93f9">60&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">heartbeat-interval-seconds&lt;/span>: &lt;span style="color:#bd93f9">30&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>SqlCachingPodsObserver&lt;/code> also resets to a fail-open state on heartbeat/topology refresh failure to avoid stale routing decisions.&lt;/p>
&lt;h3 id="clouddriver-redis-priority-scheduler-opt-in">Clouddriver: Redis Priority Scheduler (opt-in)&lt;/h3>
&lt;p>A new Redis-based &lt;code>priority&lt;/code> scheduler is available for Clouddriver caching agents.&lt;/p>
&lt;p>Key points:&lt;/p>
&lt;ul>
&lt;li>Uses Redis sorted sets and Lua scripts for atomic scheduling transitions.&lt;/li>
&lt;li>Adds cleanup services (zombie/orphan), circuit breakers, and richer scheduler observability.&lt;/li>
&lt;li>Requires Redis 6.2+ (&lt;code>ZMSCORE&lt;/code>).&lt;/li>
&lt;/ul>
&lt;p>Enablement:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">redis&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">scheduler&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">type&lt;/span>: priority
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">agent&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-concurrent-agents&lt;/span>: &lt;span style="color:#bd93f9">100&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Migration notes:&lt;/p>
&lt;ul>
&lt;li>Legacy scalar &lt;code>redis.scheduler&lt;/code> and legacy &lt;code>redis.parallelism&lt;/code> are rejected.&lt;/li>
&lt;li>&lt;code>redis.scheduler.parallelism&lt;/code> is ignored in &lt;code>priority&lt;/code> mode.&lt;/li>
&lt;li>Use &lt;code>redis.agent.max-concurrent-agents&lt;/code> to control concurrency for &lt;code>priority&lt;/code> mode.&lt;/li>
&lt;li>&lt;code>redis.agent.disabledAgents&lt;/code> is ignored in &lt;code>priority&lt;/code> mode; use &lt;code>redis.agent.disabled-pattern&lt;/code>.&lt;/li>
&lt;/ul>
&lt;h3 id="aws-jdbc-driver-update">AWS JDBC Driver Update&lt;/h3>
&lt;p>The AWS JDBC driver has been updated from the deprecated aws-mysql-jdbc driver (version 1.0.0) to the &lt;a href="https://github.com/aws/aws-advanced-jdbc-wrapper">AWS Advanced JDBC Wrapper&lt;/a>.&lt;/p>
&lt;p>This update adds support for IAM authentication with AWS Aurora Global Database endpoints. The previous driver did not support global database endpoint format (&lt;code>*.global.rds.amazonaws.com&lt;/code>) when using IAM authentication, resulting in the error:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>java.sql.SQLException: Unsupported AWS hostname &amp;#39;&amp;lt;hostname&amp;gt;.global.rds.amazonaws.com&amp;#39;.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Amazon domain name in format *.AWS-Region.rds.amazonaws.com is expected
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Note:&lt;/strong> Standard database connections (without IAM authentication) continue to work as before and do not require any configuration changes.&lt;/p>
&lt;p>&lt;strong>Affected services:&lt;/strong> Front50, Orca, Clouddriver, Fiat&lt;/p>
&lt;h4 id="configuration-for-iam-authentication-with-aurora-global-database">Configuration for IAM Authentication with Aurora Global Database&lt;/h4>
&lt;p>If you are using IAM authentication and want to connect to Aurora Global Database endpoints, update your JDBC connection string:&lt;/p>
&lt;p>&lt;strong>New JDBC URL format:&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>jdbc:aws-wrapper:mysql://&amp;lt;GLOBAL_ENDPOINT&amp;gt;:&amp;lt;PORT&amp;gt;/&amp;lt;DATABASE&amp;gt;?wrapperPlugins=iam&amp;amp;globalClusterInstanceHostPatterns=?.&amp;lt;CLUSTER_IDENTIFIER&amp;gt;.&amp;lt;REGION1&amp;gt;.rds.amazonaws.com,?.&amp;lt;CLUSTER_IDENTIFIER&amp;gt;.&amp;lt;REGION2&amp;gt;.rds.amazonaws.com&amp;amp;iamRegion=&amp;lt;CURRENT_REGION&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Example:&lt;/strong> If your Aurora Global Database has:&lt;/p>
&lt;ul>
&lt;li>Global endpoint: &lt;code>mydb-global.global-xxxxx.global.rds.amazonaws.com&lt;/code>&lt;/li>
&lt;li>Primary (us-west-2): &lt;code>mydb.cluster-abc123.us-west-2.rds.amazonaws.com&lt;/code>&lt;/li>
&lt;li>Secondary (us-east-1): &lt;code>mydb.cluster-abc123.us-east-1.rds.amazonaws.com&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>Configure the JDBC URL as:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>jdbc:aws-wrapper:mysql://mydb-global.global-xxxxx.global.rds.amazonaws.com:3306/front50?wrapperPlugins=iam&amp;amp;globalClusterInstanceHostPatterns=?.cluster-abc123.us-west-2.rds.amazonaws.com,?.cluster-abc123.us-east-1.rds.amazonaws.com&amp;amp;iamRegion=us-west-2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="observability-plugin-update">Observability Plugin Update&lt;/h3>
&lt;p>The Armory Observability plugin has been updated to version 1.6.1 to resolve compatibility issues with the new AWS JDBC wrapper.&lt;/p>
&lt;h3 id="security-enhancement-url-filteringrestriction-capabilities-on-artifact-accounts">Security enhancement: Url Filtering/Restriction capabilities on Artifact accounts&lt;/h3>
&lt;p>Starting in Armory Continuous Deployment 2.36.6, we have enabled to capability to filter/restrict urls that can be accessed per artifact accounts.
This feature provides a safeguard around user input of remote urls when artifact accounts are in used in the context of a pipeline execution.&lt;/p>
&lt;p>An example configuration can be found below which can be added per artifact account (http, github, helm):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">artifacts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">http&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">name&lt;/span>: http_account
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">urlRestrictions&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">allowedDomains&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - mydomain.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - raw.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - api.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLocalhost&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLinkLocal&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectVerbatimIps&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectedIps&lt;/span>: [] &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>By default the configuration blocks any local CIDR ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), localhost, link local and raw IPs.
For full configuration details please refer to this &lt;a href="https://github.com/spinnaker/spinnaker/blob/main/clouddriver/clouddriver-artifacts/src/main/java/com/netflix/spinnaker/clouddriver/artifacts/config/HttpUrlRestrictions.java">configuration class&lt;/a>&lt;/p>
&lt;h3 id="armory-continuous-deployment-2362-onwards-docker-images-now-based-on-ubuntu">Armory Continuous Deployment 2.36.2 onwards Docker images now based on Ubuntu&lt;/h3>
&lt;p>The Armory Continuous Deployment 2.36.2 Docker images have been updated to use Ubuntu as the base image, replacing the previous Alpine base.
This change enhances compatibility with various libraries and tools, improving overall stability and performance.
Additionally, the new images now include all the necessary dependencies for authentication on a Kebreros server.&lt;/p>
&lt;h3 id="pipeline-reference-feature-is-now-able-to-lazy-load-the-pipeline-reference-pipelines">Pipeline Reference feature is now able to Lazy load the pipeline reference pipelines&lt;/h3>
&lt;p>In Spinnaker OSS release 1.35.0 Orca introduced a feature flag to reduce the execution size in nested pipelines by
converting PipelineTrigger to PipelineRefTrigger:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">executionRepository&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipelineRef&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>When enabled, child pipeline execution ids are stored in sql instead of the entire child pipeline execution context.&lt;/p>
&lt;p>In Armory CD 2.36.2 this functionality is now extended to make the in-memory representation of the pipelines aware of the pipeline reference
and to not load in-memory a full representation of the pipeline context. To enable this feature in Deck add the following in &lt;code>settings-local.js&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.pipelineRefEnabled = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span> &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4842">PR 4842&lt;/a>&lt;/em>
&lt;em>Deck &lt;a href="https://github.com/spinnaker/deck/pull/10164">PR 10164&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="new-pipeline-stage-configuration-backoffperiodms">New pipeline stage configuration &lt;code>backOffPeriodMs&lt;/code>&lt;/h3>
&lt;p>A new configuration option &lt;code>backOffPeriodMs&lt;/code> has been added to the pipeline stage configuration. This option allows users
to specify a back-off period in milliseconds for stages that may need to retry operations after a failure. Before this,
pipeline authors had no control over the backoff period. It came from either spinnaker configuration properties or
implementations of RetryableTask.getDynamicBackoffPeriod.&lt;/p>
&lt;p>Additionally, the following configuration options have been added that allow admins to specify globablly the backoff period:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.global.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.&amp;lt;cloud provider&amp;gt;.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> tasks.&amp;lt;cloud provider&amp;gt;.&amp;lt;account name&amp;gt;.backOffPeriod:&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4841">PR 4841&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="java-upgrades">Java upgrades&lt;/h3>
&lt;p>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: &lt;code>--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&lt;/code> to clouddriver if using GCP accounts due to credentials parsing of certificates. These can set in the &lt;a href="https://spinnaker.io/docs/reference/halyard/custom/#custom-service-settings">service-settings config&lt;/a> . These configs are likely to be added to the defaults in all future releases&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">service-settings&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">env&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">JAVA_OPTS&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;--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&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="performance-improvements-for-pipeline-executions">Performance Improvements for Pipeline Executions&lt;/h3>
&lt;p>This release includes several optimizations to improve pipeline execution times, particularly for complex pipeline structures.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>Memorize the &lt;code>anyUpstreamStagesFailed&lt;/code> extension function to improve time complexity from exponential to linear&lt;/li>
&lt;li>Optimize &lt;code>getAncestorsImpl&lt;/code> to reduce time complexity by a factor of N, where N is the number of stages in a pipeline&lt;/li>
&lt;li>Optimize &lt;code>StartStageHandler&lt;/code> to only call withAuth (which calls getAncestorsImpl) when&lt;/li>
&lt;/ol>
&lt;p>These enhancements significantly reduce pipeline execution time, with the most notable gains observed in dense pipeline graphs. For example, in the &lt;code>ComplexPipeline.kt&lt;/code> test scenario, execution time improved from not completing at all to approximately &lt;code>160ms&lt;/code>.&lt;/p>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4824">PR 4824&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/h3>
&lt;p>This release enhances the performance of SQL-backed pipeline queries by optimizing database operations, particularly for the API call:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>/applications/{application}/pipelines?expand=false&amp;amp;limit=2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>which is frequently initiated by Deck and forwarded through Gate to Orca.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ul>
&lt;li>Improved Query Efficiency: Optimized the retrieval of pipeline execution data, significantly reducing database query times.&lt;/li>
&lt;li>Refactored &lt;code>TaskController&lt;/code>: Externalized configuration properties to allow better flexibility and tuning.&lt;/li>
&lt;li>Enhanced &lt;code>getPipelinesForApplication()&lt;/code>
&lt;ul>
&lt;li>Limits the number of pipeline config IDs queried.&lt;/li>
&lt;li>Processes multiple pipeline config IDs simultaneously.&lt;/li>
&lt;li>Introduces multi-threading to handle batches efficiently.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4804">PR 4804&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="feature-read-connection-pool-for-sql-execution-repository">Feature: Read Connection Pool for SQL Execution Repository&lt;/h3>
&lt;p>This release introduces support for a dedicated read connection pool for specific read-only database queries in &lt;code>SqlExecutionRepository&lt;/code>&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>New &amp;ldquo;read&amp;rdquo; Connection Pool: Allows read operations to be routed to a separate connection pool.&lt;/li>
&lt;li>Configurable Read Pool: Users can define an additional read connection pool in the SQL configuration.&lt;/li>
&lt;li>Ensures Data Consistency: Some read queries still rely on recently written data and are not yet converted to use a read replica due to potential replication lag.&lt;/li>
&lt;/ol>
&lt;p>Configuration Example&lt;/p>
&lt;p>To enable the read connection pool, add the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionPools&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;...&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">read&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jdbcUrl&lt;/span>: jdbc:...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user&lt;/span>: orca_service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">password&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">validationTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxPoolSize&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">minIdle&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxLifetimeMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">idleTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4803">PR 4803&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="enhanced-pipeline-batch-update-feature">Enhanced pipeline batch update feature&lt;/h3>
&lt;h4 id="gate">Gate&lt;/h4>
&lt;p>Adds a new enpdoint, &lt;code>POST /pipelines/bulksave&lt;/code>, 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&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bulksave&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the max number of times gate will poll orca to check for task status&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-polls-for-task-completion&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the interval at which gate will poll orca.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">taskCompletionCheckIntervalMs&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="orca">Orca&lt;/h4>
&lt;p>Updates Orca&amp;rsquo;s SavePipelineTask to support bulk saves using the updated functionality in the front50 bulk save endpoint.&lt;/p>
&lt;p>With &lt;a href="https://github.com/spinnaker/orca/pull/4781">Orca PR 4781&lt;/a>, keys from the stage context&amp;rsquo;s outputs section can now be removed (there by reducing the context size significantly). At present the following tasks support this feature:&lt;/p>
&lt;ul>
&lt;li>PromoteManifestKatoOutputsTask&lt;/li>
&lt;li>WaitOnJobCompletionTask&lt;/li>
&lt;li>ResolveDeploySourceManifestTask&lt;/li>
&lt;li>BindProducedArtifactsTask&lt;/li>
&lt;/ul>
&lt;p>The &lt;a href="https://github.com/spinnaker/orca/pull/4788">Orca PR 4788&lt;/a> 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.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">promoteManifestKatoOutputsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.createdArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.boundArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">waitOnJobCompletionTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - jobStatus
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - completionDetails
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">resolveDeploySourceManifestTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - requiredArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - optionalArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">core&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">bindProducedArtifactsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - artifacts&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkClouddriver&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">auditModeEnabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="front50">Front50&lt;/h4>
&lt;p>Batch update operation in front50 is now atomic. Deserialization issues are addressed.
Configurable controls are added to decide whether cache should be refreshed while checking for duplicate pipelines:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">front50&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">save&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">refreshCacheOnDuplicatesCheck&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> // default is true&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Here the value for &lt;code>successful_pipelines&lt;/code> is the list of successful pipeline names whereas the value for &lt;code>failed_pipelines&lt;/code> is the list of failed pipelines expressed as maps.&lt;/p>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>Armory CD 2.36.8 tracks the latest published upstream &lt;code>1.36.x&lt;/code> patch line.&lt;/p>
&lt;p>Upstream references:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://www.spinnaker.io/changelogs/1.36.1-changelog/">Spinnaker v1.36.1&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.spinnaker.io/changelogs/1.36.2-changelog/">Spinnaker v1.36.2&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.spinnaker.io/changelogs/1.36.3-changelog/">Spinnaker v1.36.3&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Notable upstream changes:&lt;/p>
&lt;ul>
&lt;li>Clouddriver: improved ECS target-group health evaluation and several AWS/GCP reliability fixes.&lt;/li>
&lt;li>Gate/Echo: SAML signing behavior fix and duplicate manual-judgment notification fix.&lt;/li>
&lt;li>Clouddriver (Google): async operation retry/status polling to prevent progressing pipeline tasks before cloud operations settle.&lt;/li>
&lt;/ul>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>
version: 2.36.8
timestamp: 2026-03-05
services:
clouddriver:
version: 2.36.8
commit: 9238966167d0036449c1cf1610d4e40d30a59a95
deck:
version: 2.36.8
commit: 54a2aada8cb187554536daeb8b8b2858714d1afe
dinghy:
version: 2.36.8
commit: d36fdf5b496b18212275686d4c9069d72c9dbeb1
echo:
version: 2.36.8
commit: c7a79f742083c508cd28330814925e8f3906d067
fiat:
version: 2.36.8
commit: e77853e0322014f3b3f8911d9d6f2431830c192c
front50:
version: 2.36.8
commit: 5f8f39172e88b3abe49bab28e2fcb786b8653bf0
gate:
version: 2.36.8
commit: f99a459232f70e19a719a1962f7c6fcee9218750
igor:
version: 2.36.8
commit: 30cab7aaabdfe08c05c37146ab644555cf413513
kayenta:
version: 2.36.8
commit: 2ce818eed3873004412758a0f731cf8420df8594
orca:
version: 2.36.8
commit: 178d4b576e7b8136c42e0baa108cbf2730f6cec8
rosco:
version: 2.36.8
commit: 8e35f1c3560b3b8f7de6fc4a35718b4aee98a47c
terraformer:
version: 2.36.8
commit: 8453d42107fda5f0c315c8459f523e9182805832
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-clouddriver---23672368">Armory Clouddriver - 2.36.7&amp;hellip;2.36.8&lt;/h4>
&lt;ul>
&lt;li>fix(validation): URL validation hardening on underscore/authority handling (upstream &lt;a href="https://github.com/spinnaker/spinnaker/pull/7428">#7428&lt;/a>)&lt;/li>
&lt;li>fix(cats-sql): make &lt;code>SqlUnknownAgentCleanupAgent&lt;/code> sharding-aware (upstream &lt;a href="https://github.com/spinnaker/spinnaker/pull/7431">#7431&lt;/a>)&lt;/li>
&lt;li>refactor(sharding): pluggable sharding strategy for caching pods (upstream &lt;a href="https://github.com/spinnaker/spinnaker/pull/7432">#7432&lt;/a>)&lt;/li>
&lt;li>feat(scheduler): add Redis priority scheduler (upstream &lt;a href="https://github.com/spinnaker/spinnaker/pull/7433">#7433&lt;/a>)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---23672368">Armory Fiat - 2.36.7&amp;hellip;2.36.8&lt;/h4>
&lt;h4 id="armory-front50---23672368">Armory Front50 - 2.36.7&amp;hellip;2.36.8&lt;/h4>
&lt;h4 id="armory-orca---23672368">Armory Orca - 2.36.7&amp;hellip;2.36.8&lt;/h4>
&lt;ul>
&lt;li>fix(validation): URL restriction parsing/validation alignment for webhook restrictions (upstream &lt;a href="https://github.com/spinnaker/spinnaker/pull/7428">#7428&lt;/a>)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---23672368">Armory Igor - 2.36.7&amp;hellip;2.36.8&lt;/h4>
&lt;h4 id="terraformer---23672368">Terraformer™ - 2.36.7&amp;hellip;2.36.8&lt;/h4>
&lt;h4 id="armory-rosco---23672368">Armory Rosco - 2.36.7&amp;hellip;2.36.8&lt;/h4>
&lt;h4 id="armory-gate---23672368">Armory Gate - 2.36.7&amp;hellip;2.36.8&lt;/h4>
&lt;h4 id="armory-echo---23672368">Armory Echo - 2.36.7&amp;hellip;2.36.8&lt;/h4>
&lt;h4 id="armory-deck---23672368">Armory Deck - 2.36.7&amp;hellip;2.36.8&lt;/h4>
&lt;h4 id="armory-kayenta---23672368">Armory Kayenta - 2.36.7&amp;hellip;2.36.8&lt;/h4>
&lt;h4 id="dinghy---23672368">Dinghy™ - 2.36.7&amp;hellip;2.36.8&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-igor---1361">Spinnaker Igor - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-rosco---1361">Spinnaker Rosco - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-gate---1361">Spinnaker Gate - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-echo---1361">Spinnaker Echo - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-deck---1361">Spinnaker Deck - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-orca---1361">Spinnaker Orca - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1361">Spinnaker Kayenta - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-front50---1361">Spinnaker Front50 - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1361">Spinnaker Clouddriver - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-fiat---1361">Spinnaker Fiat - 1.36.1&lt;/h4></description></item><item><title>Continuous-Deployment: v2.36.7 Armory Continuous Deployment Release (Spinnaker™ v1.36.1)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-7/</link><pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-7/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="2026-01-20-release-notes">2026-01-20 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Important&lt;/h4>
&lt;a href="/continuous-deployment/installation/armory-operator/">Armory Operator&lt;/a> has been deprecated and will is considered EOL. Please migrate to the &lt;a href="/continuous-deployment/spinnaker-user-guides/armory-operator-to-kustomize-migration/">Kustomize&lt;/a> method of deployment.
&lt;/div>
&lt;p>To install, upgrade, or configure Armory CD 2.36.7, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;p>The following configuration properties have been restructured:&lt;/p>
&lt;p>Previous Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New configuration format&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">optimize-execution-retrieval&lt;/span>: &amp;lt;boolean&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-execution-retrieval-threads&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-number-of-pipeline-executions-to-process&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">execution-retrieval-timeout-seconds&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>These changes improve query performance and execution retrieval efficiency, particularly for large-scale pipeline applications.&lt;/p>
&lt;p>&lt;a href="#performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/a>&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="echo-filter-enabled-pipelines-feature">Echo Filter enabled pipelines feature&lt;/h3>
&lt;p>Spinnaker OSS Version 1.31.0 introduced a feature to filter pipelines from front50 , that was disabled by default.
Version 1.35.0 enabled it by default , which is not recommended and can cause issues with automated triggers.
In Armory CD 2.36.2 we recommend to explicitly disable this feature by setting the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>apiVersion: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kind: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>metadata:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> name: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>spec:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> spinnakerConfig:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> profiles:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> pipelineCache:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> filterFront50Pipelines: false
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;h3 id="aws-jdbc-driver-update">AWS JDBC Driver Update&lt;/h3>
&lt;p>The AWS JDBC driver has been updated from the deprecated aws-mysql-jdbc driver (version 1.0.0) to the &lt;a href="https://github.com/aws/aws-advanced-jdbc-wrapper">AWS Advanced JDBC Wrapper&lt;/a>.&lt;/p>
&lt;p>This update adds support for IAM authentication with AWS Aurora Global Database endpoints. The previous driver did not support global database endpoint format (&lt;code>*.global.rds.amazonaws.com&lt;/code>) when using IAM authentication, resulting in the error:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>java.sql.SQLException: Unsupported AWS hostname &amp;#39;&amp;lt;hostname&amp;gt;.global.rds.amazonaws.com&amp;#39;.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Amazon domain name in format *.AWS-Region.rds.amazonaws.com is expected
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Note:&lt;/strong> Standard database connections (without IAM authentication) continue to work as before and do not require any configuration changes.&lt;/p>
&lt;p>&lt;strong>Affected services:&lt;/strong> Front50, Orca, Clouddriver, Fiat&lt;/p>
&lt;h4 id="configuration-for-iam-authentication-with-aurora-global-database">Configuration for IAM Authentication with Aurora Global Database&lt;/h4>
&lt;p>If you are using IAM authentication and want to connect to Aurora Global Database endpoints, update your JDBC connection string:&lt;/p>
&lt;p>&lt;strong>New JDBC URL format:&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>jdbc:aws-wrapper:mysql://&amp;lt;GLOBAL_ENDPOINT&amp;gt;:&amp;lt;PORT&amp;gt;/&amp;lt;DATABASE&amp;gt;?wrapperPlugins=iam&amp;amp;globalClusterInstanceHostPatterns=?.&amp;lt;CLUSTER_IDENTIFIER&amp;gt;.&amp;lt;REGION1&amp;gt;.rds.amazonaws.com,?.&amp;lt;CLUSTER_IDENTIFIER&amp;gt;.&amp;lt;REGION2&amp;gt;.rds.amazonaws.com&amp;amp;iamRegion=&amp;lt;CURRENT_REGION&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Example:&lt;/strong> If your Aurora Global Database has:&lt;/p>
&lt;ul>
&lt;li>Global endpoint: &lt;code>mydb-global.global-xxxxx.global.rds.amazonaws.com&lt;/code>&lt;/li>
&lt;li>Primary (us-west-2): &lt;code>mydb.cluster-abc123.us-west-2.rds.amazonaws.com&lt;/code>&lt;/li>
&lt;li>Secondary (us-east-1): &lt;code>mydb.cluster-abc123.us-east-1.rds.amazonaws.com&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>Configure the JDBC URL as:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>jdbc:aws-wrapper:mysql://mydb-global.global-xxxxx.global.rds.amazonaws.com:3306/front50?wrapperPlugins=iam&amp;amp;globalClusterInstanceHostPatterns=?.cluster-abc123.us-west-2.rds.amazonaws.com,?.cluster-abc123.us-east-1.rds.amazonaws.com&amp;amp;iamRegion=us-west-2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="observability-plugin-update">Observability Plugin Update&lt;/h3>
&lt;p>The Armory Observability plugin has been updated to version 1.6.1 to resolve compatibility issues with the new AWS JDBC wrapper.&lt;/p>
&lt;h3 id="security-enhancement-url-filteringrestriction-capabilities-on-artifact-accounts">Security enhancement: Url Filtering/Restriction capabilities on Artifact accounts&lt;/h3>
&lt;p>Starting in Armory Continuous Deployment 2.36.6, we have enabled to capability to filter/restrict urls that can be accessed per artifact accounts.
This feature provides a safeguard around user input of remote urls when artifact accounts are in used in the context of a pipeline execution.&lt;/p>
&lt;p>An example configuration can be found below which can be added per artifact account (http, github, helm):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">artifacts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">http&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">name&lt;/span>: http_account
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">urlRestrictions&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">allowedDomains&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - mydomain.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - raw.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - api.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLocalhost&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLinkLocal&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectVerbatimIps&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectedIps&lt;/span>: [] &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>By default the configuration blocks any local CIDR ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), localhost, link local and raw IPs.
For full configuration details please refer to this &lt;a href="https://github.com/spinnaker/spinnaker/blob/main/clouddriver/clouddriver-artifacts/src/main/java/com/netflix/spinnaker/clouddriver/artifacts/config/HttpUrlRestrictions.java">configuration class&lt;/a>&lt;/p>
&lt;h3 id="armory-continuous-deployment-2362-onwards-docker-images-now-based-on-ubuntu">Armory Continuous Deployment 2.36.2 onwards Docker images now based on Ubuntu&lt;/h3>
&lt;p>The Armory Continuous Deployment 2.36.2 Docker images have been updated to use Ubuntu as the base image, replacing the previous Alpine base.
This change enhances compatibility with various libraries and tools, improving overall stability and performance.
Additionally, the new images now include all the necessary dependencies for authentication on a Kebreros server.&lt;/p>
&lt;h3 id="pipeline-reference-feature-is-now-able-to-lazy-load-the-pipeline-reference-pipelines">Pipeline Reference feature is now able to Lazy load the pipeline reference pipelines&lt;/h3>
&lt;p>In Spinnaker OSS release 1.35.0 Orca introduced a feature flag to reduce the execution size in nested pipelines by
converting PipelineTrigger to PipelineRefTrigger:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">executionRepository&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipelineRef&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>When enabled, child pipeline execution ids are stored in sql instead of the entire child pipeline execution context.&lt;/p>
&lt;p>In Armory CD 2.36.2 this functionality is now extended to make the in-memory representation of the pipelines aware of the pipeline reference
and to not load in-memory a full representation of the pipeline context. To enable this feature in Deck add the following in &lt;code>settings-local.js&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.pipelineRefEnabled = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span> &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4842">PR 4842&lt;/a>&lt;/em>
&lt;em>Deck &lt;a href="https://github.com/spinnaker/deck/pull/10164">PR 10164&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="new-pipeline-stage-configuration-backoffperiodms">New pipeline stage configuration &lt;code>backOffPeriodMs&lt;/code>&lt;/h3>
&lt;p>A new configuration option &lt;code>backOffPeriodMs&lt;/code> has been added to the pipeline stage configuration. This option allows users
to specify a back-off period in milliseconds for stages that may need to retry operations after a failure. Before this,
pipeline authors had no control over the backoff period. It came from either spinnaker configuration properties or
implementations of RetryableTask.getDynamicBackoffPeriod.&lt;/p>
&lt;p>Additionally, the following configuration options have been added that allow admins to specify globablly the backoff period:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.global.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.&amp;lt;cloud provider&amp;gt;.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> tasks.&amp;lt;cloud provider&amp;gt;.&amp;lt;account name&amp;gt;.backOffPeriod:&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4841">PR 4841&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="java-upgrades">Java upgrades&lt;/h3>
&lt;p>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: &lt;code>--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&lt;/code> to clouddriver if using GCP accounts due to credentials parsing of certificates. These can set in the &lt;a href="https://spinnaker.io/docs/reference/halyard/custom/#custom-service-settings">service-settings config&lt;/a> . These configs are likely to be added to the defaults in all future releases&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">service-settings&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">env&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">JAVA_OPTS&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;--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&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="performance-improvements-for-pipeline-executions">Performance Improvements for Pipeline Executions&lt;/h3>
&lt;p>This release includes several optimizations to improve pipeline execution times, particularly for complex pipeline structures.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>Memorize the &lt;code>anyUpstreamStagesFailed&lt;/code> extension function to improve time complexity from exponential to linear&lt;/li>
&lt;li>Optimize &lt;code>getAncestorsImpl&lt;/code> to reduce time complexity by a factor of N, where N is the number of stages in a pipeline&lt;/li>
&lt;li>Optimize &lt;code>StartStageHandler&lt;/code> to only call withAuth (which calls getAncestorsImpl) when&lt;/li>
&lt;/ol>
&lt;p>These enhancements significantly reduce pipeline execution time, with the most notable gains observed in dense pipeline graphs. For example, in the &lt;code>ComplexPipeline.kt&lt;/code> test scenario, execution time improved from not completing at all to approximately &lt;code>160ms&lt;/code>.&lt;/p>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4824">PR 4824&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/h3>
&lt;p>This release enhances the performance of SQL-backed pipeline queries by optimizing database operations, particularly for the API call:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>/applications/{application}/pipelines?expand=false&amp;amp;limit=2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>which is frequently initiated by Deck and forwarded through Gate to Orca.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ul>
&lt;li>Improved Query Efficiency: Optimized the retrieval of pipeline execution data, significantly reducing database query times.&lt;/li>
&lt;li>Refactored &lt;code>TaskController&lt;/code>: Externalized configuration properties to allow better flexibility and tuning.&lt;/li>
&lt;li>Enhanced &lt;code>getPipelinesForApplication()&lt;/code>
&lt;ul>
&lt;li>Limits the number of pipeline config IDs queried.&lt;/li>
&lt;li>Processes multiple pipeline config IDs simultaneously.&lt;/li>
&lt;li>Introduces multi-threading to handle batches efficiently.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4804">PR 4804&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="feature-read-connection-pool-for-sql-execution-repository">Feature: Read Connection Pool for SQL Execution Repository&lt;/h3>
&lt;p>This release introduces support for a dedicated read connection pool for specific read-only database queries in &lt;code>SqlExecutionRepository&lt;/code>&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>New &amp;ldquo;read&amp;rdquo; Connection Pool: Allows read operations to be routed to a separate connection pool.&lt;/li>
&lt;li>Configurable Read Pool: Users can define an additional read connection pool in the SQL configuration.&lt;/li>
&lt;li>Ensures Data Consistency: Some read queries still rely on recently written data and are not yet converted to use a read replica due to potential replication lag.&lt;/li>
&lt;/ol>
&lt;p>Configuration Example&lt;/p>
&lt;p>To enable the read connection pool, add the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionPools&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;...&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">read&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jdbcUrl&lt;/span>: jdbc:...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user&lt;/span>: orca_service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">password&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">validationTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxPoolSize&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">minIdle&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxLifetimeMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">idleTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4803">PR 4803&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="enhanced-pipeline-batch-update-feature">Enhanced pipeline batch update feature&lt;/h3>
&lt;h4 id="gate">Gate&lt;/h4>
&lt;p>Adds a new enpdoint, &lt;code>POST /pipelines/bulksave&lt;/code>, 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&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bulksave&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the max number of times gate will poll orca to check for task status&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-polls-for-task-completion&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the interval at which gate will poll orca.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">taskCompletionCheckIntervalMs&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="orca">Orca&lt;/h4>
&lt;p>Updates Orca&amp;rsquo;s SavePipelineTask to support bulk saves using the updated functionality in the front50 bulk save endpoint.&lt;/p>
&lt;p>With &lt;a href="https://github.com/spinnaker/orca/pull/4781">Orca PR 4781&lt;/a>, keys from the stage context&amp;rsquo;s outputs section can now be removed (there by reducing the context size significantly). At present the following tasks support this feature:&lt;/p>
&lt;ul>
&lt;li>PromoteManifestKatoOutputsTask&lt;/li>
&lt;li>WaitOnJobCompletionTask&lt;/li>
&lt;li>ResolveDeploySourceManifestTask&lt;/li>
&lt;li>BindProducedArtifactsTask&lt;/li>
&lt;/ul>
&lt;p>The &lt;a href="https://github.com/spinnaker/orca/pull/4788">Orca PR 4788&lt;/a> 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.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">promoteManifestKatoOutputsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.createdArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.boundArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">waitOnJobCompletionTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - jobStatus
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - completionDetails
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">resolveDeploySourceManifestTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - requiredArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - optionalArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">core&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">bindProducedArtifactsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - artifacts&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkClouddriver&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">auditModeEnabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="front50">Front50&lt;/h4>
&lt;p>Batch update operation in front50 is now atomic. Deserialization issues are addressed.
Configurable controls are added to decide whether cache should be refreshed while checking for duplicate pipelines:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">front50&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">save&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">refreshCacheOnDuplicatesCheck&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> // default is true&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Here the value for &lt;code>successful_pipelines&lt;/code> is the list of successful pipeline names whereas the value for &lt;code>failed_pipelines&lt;/code> is the list of failed pipelines expressed as maps.&lt;/p>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.36.1-changelog/">Spinnaker v1.36.1&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>
version: 2.36.7
timestamp: 2026-01-20
services:
clouddriver:
version: 2.36.7
commit: c9451cca2524917629b37d6607e92c8256dbe864
deck:
version: 2.36.7
commit: 54a2aada8cb187554536daeb8b8b2858714d1afe
dinghy:
version: 2.36.7
commit: d36fdf5b496b18212275686d4c9069d72c9dbeb1
echo:
version: 2.36.7
commit: c7a79f742083c508cd28330814925e8f3906d067
fiat:
version: 2.36.7
commit: e77853e0322014f3b3f8911d9d6f2431830c192c
front50:
version: 2.36.7
commit: 5f8f39172e88b3abe49bab28e2fcb786b8653bf0
gate:
version: 2.36.7
commit: f99a459232f70e19a719a1962f7c6fcee9218750
igor:
version: 2.36.7
commit: 30cab7aaabdfe08c05c37146ab644555cf413513
kayenta:
version: 2.36.7
commit: 2ce818eed3873004412758a0f731cf8420df8594
orca:
version: 2.36.7
commit: b0fc054bcaa0a633c13f069bd67f19a90f6eb6c2
rosco:
version: 2.36.7
commit: 8e35f1c3560b3b8f7de6fc4a35718b4aee98a47c
terraformer:
version: 2.36.7
commit: 8453d42107fda5f0c315c8459f523e9182805832
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-clouddriver---23662367">Armory Clouddriver - 2.36.6&amp;hellip;2.36.7&lt;/h4>
&lt;h4 id="armory-fiat---23662367">Armory Fiat - 2.36.6&amp;hellip;2.36.7&lt;/h4>
&lt;h4 id="armory-front50---23662367">Armory Front50 - 2.36.6&amp;hellip;2.36.7&lt;/h4>
&lt;h4 id="armory-orca---23662367">Armory Orca - 2.36.6&amp;hellip;2.36.7&lt;/h4>
&lt;h4 id="armory-igor---23662367">Armory Igor - 2.36.6&amp;hellip;2.36.7&lt;/h4>
&lt;h4 id="terraformer---23662367">Terraformer™ - 2.36.6&amp;hellip;2.36.7&lt;/h4>
&lt;h4 id="armory-rosco---23662367">Armory Rosco - 2.36.6&amp;hellip;2.36.7&lt;/h4>
&lt;h4 id="armory-gate---23662367">Armory Gate - 2.36.6&amp;hellip;2.36.7&lt;/h4>
&lt;h4 id="armory-echo---23662367">Armory Echo - 2.36.6&amp;hellip;2.36.7&lt;/h4>
&lt;h4 id="armory-deck---23662367">Armory Deck - 2.36.6&amp;hellip;2.36.7&lt;/h4>
&lt;h4 id="armory-kayenta---23662367">Armory Kayenta - 2.36.6&amp;hellip;2.36.7&lt;/h4>
&lt;h4 id="dinghy---23662367">Dinghy™ - 2.36.6&amp;hellip;2.36.7&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-igor---1361">Spinnaker Igor - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-rosco---1361">Spinnaker Rosco - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-gate---1361">Spinnaker Gate - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-echo---1361">Spinnaker Echo - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-deck---1361">Spinnaker Deck - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-orca---1361">Spinnaker Orca - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1361">Spinnaker Kayenta - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-front50---1361">Spinnaker Front50 - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1361">Spinnaker Clouddriver - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-fiat---1361">Spinnaker Fiat - 1.36.1&lt;/h4></description></item><item><title>Continuous-Deployment: v2.38.1 Armory Continuous Deployment Release (Spinnaker™ v2025.2.2)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-38-1/</link><pubDate>Wed, 29 Oct 2025 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-38-1/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="2025-10-29-release-notes">2025-10-29 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Important&lt;/h4>
&lt;a href="/continuous-deployment/installation/armory-operator/">Armory Operator&lt;/a> has been deprecated and will is considered EOL. Please migrate to the &lt;a href="/continuous-deployment/spinnaker-user-guides/armory-operator-to-kustomize-migration/">Kustomize&lt;/a> method of deployment.
&lt;/div>
&lt;p>To install, upgrade, or configure Armory CD 2.38.1, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="gate-spring-security-5-oauth2-migration">Gate: Spring Security 5 Oauth2 Migration&lt;/h3>
&lt;p>Armory CD 2.38.0 removes deprecate Oauth2 annotations and uses Spring Security 5 DSL. In order to configure oauth2 in &lt;code>gate-local.yml&lt;/code> have changed to:&lt;/p>
&lt;h2 id="google-oauth-configuration">Google Oauth configuration&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spring&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">security&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">oauth2&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">registration&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">google&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client-id&lt;/span>: &amp;lt;client-id&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client-secret&lt;/span>: &amp;lt;client-secret&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">authorization-grant-type&lt;/span>: authorization_code
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">redirect-uri&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;https://&amp;lt;your-domain&amp;gt;/login/oauth2/code/google&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">scope&lt;/span>: profile,email,openid
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client-name&lt;/span>: google
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">provider&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">google&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">authorization-uri&lt;/span>: https://accounts.google.com/o/oauth2/auth
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">token-uri&lt;/span>: https://oauth2.googleapis.com/token
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user-info-uri&lt;/span>: https://www.googleapis.com/oauth2/v3/userinfo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user-name-attribute&lt;/span>: sub
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="github-oauth2-configuration">Github Oauth2 configuration&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spring&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">security&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">oauth2&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">registration&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">userInfoMapping&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">email&lt;/span>: email
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">firstName&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#39;&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">lastName&lt;/span>: name
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">username&lt;/span>: login
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">github&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client-id&lt;/span>: &amp;lt;client-id&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client-secret&lt;/span>: &amp;lt;client-secret&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">authorization-grant-type&lt;/span>: authorization_code
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">redirect-uri&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;https://&amp;lt;your-domain&amp;gt;/login/oauth2/code/github&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">scope&lt;/span>: user,email
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client-name&lt;/span>: github
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">provider&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">github&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">authorization-uri&lt;/span>: https://github.com/login/oauth/authorize
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">token-uri&lt;/span>: https://github.com/login/oauth/access_token
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user-info-uri&lt;/span>: https://api.github.com/user
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user-name-attribute&lt;/span>: login
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="orca-tasks-configuration-changes">Orca: Tasks configuration changes&lt;/h3>
&lt;p>The following configuration properties have been restructured in &lt;code>orca-local.yml&lt;/code>:&lt;/p>
&lt;p>Previous Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New configuration format&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">optimize-execution-retrieval&lt;/span>: &amp;lt;boolean&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-execution-retrieval-threads&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-number-of-pipeline-executions-to-process&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">execution-retrieval-timeout-seconds&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>These changes improve query performance and execution retrieval efficiency, particularly for large-scale pipeline applications.&lt;/p>
&lt;p>&lt;a href="#orca-performance-improvements-for-sql-backend">Orca: Performance Improvements for SQL Backend&lt;/a>&lt;/p>
&lt;h3 id="policy-engine-opa-is-now-built-into-armory-cd">Policy Engine (OPA) is now built into Armory CD&lt;/h3>
&lt;p>The Policy Engine is now built into the Armory CD distribution. The &lt;code>Armory.PolicyEngine&lt;/code> plugin and the &lt;code>armory.opa&lt;/code> configuration block are replaced by a native &lt;code>armory.policy-engine&lt;/code> block. Remove the &lt;code>Armory.PolicyEngine&lt;/code> plugin from &lt;code>spinnaker.extensibility.plugins&lt;/code> in every service that had it configured and update the configuration block in &lt;code>clouddriver-local.yml&lt;/code>, &lt;code>front50-local.yml&lt;/code>, and any other service profile that references OPA:&lt;/p>
&lt;p>Previous:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">armory&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">opa&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">url&lt;/span>: http://opa-server.opa:8181/v1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">armory&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">policy-engine&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">baseurl&lt;/span>: http://opa-server.opa:8181/v1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The OPA server deployment and policies are unchanged.&lt;/p>
&lt;h3 id="kubernetes-agent-kubesvc-is-now-built-into-armory-cd">Kubernetes Agent (Kubesvc) is now built into Armory CD&lt;/h3>
&lt;p>The Scale Agent plugin (&lt;code>Armory.Kubesvc&lt;/code>) is now built into the Armory CD Clouddriver image. The plugin, its repository, and the top-level &lt;code>kubesvc:&lt;/code> configuration block must be replaced by the native &lt;code>armory.kubesvc:&lt;/code> block in &lt;code>clouddriver-local.yml&lt;/code>:&lt;/p>
&lt;p>Previous:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubesvc&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cluster&lt;/span>: kubernetes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># ...remaining kubesvc settings...&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">extensibility&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">plugins&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">Armory.Kubesvc&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">version&lt;/span>: &lt;span style="color:#bd93f9">0.16.2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">extensions&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">armory.kubesvc&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repositories&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">armory-agent&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">url&lt;/span>: https://raw.githubusercontent.com/armory-io/agent-k8s-spinplug-releases/master/repositories.json
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">armory&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">kubesvc&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cluster&lt;/span>: kubernetes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># ...remaining kubesvc settings (unchanged)...&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>All sub-properties (grpc, cache, heartbeat, operations, credentials) stay the same — only the parent key changes. Remove &lt;code>Armory.Kubesvc&lt;/code> from &lt;code>spinnaker.extensibility.plugins&lt;/code> and &lt;code>armory-agent&lt;/code> from &lt;code>spinnaker.extensibility.repositories&lt;/code>. The Armory Agent &lt;strong>service&lt;/strong> deployed in target clusters is unchanged.&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="security-enhancement-url-filteringrestriction-capabilities-on-artifact-accounts">Security enhancement: Url Filtering/Restriction capabilities on Artifact accounts&lt;/h3>
&lt;p>Starting in Armory Continuous Deployment 2.36.5, we have enabled to capability to filter/restrict urls that can be accessed per artifact accounts.
This feature provides a safeguard around user input of remote urls when artifact accounts are in used in the context of a pipeline execution.&lt;/p>
&lt;p>An example configuration for &lt;code>clouddriver-local.yml&lt;/code> can be found below which can be added per artifact account (http, github, helm):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">artifacts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">http&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">name&lt;/span>: http_account
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">urlRestrictions&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">allowedDomains&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - mydomain.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - raw.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - api.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLocalhost&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLinkLocal&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectVerbatimIps&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectedIps&lt;/span>: [] &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>By default the configuration blocks any local CIDR ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), localhost, link local and raw IPs.
For full configuration details please refer to this &lt;a href="https://github.com/spinnaker/spinnaker/blob/main/clouddriver/clouddriver-artifacts/src/main/java/com/netflix/spinnaker/clouddriver/artifacts/config/HttpUrlRestrictions.java">configuration class&lt;/a>&lt;/p>
&lt;h3 id="clouddriver-account-management-api-enhancement--for-aws-ecs-and-gcp-accounts">Clouddriver: Account management API enhancement for AWS, ECS and GCP accounts&lt;/h3>
&lt;p>OSS Spinnaker 1.28 introduced the &lt;a href="https://spinnaker.io/docs/setup/other_config/accounts/">account management API feature&lt;/a> for loading, storing, updating, and otherwise managing Clouddriver account configurations from a database.
In Armory CD 2.38.x the Account management API has been enhanced to support AWS, ECS and GCP accounts. To enable this functionality please use the following configuration in your &lt;code>clouddriver-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">account&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">storage&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">ecs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">google&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">credentials&lt;/span>: &lt;span style="color:#6272a4">#Enable the credentials poller per provider congifuration enabled in the Account Managment API&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">poller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">types&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">reloadFrequencyMs&lt;/span>: &lt;span style="color:#bd93f9">60000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">reloadFrequencyMs&lt;/span>: &lt;span style="color:#bd93f9">60000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">ecs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">reloadFrequencyMs&lt;/span>: &lt;span style="color:#bd93f9">60000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">google&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">reloadFrequencyMs&lt;/span>: &lt;span style="color:#bd93f9">60000&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;a href="https://github.com/spinnaker/spinnaker/pull/7238">Clouddriver PR7238&lt;/a>
&lt;a href="https://github.com/spinnaker/spinnaker/pull/7247">Clouddriver PR7247&lt;/a>
&lt;a href="https://github.com/spinnaker/spinnaker/pull/7270">Clouddriver PR7270&lt;/a>&lt;/p>
&lt;h3 id="clouddriver-aws-accounts-assume-role-enhancement">Clouddriver AWS accounts assume-role enhancement&lt;/h3>
&lt;p>Introduce in OSS Spinnaker 1.37.0 a configurable retry and backoff logic for AWS credentials parsing has been added.
Additionally a configurable per account (or default) sessionDurationSeconds property has been added in &lt;code>clouddriver-local.yml&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">loadAccounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxRetries&lt;/span>: &lt;span style="color:#bd93f9">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">backOffInMs&lt;/span>: &lt;span style="color:#bd93f9">5000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">exponentialBackoff&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">exponentialBackoffMultiplier&lt;/span>: &lt;span style="color:#bd93f9">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">exponentialBackOffIntervalMs&lt;/span>: &lt;span style="color:#bd93f9">10000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">defaultSessionDurationSeconds&lt;/span>: (no default value)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;a href="https://github.com/spinnaker/clouddriver/pull/6342">PR6342&lt;/a>
&lt;a href="https://github.com/spinnaker/clouddriver/pull/6344">PR6344&lt;/a>&lt;/p>
&lt;h3 id="helm-oci-registry-chart-support">Helm OCI Registry Chart Support&lt;/h3>
&lt;p>Docker registry provider now supports adding OCI-based registries hosting Helm repositories. This feature allows
users to download and bake Helm charts hosted in OCI-compliant registries (such as Docker Hub).&lt;/p>
&lt;p>Related PRs:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/spinnaker/spinnaker/pull/7069">https://github.com/spinnaker/spinnaker/pull/7069&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/spinnaker/spinnaker/pull/7089">https://github.com/spinnaker/spinnaker/pull/7089&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/spinnaker/spinnaker/pull/7113">https://github.com/spinnaker/spinnaker/pull/7113&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>To enable the Helm OCI support in a Docker Registry account set a list of OCI repositories in the &lt;code>helmOciRepositories&lt;/code>
of the Docker Registry account configuration. The &lt;code>helmOciRepositories&lt;/code> is a list of repository names in the format &lt;code>&amp;lt;registry&amp;gt;/&amp;lt;repository&amp;gt;&lt;/code>. For example in your &lt;code>clouddriver-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">dockerRegistry&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">primaryAccount&lt;/span>: dockerhub &lt;span style="color:#6272a4"># Must be one of the configured docker accounts&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">name&lt;/span>: dockerhub
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">requiredGroupMembership&lt;/span>: []
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">providerVersion&lt;/span>: V1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">permissions&lt;/span>: {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">address&lt;/span>: https://index.docker.io &lt;span style="color:#6272a4"># (Required). The registry address you want to pull and deploy images from; e.g. https://index.docker.io&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">username&lt;/span>: &amp;lt;username&amp;gt; &lt;span style="color:#6272a4"># Your docker registry email (often this only needs to be well-formed, rather than be a real address)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">password&lt;/span>: &amp;lt;password&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cacheIntervalSeconds: 30 # (Default&lt;/span>: &lt;span style="color:#bd93f9">30&lt;/span>). How many seconds elapse between polling your docker registry.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clientTimeoutMillis: 60000 # (Default&lt;/span>: &lt;span style="color:#bd93f9">60000&lt;/span>). Timeout time in milliseconds for this repository.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cacheThreads: 1 # (Default&lt;/span>: &lt;span style="color:#bd93f9">1&lt;/span>). How many threads to cache all provided repos on. Really only useful if you have a ton of repos.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">paginateSize: 100 # (Default&lt;/span>: &lt;span style="color:#bd93f9">100&lt;/span>). Paginate size for the docker repository _catalog endpoint.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">sortTagsByDate: false # (Default&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>). Sort tags by creation date.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">trackDigests: false # (Default&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>). Track digest changes. This is not recommended as it consumes a high QPM, and most registries are flaky.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">insecureRegistry: false # (Default&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>). Treat the docker registry as insecure (don’t validate the ssl cert).
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repositories&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f1fa8c">&amp;#34;registry/repository&amp;#34;&lt;/span> &lt;span style="color:#6272a4"># (Default: []). An optional list of repositories to cache Docker images from. If not provided, Spinnaker will attempt to read accessible repositories from the registries _catalog endpoint&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">helmOciRepositories&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f1fa8c">&amp;#34;registry/HelmOciRepository&amp;#34;&lt;/span> &lt;span style="color:#6272a4"># (Default: []). An optional list of Helm OCI-Based repositories to cache helm charts from.&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>For every account with non-empty &lt;code>helmOciRepositories&lt;/code> list, Clouddriver will cache the Helm charts from the specified OCI repositories.&lt;/p>
&lt;p>The cached Helm OCI charts are defined as a new Artifact type named &lt;code>helm/image&lt;/code> and can be used to bake Helm OCI-based charts in Spinnaker pipelines.&lt;/p>
&lt;h4 id="defining-retention-policy-for-downloaded-helmimage-charts-in-clouddriver">Defining retention policy for downloaded helm/image charts in Clouddriver&lt;/h4>
&lt;p>Optionally, users can define a retention policy for Helm OCI charts downloaded in a Clouddriver instance. This functionality
is disabled by default and it is useful for users that want to keep a local copy of a Helm OCI based chart without the need
to download it every time it is used in a pipeline. The retention policy is defined in the &lt;code>clouddriver-local.yml&lt;/code> configuration file:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>artifacts:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> helm-oci:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> clone-retention-minutes: 60
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> clone-retention-max-bytes: 104857600 # 100MB
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>&lt;code>clone-retention-minutes:&lt;/code> Default: 0. How much time to keep the downloaded helm/image chart. Values are:
&lt;ul>
&lt;li>0: no retention.&lt;/li>
&lt;li>-1: retain forever.&lt;/li>
&lt;li>any whole number of minutes, such as &lt;code>60&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;code>clone-retention-max-bytes:&lt;/code> Default: 104857600 (100 MB). Maximum amount of disk space to use for downloaded helm/image charts. When the
maximum amount of space is reached, Clouddriver deletes the clones after returning the artifact to the pipeline, just as if retention were disabled.&lt;/li>
&lt;/ul>
&lt;h4 id="defining-triggers-for-helmimage-artifacts-in-spinnaker-pipelines">Defining Triggers for helm/image artifacts in Spinnaker pipelines&lt;/h4>
&lt;p>To trigger a Spinnaker pipeline on a new version of a Helm OCI-based chart, users will need to enable the Igor poller for the &lt;code>helm/image&lt;/code> artifact type.
This can be done by adding the following configuration to the &lt;code>igor-local.yml&lt;/code> file:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>helm-oci-docker-registry:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> enabled: true
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Additionally, a new trigger type (named &lt;code>helm/oci&lt;/code>) has been implemented to allow pipelines to be triggered by new versions of &lt;code>helm/image&lt;/code> artifacts.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span> &amp;#34;triggers&amp;#34;: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;account&amp;#34;: &amp;#34;&amp;lt;accountName&amp;gt;&amp;#34;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;enabled&amp;#34;: true,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;organization&amp;#34;: &amp;#34;&amp;lt;org&amp;gt;&amp;#34;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;registry&amp;#34;: &amp;#34;index.docker.io&amp;#34;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;repository&amp;#34;: &amp;#34;org/repositoryName&amp;#34;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;type&amp;#34;: &amp;#34;helm/oci&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="orca-limit-the-execution-retrieval-of-disabled-pipelines">Orca: Limit the execution retrieval of Disabled pipelines&lt;/h3>
&lt;p>A new configuration has been added to exclude execution retrieval for disabled pipelines in Front50. This can be enabled in your &lt;code>orca-local.yml&lt;/code> with:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">excludeExecutionsOfDisabledPipelines&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>|true &lt;span style="color:#6272a4"># Defaults to false&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When enabled, Orca will call Front50 with the &lt;code>enabledPipelines=true&lt;/code> query parameter, which returns only the
enabled pipelines for an application (Front50 &lt;a href="https://github.com/spinnaker/front50/pull/1520">PR1520&lt;/a>). This helps reduce
load for applications with numerous pipelines, especially when obsolete, disabled pipelines are retained for historical reasons.&lt;/p>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4819">PR4819&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="front50-scheduled-agent-for-disabling-unused-pipelines">Front50: Scheduled agent for Disabling unused pipelines&lt;/h3>
&lt;p>An agent has been introduced to detect and disable unused or unexecuted pipelines within an application.
This agent checks pipelines that have not been executed for the past &lt;code>thresholdDays&lt;/code> days and disables them in Front50.
This feature is only available for SQL execution repositories and is configurable in your &lt;code>front50-local.yml&lt;/code> as bellow:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">pollers&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">unused-pipelines-disable&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled: false | true # default&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">intervalSec: 3600 # default&lt;/span>: &lt;span style="color:#bd93f9">3600&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">thresholdDays: 365 # default&lt;/span>: &lt;span style="color:#bd93f9">365&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">dryRun: false | true # default&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>. When true an info is logged about the intention to disable a pipelineConfigId in the application evaluated
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>Front50 &lt;a href="https://github.com/spinnaker/front50/pull/1520">PR1520&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="orca-new-pipeline-stage-configuration-backoffperiodms">Orca: New Pipeline stage configuration &lt;code>backOffPeriodMs&lt;/code>&lt;/h3>
&lt;p>A new configuration option &lt;code>backOffPeriodMs&lt;/code> has been added to the pipeline stage configuration. This option allows users
to specify a back-off period in milliseconds for stages that may need to retry operations after a failure. Before this,
pipeline authors had no control over the backoff period. It came from either spinnaker configuration properties or
implementations of RetryableTask.getDynamicBackoffPeriod.&lt;/p>
&lt;p>Additionally, the following configuration options have been added that allow admins to specify globablly the backoff period in your &lt;code>orca-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>tasks.global.backOffPeriod:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tasks.&amp;lt;cloud provider&amp;gt;.backOffPeriod:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tasks.&amp;lt;cloud provider&amp;gt;.&amp;lt;account name&amp;gt;.backOffPeriod:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4841">PR 4841&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="orca-performance-improvements-for-pipeline-executions">Orca: Performance Improvements for Pipeline Executions&lt;/h3>
&lt;p>This release includes several optimizations to improve pipeline execution times, particularly for complex pipeline structures.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>Memorize the &lt;code>anyUpstreamStagesFailed&lt;/code> extension function to improve time complexity from exponential to linear&lt;/li>
&lt;li>Optimize &lt;code>getAncestorsImpl&lt;/code> to reduce time complexity by a factor of N, where N is the number of stages in a pipeline&lt;/li>
&lt;li>Optimize &lt;code>StartStageHandler&lt;/code> to only call withAuth (which calls getAncestorsImpl) when&lt;/li>
&lt;/ol>
&lt;p>These enhancements significantly reduce pipeline execution time, with the most notable gains observed in dense pipeline graphs. For example, in the &lt;code>ComplexPipeline.kt&lt;/code> test scenario, execution time improved from not completing at all to approximately &lt;code>160ms&lt;/code>.&lt;/p>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4824">PR 4824&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="orca-performance-improvements-for-sql-backend">Orca: Performance Improvements for SQL Backend&lt;/h3>
&lt;p>This release enhances the performance of SQL-backed pipeline queries by optimizing database operations, particularly for the API call:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>/applications/{application}/pipelines?expand=false&amp;amp;limit=2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>which is frequently initiated by Deck and forwarded through Gate to Orca.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ul>
&lt;li>Improved Query Efficiency: Optimized the retrieval of pipeline execution data, significantly reducing database query times.&lt;/li>
&lt;li>Refactored &lt;code>TaskController&lt;/code>: Externalized configuration properties to allow better flexibility and tuning.&lt;/li>
&lt;li>Enhanced &lt;code>getPipelinesForApplication()&lt;/code>
&lt;ul>
&lt;li>Limits the number of pipeline config IDs queried.&lt;/li>
&lt;li>Processes multiple pipeline config IDs simultaneously.&lt;/li>
&lt;li>Introduces multi-threading to handle batches efficiently.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4804">PR 4804&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="orca-read-connection-pool-for-sql-execution-repository">Orca: Read Connection Pool for SQL Execution Repository&lt;/h3>
&lt;p>This release introduces support for a dedicated read connection pool for specific read-only database queries in &lt;code>SqlExecutionRepository&lt;/code>&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>New &amp;ldquo;read&amp;rdquo; Connection Pool: Allows read operations to be routed to a separate connection pool.&lt;/li>
&lt;li>Configurable Read Pool: Users can define an additional read connection pool in the SQL configuration.&lt;/li>
&lt;li>Ensures Data Consistency: Some read queries still rely on recently written data and are not yet converted to use a read replica due to potential replication lag.&lt;/li>
&lt;/ol>
&lt;p>Configuration Example&lt;/p>
&lt;p>To enable the read connection pool, add the following configuration in your &lt;code>orca-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionPools&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;...&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">read&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jdbcUrl&lt;/span>: jdbc:...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user&lt;/span>: orca_service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">password&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">validationTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxPoolSize&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">minIdle&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxLifetimeMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">idleTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4803">PR 4803&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="migration-of-retrofit1-to-retrofit2-for-all-services">Migration of Retrofit1 to Retrofit2 for all services&lt;/h3>
&lt;p>Retrofit1 clients from the following spinnaker services have been upgraded to retrofit2. With this release, retrofit2 upgrade of all spinnaker services is completed.
Any internal plugins that rely on retrofit1 clients will need to be upgraded to retrofit2.&lt;/p>
&lt;p>A new CallAdapter named LegacySignatureCallAdapter has been introduced in Kork to provide support for legacy Retrofit
method signatures. This adapter enables the use of Retrofit interfaces that do not return Call&amp;lt;..&amp;gt;, similar to how
Retrofit 1 worked. Both Kayenta and Halyard leveraged this feature during their Retrofit 2 upgrades, allowing them to
maintain their existing method signatures without wrapping them in Call&amp;lt;..&amp;gt; or using Retrofit2SyncCall.execute()&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/spinnaker/spinnaker/pull/7088">https://github.com/spinnaker/spinnaker/pull/7088&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the following changelogs for details:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://spinnaker.io/changelogs/1.37.0-changelog/">Spinnaker v1.37.0&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://spinnaker.io/changelogs/1.38.0-changelog/">Spinnaker v1.38.0&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://spinnaker.io/changelogs/1.38.0-changelog/">Spinnaker v1.38.0/2025.0.0&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://spinnaker.io/changelogs/2025.1.0-changelog/">Spinnaker 2025.1.0&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://spinnaker.io/changelogs/2025.2.0-changelog/">Spinnaker 2025.2.0&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>
version: 2.38.1
timestamp: 2025-10-29 09:05:22
services:
terraformer:
version: 2.38.1
commit: babaa4704f1df8a6f6b42e533716396c8a0f529b
kayenta:
version: 2.38.1
commit: 6ab033ec64526c7742adc04f3093cadbc955d4f7
clouddriver:
version: 2.38.1
commit: 6ab033ec64526c7742adc04f3093cadbc955d4f7
orca:
version: 2.38.1
commit: 6ab033ec64526c7742adc04f3093cadbc955d4f7
rosco:
version: 2.38.1
commit: 6ab033ec64526c7742adc04f3093cadbc955d4f7
deck:
version: 2.38.1
commit: 6ab033ec64526c7742adc04f3093cadbc955d4f7
igor:
version: 2.38.1
commit: 6ab033ec64526c7742adc04f3093cadbc955d4f7
gate:
version: 2.38.1
commit: 6ab033ec64526c7742adc04f3093cadbc955d4f7
front50:
version: 2.38.1
commit: 6ab033ec64526c7742adc04f3093cadbc955d4f7
dinghy:
version: 2.38.1
commit: babaa4704f1df8a6f6b42e533716396c8a0f529b
fiat:
version: 2.38.1
commit: 6ab033ec64526c7742adc04f3093cadbc955d4f7
echo:
version: 2.38.1
commit: 6ab033ec64526c7742adc04f3093cadbc955d4f7
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-igor---23802381">Armory Igor - 2.38.0&amp;hellip;2.38.1&lt;/h4>
&lt;h4 id="terraformer---23802381">Terraformer™ - 2.38.0&amp;hellip;2.38.1&lt;/h4>
&lt;h4 id="armory-rosco---23802381">Armory Rosco - 2.38.0&amp;hellip;2.38.1&lt;/h4>
&lt;h4 id="armory-gate---23802381">Armory Gate - 2.38.0&amp;hellip;2.38.1&lt;/h4>
&lt;h4 id="armory-echo---23802381">Armory Echo - 2.38.0&amp;hellip;2.38.1&lt;/h4>
&lt;h4 id="armory-deck---23802381">Armory Deck - 2.38.0&amp;hellip;2.38.1&lt;/h4>
&lt;h4 id="armory-orca---23802381">Armory Orca - 2.38.0&amp;hellip;2.38.1&lt;/h4>
&lt;h4 id="armory-kayenta---23802381">Armory Kayenta - 2.38.0&amp;hellip;2.38.1&lt;/h4>
&lt;h4 id="dinghy---23802381">Dinghy™ - 2.38.0&amp;hellip;2.38.1&lt;/h4>
&lt;h4 id="armory-front50---23802381">Armory Front50 - 2.38.0&amp;hellip;2.38.1&lt;/h4>
&lt;h4 id="armory-clouddriver---23802381">Armory Clouddriver - 2.38.0&amp;hellip;2.38.1&lt;/h4>
&lt;h4 id="armory-fiat---23802381">Armory Fiat - 2.38.0&amp;hellip;2.38.1&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-igor---202522">Spinnaker Igor - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-rosco---202522">Spinnaker Rosco - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-gate---202522">Spinnaker Gate - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-echo---202522">Spinnaker Echo - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-deck---202522">Spinnaker Deck - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-orca---202522">Spinnaker Orca - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-kayenta---202522">Spinnaker Kayenta - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-front50---202522">Spinnaker Front50 - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---202522">Spinnaker Clouddriver - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-fiat---202522">Spinnaker Fiat - 2025.2.2&lt;/h4></description></item><item><title>Continuous-Deployment: v2.36.6 Armory Continuous Deployment Release (Spinnaker™ v1.36.1)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-6/</link><pubDate>Tue, 21 Oct 2025 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-6/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="2025-10-21-release-notes">2025-10-21 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Important&lt;/h4>
&lt;a href="/continuous-deployment/installation/armory-operator/">Armory Operator&lt;/a> has been deprecated and will is considered EOL. Please migrate to the &lt;a href="/continuous-deployment/spinnaker-user-guides/armory-operator-to-kustomize-migration/">Kustomize&lt;/a> method of deployment.
&lt;/div>
&lt;p>To install, upgrade, or configure Armory CD 2.36.6, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;p>The following configuration properties have been restructured:&lt;/p>
&lt;p>Previous Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New configuration format&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">optimize-execution-retrieval&lt;/span>: &amp;lt;boolean&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-execution-retrieval-threads&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-number-of-pipeline-executions-to-process&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">execution-retrieval-timeout-seconds&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>These changes improve query performance and execution retrieval efficiency, particularly for large-scale pipeline applications.&lt;/p>
&lt;p>&lt;a href="#performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/a>&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="echo-filter-enabled-pipelines-feature">Echo Filter enabled pipelines feature&lt;/h3>
&lt;p>Spinnaker OSS Version 1.31.0 introduced a feature to filter pipelines from front50 , that was disabled by default.
Version 1.35.0 enabled it by default , which is not recommended and can cause issues with automated triggers.
In Armory CD 2.36.2 we recommend to explicitly disable this feature by setting the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>apiVersion: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kind: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>metadata:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> name: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>spec:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> spinnakerConfig:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> profiles:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> pipelineCache:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> filterFront50Pipelines: false
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;h3 id="security-enhancement-url-filteringrestriction-capabilities-on-artifact-accounts">Security enhancement: Url Filtering/Restriction capabilities on Artifact accounts&lt;/h3>
&lt;p>Starting in Armory Continuous Deployment 2.36.6, we have enabled to capability to filter/restrict urls that can be accessed per artifact accounts.
This feature provides a safeguard around user input of remote urls when artifact accounts are in used in the context of a pipeline execution.&lt;/p>
&lt;p>An example configuration can be found below which can be added per artifact account (http, github, helm):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">artifacts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">http&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">name&lt;/span>: http_account
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">urlRestrictions&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">allowedDomains&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - mydomain.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - raw.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - api.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLocalhost&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLinkLocal&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectVerbatimIps&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectedIps&lt;/span>: [] &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>By default the configuration blocks any local CIDR ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), localhost, link local and raw IPs.
For full configuration details please refer to this &lt;a href="https://github.com/spinnaker/spinnaker/blob/main/clouddriver/clouddriver-artifacts/src/main/java/com/netflix/spinnaker/clouddriver/artifacts/config/HttpUrlRestrictions.java">configuration class&lt;/a>&lt;/p>
&lt;h3 id="armory-continuous-deployment-2362-onwards-docker-images-now-based-on-ubuntu">Armory Continuous Deployment 2.36.2 onwards Docker images now based on Ubuntu&lt;/h3>
&lt;p>The Armory Continuous Deployment 2.36.2 Docker images have been updated to use Ubuntu as the base image, replacing the previous Alpine base.
This change enhances compatibility with various libraries and tools, improving overall stability and performance.
Additionally, the new images now include all the necessary dependencies for authentication on a Kebreros server.&lt;/p>
&lt;h3 id="pipeline-reference-feature-is-now-able-to-lazy-load-the-pipeline-reference-pipelines">Pipeline Reference feature is now able to Lazy load the pipeline reference pipelines&lt;/h3>
&lt;p>In Spinnaker OSS release 1.35.0 Orca introduced a feature flag to reduce the execution size in nested pipelines by
converting PipelineTrigger to PipelineRefTrigger:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">executionRepository&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipelineRef&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>When enabled, child pipeline execution ids are stored in sql instead of the entire child pipeline execution context.&lt;/p>
&lt;p>In Armory CD 2.36.2 this functionality is now extended to make the in-memory representation of the pipelines aware of the pipeline reference
and to not load in-memory a full representation of the pipeline context. To enable this feature in Deck add the following in &lt;code>settings-local.js&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.pipelineRefEnabled = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span> &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4842">PR 4842&lt;/a>&lt;/em>
&lt;em>Deck &lt;a href="https://github.com/spinnaker/deck/pull/10164">PR 10164&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="new-pipeline-stage-configuration-backoffperiodms">New pipeline stage configuration &lt;code>backOffPeriodMs&lt;/code>&lt;/h3>
&lt;p>A new configuration option &lt;code>backOffPeriodMs&lt;/code> has been added to the pipeline stage configuration. This option allows users
to specify a back-off period in milliseconds for stages that may need to retry operations after a failure. Before this,
pipeline authors had no control over the backoff period. It came from either spinnaker configuration properties or
implementations of RetryableTask.getDynamicBackoffPeriod.&lt;/p>
&lt;p>Additionally, the following configuration options have been added that allow admins to specify globablly the backoff period:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.global.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.&amp;lt;cloud provider&amp;gt;.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> tasks.&amp;lt;cloud provider&amp;gt;.&amp;lt;account name&amp;gt;.backOffPeriod:&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4841">PR 4841&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="java-upgrades">Java upgrades&lt;/h3>
&lt;p>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: &lt;code>--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&lt;/code> to clouddriver if using GCP accounts due to credentials parsing of certificates. These can set in the &lt;a href="https://spinnaker.io/docs/reference/halyard/custom/#custom-service-settings">service-settings config&lt;/a> . These configs are likely to be added to the defaults in all future releases&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">service-settings&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">env&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">JAVA_OPTS&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;--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&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="performance-improvements-for-pipeline-executions">Performance Improvements for Pipeline Executions&lt;/h3>
&lt;p>This release includes several optimizations to improve pipeline execution times, particularly for complex pipeline structures.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>Memorize the &lt;code>anyUpstreamStagesFailed&lt;/code> extension function to improve time complexity from exponential to linear&lt;/li>
&lt;li>Optimize &lt;code>getAncestorsImpl&lt;/code> to reduce time complexity by a factor of N, where N is the number of stages in a pipeline&lt;/li>
&lt;li>Optimize &lt;code>StartStageHandler&lt;/code> to only call withAuth (which calls getAncestorsImpl) when&lt;/li>
&lt;/ol>
&lt;p>These enhancements significantly reduce pipeline execution time, with the most notable gains observed in dense pipeline graphs. For example, in the &lt;code>ComplexPipeline.kt&lt;/code> test scenario, execution time improved from not completing at all to approximately &lt;code>160ms&lt;/code>.&lt;/p>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4824">PR 4824&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/h3>
&lt;p>This release enhances the performance of SQL-backed pipeline queries by optimizing database operations, particularly for the API call:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>/applications/{application}/pipelines?expand=false&amp;amp;limit=2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>which is frequently initiated by Deck and forwarded through Gate to Orca.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ul>
&lt;li>Improved Query Efficiency: Optimized the retrieval of pipeline execution data, significantly reducing database query times.&lt;/li>
&lt;li>Refactored &lt;code>TaskController&lt;/code>: Externalized configuration properties to allow better flexibility and tuning.&lt;/li>
&lt;li>Enhanced &lt;code>getPipelinesForApplication()&lt;/code>
&lt;ul>
&lt;li>Limits the number of pipeline config IDs queried.&lt;/li>
&lt;li>Processes multiple pipeline config IDs simultaneously.&lt;/li>
&lt;li>Introduces multi-threading to handle batches efficiently.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4804">PR 4804&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="feature-read-connection-pool-for-sql-execution-repository">Feature: Read Connection Pool for SQL Execution Repository&lt;/h3>
&lt;p>This release introduces support for a dedicated read connection pool for specific read-only database queries in &lt;code>SqlExecutionRepository&lt;/code>&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>New &amp;ldquo;read&amp;rdquo; Connection Pool: Allows read operations to be routed to a separate connection pool.&lt;/li>
&lt;li>Configurable Read Pool: Users can define an additional read connection pool in the SQL configuration.&lt;/li>
&lt;li>Ensures Data Consistency: Some read queries still rely on recently written data and are not yet converted to use a read replica due to potential replication lag.&lt;/li>
&lt;/ol>
&lt;p>Configuration Example&lt;/p>
&lt;p>To enable the read connection pool, add the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionPools&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;...&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">read&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jdbcUrl&lt;/span>: jdbc:...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user&lt;/span>: orca_service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">password&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">validationTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxPoolSize&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">minIdle&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxLifetimeMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">idleTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4803">PR 4803&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="enhanced-pipeline-batch-update-feature">Enhanced pipeline batch update feature&lt;/h3>
&lt;h4 id="gate">Gate&lt;/h4>
&lt;p>Adds a new enpdoint, &lt;code>POST /pipelines/bulksave&lt;/code>, 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&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bulksave&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the max number of times gate will poll orca to check for task status&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-polls-for-task-completion&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the interval at which gate will poll orca.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">taskCompletionCheckIntervalMs&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="orca">Orca&lt;/h4>
&lt;p>Updates Orca’s SavePipelineTask to support bulk saves using the updated functionality in the front50 bulk save endpoint.&lt;/p>
&lt;p>With &lt;a href="https://github.com/spinnaker/orca/pull/4781">Orca PR 4781&lt;/a>, 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:&lt;/p>
&lt;ul>
&lt;li>PromoteManifestKatoOutputsTask&lt;/li>
&lt;li>WaitOnJobCompletionTask&lt;/li>
&lt;li>ResolveDeploySourceManifestTask&lt;/li>
&lt;li>BindProducedArtifactsTask&lt;/li>
&lt;/ul>
&lt;p>The &lt;a href="https://github.com/spinnaker/orca/pull/4788">Orca PR 4788&lt;/a> 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.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">promoteManifestKatoOutputsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.createdArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.boundArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">waitOnJobCompletionTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - jobStatus
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - completionDetails
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">resolveDeploySourceManifestTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - requiredArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - optionalArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">core&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">bindProducedArtifactsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - artifacts&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkClouddriver&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">auditModeEnabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="front50">Front50&lt;/h4>
&lt;p>Batch update operation in front50 is now atomic. Deserialization issues are addressed.
Configurable controls are added to decide whether cache should be refreshed while checking for duplicate pipelines:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">front50&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">save&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">refreshCacheOnDuplicatesCheck&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> // default is true&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Here the value for &lt;code>successful_pipelines&lt;/code> is the list of successful pipeline names whereas the value for &lt;code>failed_pipelines&lt;/code> is the list of failed pipelines expressed as maps.&lt;/p>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.36.1-changelog/">Spinnaker v1.36.1&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>
version: 2.36.6
timestamp: 2025-10-21 09:53:44
services:
igor:
version: 2.36.6
commit: 7fccfb59279c325d5368a82ed9859f9cc7253302
gate:
version: 2.36.6
commit: 7cad31c006f10d4549bd666c76dbd85bd8286921
kayenta:
version: 2.36.6
commit: 4b9fb28ad8fa0e4b44fa162691b5d51691d90891
clouddriver:
version: 2.36.6
commit: b96751e1d80eef231c719aa40d5ce96db8a9c193
dinghy:
version: 2.36.6
commit: d36fdf5b496b18212275686d4c9069d72c9dbeb1
rosco:
version: 2.36.6
commit: 8e35f1c3560b3b8f7de6fc4a35718b4aee98a47c
deck:
version: 2.36.6
commit: 54a2aada8cb187554536daeb8b8b2858714d1afe
orca:
version: 2.36.6
commit: 138f6665e75d2e600b4cb07631079cc83a6560ec
echo:
version: 2.36.6
commit: 93303566f7d718f115520dd0b00852cfa183f413
fiat:
version: 2.36.6
commit: e7412ae8d6a0c4fe765098315696fe24eeb3e2f5
terraformer:
version: 2.36.6
commit: 8453d42107fda5f0c315c8459f523e9182805832
front50:
version: 2.36.6
commit: 08c2d640ec2818a990602c40f22952782af0781f
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-igor---23662366">Armory Igor - 2.36.6&amp;hellip;2.36.6&lt;/h4>
&lt;h4 id="terraformer---23662366">Terraformer™ - 2.36.6&amp;hellip;2.36.6&lt;/h4>
&lt;h4 id="armory-rosco---23662366">Armory Rosco - 2.36.6&amp;hellip;2.36.6&lt;/h4>
&lt;h4 id="armory-gate---23662366">Armory Gate - 2.36.6&amp;hellip;2.36.6&lt;/h4>
&lt;h4 id="armory-echo---23662366">Armory Echo - 2.36.6&amp;hellip;2.36.6&lt;/h4>
&lt;h4 id="armory-deck---23662366">Armory Deck - 2.36.6&amp;hellip;2.36.6&lt;/h4>
&lt;h4 id="armory-orca---23662366">Armory Orca - 2.36.6&amp;hellip;2.36.6&lt;/h4>
&lt;h4 id="armory-kayenta---23662366">Armory Kayenta - 2.36.6&amp;hellip;2.36.6&lt;/h4>
&lt;h4 id="dinghy---23662366">Dinghy™ - 2.36.6&amp;hellip;2.36.6&lt;/h4>
&lt;h4 id="armory-front50---23662366">Armory Front50 - 2.36.6&amp;hellip;2.36.6&lt;/h4>
&lt;h4 id="armory-clouddriver---23662366">Armory Clouddriver - 2.36.6&amp;hellip;2.36.6&lt;/h4>
&lt;h4 id="armory-fiat---23662366">Armory Fiat - 2.36.6&amp;hellip;2.36.6&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-igor---1361">Spinnaker Igor - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-rosco---1361">Spinnaker Rosco - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-gate---1361">Spinnaker Gate - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-echo---1361">Spinnaker Echo - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-deck---1361">Spinnaker Deck - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-orca---1361">Spinnaker Orca - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1361">Spinnaker Kayenta - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-front50---1361">Spinnaker Front50 - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1361">Spinnaker Clouddriver - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-fiat---1361">Spinnaker Fiat - 1.36.1&lt;/h4></description></item><item><title>Continuous-Deployment: v2.38.0 Armory Continuous Deployment Release (Spinnaker™ v2025.2.2)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-38-0/</link><pubDate>Tue, 21 Oct 2025 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-38-0/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="2025-10-21-release-notes">2025-10-21 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Important&lt;/h4>
&lt;a href="/continuous-deployment/installation/armory-operator/">Armory Operator&lt;/a> has been deprecated and will is considered EOL. Please migrate to the &lt;a href="/continuous-deployment/spinnaker-user-guides/armory-operator-to-kustomize-migration/">Kustomize&lt;/a> method of deployment.
&lt;/div>
&lt;p>To install, upgrade, or configure Armory CD 2.38.0-rc3, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="gate-spring-security-5-oauth2-migration">Gate: Spring Security 5 Oauth2 Migration&lt;/h3>
&lt;p>Armory CD 2.38.0 removes deprecate Oauth2 annotations and uses Spring Security 5 DSL. In order to configure oauth2 in &lt;code>gate-local.yml&lt;/code> have changed to:&lt;/p>
&lt;h2 id="google-oauth-configuration">Google Oauth configuration&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spring&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">security&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">oauth2&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">registration&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">google&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client-id&lt;/span>: &amp;lt;client-id&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client-secret&lt;/span>: &amp;lt;client-secret&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">authorization-grant-type&lt;/span>: authorization_code
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">redirect-uri&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;https://&amp;lt;your-domain&amp;gt;/login/oauth2/code/google&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">scope&lt;/span>: profile,email,openid
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client-name&lt;/span>: google
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">provider&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">google&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">authorization-uri&lt;/span>: https://accounts.google.com/o/oauth2/auth
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">token-uri&lt;/span>: https://oauth2.googleapis.com/token
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user-info-uri&lt;/span>: https://www.googleapis.com/oauth2/v3/userinfo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user-name-attribute&lt;/span>: sub
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="github-oauth2-configuration">Github Oauth2 configuration&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spring&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">security&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">oauth2&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">registration&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">userInfoMapping&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">email&lt;/span>: email
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">firstName&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#39;&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">lastName&lt;/span>: name
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">username&lt;/span>: login
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">github&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client-id&lt;/span>: &amp;lt;client-id&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client-secret&lt;/span>: &amp;lt;client-secret&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">authorization-grant-type&lt;/span>: authorization_code
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">redirect-uri&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;https://&amp;lt;your-domain&amp;gt;/login/oauth2/code/github&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">scope&lt;/span>: user,email
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">client-name&lt;/span>: github
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">provider&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">github&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">authorization-uri&lt;/span>: https://github.com/login/oauth/authorize
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">token-uri&lt;/span>: https://github.com/login/oauth/access_token
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user-info-uri&lt;/span>: https://api.github.com/user
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user-name-attribute&lt;/span>: login
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="orca-tasks-configuration-changes">Orca: Tasks configuration changes&lt;/h3>
&lt;p>The following configuration properties have been restructured in &lt;code>orca-local.yml&lt;/code>:&lt;/p>
&lt;p>Previous Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New configuration format&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">optimize-execution-retrieval&lt;/span>: &amp;lt;boolean&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-execution-retrieval-threads&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-number-of-pipeline-executions-to-process&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">execution-retrieval-timeout-seconds&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>These changes improve query performance and execution retrieval efficiency, particularly for large-scale pipeline applications.&lt;/p>
&lt;p>&lt;a href="#orca-performance-improvements-for-sql-backend">Orca: Performance Improvements for SQL Backend&lt;/a>&lt;/p>
&lt;h3 id="policy-engine-opa-is-now-built-into-armory-cd">Policy Engine (OPA) is now built into Armory CD&lt;/h3>
&lt;p>The Policy Engine is now built into the Armory CD distribution. The &lt;code>Armory.PolicyEngine&lt;/code> plugin and the &lt;code>armory.opa&lt;/code> configuration block are replaced by a native &lt;code>armory.policy-engine&lt;/code> block. Remove the &lt;code>Armory.PolicyEngine&lt;/code> plugin from &lt;code>spinnaker.extensibility.plugins&lt;/code> in every service that had it configured and update the configuration block in &lt;code>clouddriver-local.yml&lt;/code>, &lt;code>front50-local.yml&lt;/code>, and any other service profile that references OPA:&lt;/p>
&lt;p>Previous:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">armory&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">opa&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">url&lt;/span>: http://opa-server.opa:8181/v1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">armory&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">policy-engine&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">baseurl&lt;/span>: http://opa-server.opa:8181/v1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The OPA server deployment and policies are unchanged.&lt;/p>
&lt;h3 id="kubernetes-agent-kubesvc-is-now-built-into-armory-cd">Kubernetes Agent (Kubesvc) is now built into Armory CD&lt;/h3>
&lt;p>The Scale Agent plugin (&lt;code>Armory.Kubesvc&lt;/code>) is now built into the Armory CD Clouddriver image. The plugin, its repository, and the top-level &lt;code>kubesvc:&lt;/code> configuration block must be replaced by the native &lt;code>armory.kubesvc:&lt;/code> block in &lt;code>clouddriver-local.yml&lt;/code>:&lt;/p>
&lt;p>Previous:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubesvc&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cluster&lt;/span>: kubernetes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># ...remaining kubesvc settings...&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">extensibility&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">plugins&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">Armory.Kubesvc&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">version&lt;/span>: &lt;span style="color:#bd93f9">0.16.2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">extensions&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">armory.kubesvc&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repositories&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">armory-agent&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">url&lt;/span>: https://raw.githubusercontent.com/armory-io/agent-k8s-spinplug-releases/master/repositories.json
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">armory&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">kubesvc&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cluster&lt;/span>: kubernetes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># ...remaining kubesvc settings (unchanged)...&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>All sub-properties (grpc, cache, heartbeat, operations, credentials) stay the same — only the parent key changes. Remove &lt;code>Armory.Kubesvc&lt;/code> from &lt;code>spinnaker.extensibility.plugins&lt;/code> and &lt;code>armory-agent&lt;/code> from &lt;code>spinnaker.extensibility.repositories&lt;/code>. The Armory Agent &lt;strong>service&lt;/strong> deployed in target clusters is unchanged.&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="security-enhancement-url-filteringrestriction-capabilities-on-artifact-accounts">Security enhancement: Url Filtering/Restriction capabilities on Artifact accounts&lt;/h3>
&lt;p>Starting in Armory Continuous Deployment 2.36.5, we have enabled to capability to filter/restrict urls that can be accessed per artifact accounts.
This feature provides a safeguard around user input of remote urls when artifact accounts are in used in the context of a pipeline execution.&lt;/p>
&lt;p>An example configuration for &lt;code>clouddriver-local.yml&lt;/code> can be found below which can be added per artifact account (http, github, helm):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">artifacts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">http&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">name&lt;/span>: http_account
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">urlRestrictions&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">allowedDomains&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - mydomain.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - raw.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - api.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLocalhost&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLinkLocal&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectVerbatimIps&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectedIps&lt;/span>: [] &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>By default the configuration blocks any local CIDR ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), localhost, link local and raw IPs.
For full configuration details please refer to this &lt;a href="https://github.com/spinnaker/spinnaker/blob/main/clouddriver/clouddriver-artifacts/src/main/java/com/netflix/spinnaker/clouddriver/artifacts/config/HttpUrlRestrictions.java">configuration class&lt;/a>&lt;/p>
&lt;h3 id="clouddriver-account-management-api-enhancement--for-aws-ecs-and-gcp-accounts">Clouddriver: Account management API enhancement for AWS, ECS and GCP accounts&lt;/h3>
&lt;p>OSS Spinnaker 1.28 introduced the &lt;a href="https://spinnaker.io/docs/setup/other_config/accounts/">account management API feature&lt;/a> for loading, storing, updating, and otherwise managing Clouddriver account configurations from a database.
In Armory CD 2.38.x the Account management API has been enhanced to support AWS, ECS and GCP accounts. To enable this functionality please use the following configuration in your &lt;code>clouddriver-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">account&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">storage&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">ecs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">google&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">credentials&lt;/span>: &lt;span style="color:#6272a4">#Enable the credentials poller per provider congifuration enabled in the Account Managment API&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">poller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">types&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">reloadFrequencyMs&lt;/span>: &lt;span style="color:#bd93f9">60000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">reloadFrequencyMs&lt;/span>: &lt;span style="color:#bd93f9">60000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">ecs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">reloadFrequencyMs&lt;/span>: &lt;span style="color:#bd93f9">60000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">google&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">reloadFrequencyMs&lt;/span>: &lt;span style="color:#bd93f9">60000&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;a href="https://github.com/spinnaker/spinnaker/pull/7238">Clouddriver PR7238&lt;/a>
&lt;a href="https://github.com/spinnaker/spinnaker/pull/7247">Clouddriver PR7247&lt;/a>
&lt;a href="https://github.com/spinnaker/spinnaker/pull/7270">Clouddriver PR7270&lt;/a>&lt;/p>
&lt;h3 id="clouddriver-aws-accounts-assume-role-enhancement">Clouddriver AWS accounts assume-role enhancement&lt;/h3>
&lt;p>Introduce in OSS Spinnaker 1.37.0 a configurable retry and backoff logic for AWS credentials parsing has been added.
Additionally a configurable per account (or default) sessionDurationSeconds property has been added in &lt;code>clouddriver-local.yml&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">loadAccounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxRetries&lt;/span>: &lt;span style="color:#bd93f9">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">backOffInMs&lt;/span>: &lt;span style="color:#bd93f9">5000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">exponentialBackoff&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">exponentialBackoffMultiplier&lt;/span>: &lt;span style="color:#bd93f9">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">exponentialBackOffIntervalMs&lt;/span>: &lt;span style="color:#bd93f9">10000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">defaultSessionDurationSeconds&lt;/span>: (no default value)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;a href="https://github.com/spinnaker/clouddriver/pull/6342">PR6342&lt;/a>
&lt;a href="https://github.com/spinnaker/clouddriver/pull/6344">PR6344&lt;/a>&lt;/p>
&lt;h3 id="helm-oci-registry-chart-support">Helm OCI Registry Chart Support&lt;/h3>
&lt;p>Docker registry provider now supports adding OCI-based registries hosting Helm repositories. This feature allows
users to download and bake Helm charts hosted in OCI-compliant registries (such as Docker Hub).&lt;/p>
&lt;p>Related PRs:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/spinnaker/spinnaker/pull/7069">https://github.com/spinnaker/spinnaker/pull/7069&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/spinnaker/spinnaker/pull/7089">https://github.com/spinnaker/spinnaker/pull/7089&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/spinnaker/spinnaker/pull/7113">https://github.com/spinnaker/spinnaker/pull/7113&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>To enable the Helm OCI support in a Docker Registry account set a list of OCI repositories in the &lt;code>helmOciRepositories&lt;/code>
of the Docker Registry account configuration. The &lt;code>helmOciRepositories&lt;/code> is a list of repository names in the format &lt;code>&amp;lt;registry&amp;gt;/&amp;lt;repository&amp;gt;&lt;/code>. For example in your &lt;code>clouddriver-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">dockerRegistry&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">primaryAccount&lt;/span>: dockerhub &lt;span style="color:#6272a4"># Must be one of the configured docker accounts&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">name&lt;/span>: dockerhub
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">requiredGroupMembership&lt;/span>: []
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">providerVersion&lt;/span>: V1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">permissions&lt;/span>: {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">address&lt;/span>: https://index.docker.io &lt;span style="color:#6272a4"># (Required). The registry address you want to pull and deploy images from; e.g. https://index.docker.io&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">username&lt;/span>: &amp;lt;username&amp;gt; &lt;span style="color:#6272a4"># Your docker registry email (often this only needs to be well-formed, rather than be a real address)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">password&lt;/span>: &amp;lt;password&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cacheIntervalSeconds: 30 # (Default&lt;/span>: &lt;span style="color:#bd93f9">30&lt;/span>). How many seconds elapse between polling your docker registry.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clientTimeoutMillis: 60000 # (Default&lt;/span>: &lt;span style="color:#bd93f9">60000&lt;/span>). Timeout time in milliseconds for this repository.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cacheThreads: 1 # (Default&lt;/span>: &lt;span style="color:#bd93f9">1&lt;/span>). How many threads to cache all provided repos on. Really only useful if you have a ton of repos.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">paginateSize: 100 # (Default&lt;/span>: &lt;span style="color:#bd93f9">100&lt;/span>). Paginate size for the docker repository _catalog endpoint.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">sortTagsByDate: false # (Default&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>). Sort tags by creation date.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">trackDigests: false # (Default&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>). Track digest changes. This is not recommended as it consumes a high QPM, and most registries are flaky.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">insecureRegistry: false # (Default&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>). Treat the docker registry as insecure (don’t validate the ssl cert).
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repositories&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f1fa8c">&amp;#34;registry/repository&amp;#34;&lt;/span> &lt;span style="color:#6272a4"># (Default: []). An optional list of repositories to cache Docker images from. If not provided, Spinnaker will attempt to read accessible repositories from the registries _catalog endpoint&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">helmOciRepositories&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f1fa8c">&amp;#34;registry/HelmOciRepository&amp;#34;&lt;/span> &lt;span style="color:#6272a4"># (Default: []). An optional list of Helm OCI-Based repositories to cache helm charts from.&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>For every account with non-empty &lt;code>helmOciRepositories&lt;/code> list, Clouddriver will cache the Helm charts from the specified OCI repositories.&lt;/p>
&lt;p>The cached Helm OCI charts are defined as a new Artifact type named &lt;code>helm/image&lt;/code> and can be used to bake Helm OCI-based charts in Spinnaker pipelines.&lt;/p>
&lt;h4 id="defining-retention-policy-for-downloaded-helmimage-charts-in-clouddriver">Defining retention policy for downloaded helm/image charts in Clouddriver&lt;/h4>
&lt;p>Optionally, users can define a retention policy for Helm OCI charts downloaded in a Clouddriver instance. This functionality
is disabled by default and it is useful for users that want to keep a local copy of a Helm OCI based chart without the need
to download it every time it is used in a pipeline. The retention policy is defined in the &lt;code>clouddriver-local.yml&lt;/code> configuration file:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>artifacts:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> helm-oci:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> clone-retention-minutes: 60
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> clone-retention-max-bytes: 104857600 # 100MB
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>&lt;code>clone-retention-minutes:&lt;/code> Default: 0. How much time to keep the downloaded helm/image chart. Values are:
&lt;ul>
&lt;li>0: no retention.&lt;/li>
&lt;li>-1: retain forever.&lt;/li>
&lt;li>any whole number of minutes, such as &lt;code>60&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;code>clone-retention-max-bytes:&lt;/code> Default: 104857600 (100 MB). Maximum amount of disk space to use for downloaded helm/image charts. When the
maximum amount of space is reached, Clouddriver deletes the clones after returning the artifact to the pipeline, just as if retention were disabled.&lt;/li>
&lt;/ul>
&lt;h4 id="defining-triggers-for-helmimage-artifacts-in-spinnaker-pipelines">Defining Triggers for helm/image artifacts in Spinnaker pipelines&lt;/h4>
&lt;p>To trigger a Spinnaker pipeline on a new version of a Helm OCI-based chart, users will need to enable the Igor poller for the &lt;code>helm/image&lt;/code> artifact type.
This can be done by adding the following configuration to the &lt;code>igor-local.yml&lt;/code> file:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>helm-oci-docker-registry:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> enabled: true
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Additionally, a new trigger type (named &lt;code>helm/oci&lt;/code>) has been implemented to allow pipelines to be triggered by new versions of &lt;code>helm/image&lt;/code> artifacts.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span> &amp;#34;triggers&amp;#34;: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;account&amp;#34;: &amp;#34;&amp;lt;accountName&amp;gt;&amp;#34;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;enabled&amp;#34;: true,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;organization&amp;#34;: &amp;#34;&amp;lt;org&amp;gt;&amp;#34;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;registry&amp;#34;: &amp;#34;index.docker.io&amp;#34;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;repository&amp;#34;: &amp;#34;org/repositoryName&amp;#34;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;type&amp;#34;: &amp;#34;helm/oci&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="orca-limit-the-execution-retrieval-of-disabled-pipelines">Orca: Limit the execution retrieval of Disabled pipelines&lt;/h3>
&lt;p>A new configuration has been added to exclude execution retrieval for disabled pipelines in Front50. This can be enabled in your &lt;code>orca-local.yml&lt;/code> with:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">excludeExecutionsOfDisabledPipelines&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>|true &lt;span style="color:#6272a4"># Defaults to false&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When enabled, Orca will call Front50 with the &lt;code>enabledPipelines=true&lt;/code> query parameter, which returns only the
enabled pipelines for an application (Front50 &lt;a href="https://github.com/spinnaker/front50/pull/1520">PR1520&lt;/a>). This helps reduce
load for applications with numerous pipelines, especially when obsolete, disabled pipelines are retained for historical reasons.&lt;/p>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4819">PR4819&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="front50-scheduled-agent-for-disabling-unused-pipelines">Front50: Scheduled agent for Disabling unused pipelines&lt;/h3>
&lt;p>An agent has been introduced to detect and disable unused or unexecuted pipelines within an application.
This agent checks pipelines that have not been executed for the past &lt;code>thresholdDays&lt;/code> days and disables them in Front50.
This feature is only available for SQL execution repositories and is configurable in your &lt;code>front50-local.yml&lt;/code> as bellow:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">pollers&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">unused-pipelines-disable&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled: false | true # default&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">intervalSec: 3600 # default&lt;/span>: &lt;span style="color:#bd93f9">3600&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">thresholdDays: 365 # default&lt;/span>: &lt;span style="color:#bd93f9">365&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">dryRun: false | true # default&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>. When true an info is logged about the intention to disable a pipelineConfigId in the application evaluated
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>Front50 &lt;a href="https://github.com/spinnaker/front50/pull/1520">PR1520&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="orca-new-pipeline-stage-configuration-backoffperiodms">Orca: New Pipeline stage configuration &lt;code>backOffPeriodMs&lt;/code>&lt;/h3>
&lt;p>A new configuration option &lt;code>backOffPeriodMs&lt;/code> has been added to the pipeline stage configuration. This option allows users
to specify a back-off period in milliseconds for stages that may need to retry operations after a failure. Before this,
pipeline authors had no control over the backoff period. It came from either spinnaker configuration properties or
implementations of RetryableTask.getDynamicBackoffPeriod.&lt;/p>
&lt;p>Additionally, the following configuration options have been added that allow admins to specify globablly the backoff period in your &lt;code>orca-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>tasks.global.backOffPeriod:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tasks.&amp;lt;cloud provider&amp;gt;.backOffPeriod:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tasks.&amp;lt;cloud provider&amp;gt;.&amp;lt;account name&amp;gt;.backOffPeriod:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4841">PR 4841&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="orca-performance-improvements-for-pipeline-executions">Orca: Performance Improvements for Pipeline Executions&lt;/h3>
&lt;p>This release includes several optimizations to improve pipeline execution times, particularly for complex pipeline structures.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>Memorize the &lt;code>anyUpstreamStagesFailed&lt;/code> extension function to improve time complexity from exponential to linear&lt;/li>
&lt;li>Optimize &lt;code>getAncestorsImpl&lt;/code> to reduce time complexity by a factor of N, where N is the number of stages in a pipeline&lt;/li>
&lt;li>Optimize &lt;code>StartStageHandler&lt;/code> to only call withAuth (which calls getAncestorsImpl) when&lt;/li>
&lt;/ol>
&lt;p>These enhancements significantly reduce pipeline execution time, with the most notable gains observed in dense pipeline graphs. For example, in the &lt;code>ComplexPipeline.kt&lt;/code> test scenario, execution time improved from not completing at all to approximately &lt;code>160ms&lt;/code>.&lt;/p>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4824">PR 4824&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="orca-performance-improvements-for-sql-backend">Orca: Performance Improvements for SQL Backend&lt;/h3>
&lt;p>This release enhances the performance of SQL-backed pipeline queries by optimizing database operations, particularly for the API call:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>/applications/{application}/pipelines?expand=false&amp;amp;limit=2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>which is frequently initiated by Deck and forwarded through Gate to Orca.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ul>
&lt;li>Improved Query Efficiency: Optimized the retrieval of pipeline execution data, significantly reducing database query times.&lt;/li>
&lt;li>Refactored &lt;code>TaskController&lt;/code>: Externalized configuration properties to allow better flexibility and tuning.&lt;/li>
&lt;li>Enhanced &lt;code>getPipelinesForApplication()&lt;/code>
&lt;ul>
&lt;li>Limits the number of pipeline config IDs queried.&lt;/li>
&lt;li>Processes multiple pipeline config IDs simultaneously.&lt;/li>
&lt;li>Introduces multi-threading to handle batches efficiently.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4804">PR 4804&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="orca-read-connection-pool-for-sql-execution-repository">Orca: Read Connection Pool for SQL Execution Repository&lt;/h3>
&lt;p>This release introduces support for a dedicated read connection pool for specific read-only database queries in &lt;code>SqlExecutionRepository&lt;/code>&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>New &amp;ldquo;read&amp;rdquo; Connection Pool: Allows read operations to be routed to a separate connection pool.&lt;/li>
&lt;li>Configurable Read Pool: Users can define an additional read connection pool in the SQL configuration.&lt;/li>
&lt;li>Ensures Data Consistency: Some read queries still rely on recently written data and are not yet converted to use a read replica due to potential replication lag.&lt;/li>
&lt;/ol>
&lt;p>Configuration Example&lt;/p>
&lt;p>To enable the read connection pool, add the following configuration in your &lt;code>orca-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionPools&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;...&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">read&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jdbcUrl&lt;/span>: jdbc:...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user&lt;/span>: orca_service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">password&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">validationTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxPoolSize&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">minIdle&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxLifetimeMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">idleTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4803">PR 4803&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="migration-of-retrofit1-to-retrofit2-for-all-services">Migration of Retrofit1 to Retrofit2 for all services&lt;/h3>
&lt;p>Retrofit1 clients from the following spinnaker services have been upgraded to retrofit2. With this release, retrofit2 upgrade of all spinnaker services is completed.
Any internal plugins that rely on retrofit1 clients will need to be upgraded to retrofit2.&lt;/p>
&lt;p>A new CallAdapter named LegacySignatureCallAdapter has been introduced in Kork to provide support for legacy Retrofit
method signatures. This adapter enables the use of Retrofit interfaces that do not return Call&amp;lt;..&amp;gt;, similar to how
Retrofit 1 worked. Both Kayenta and Halyard leveraged this feature during their Retrofit 2 upgrades, allowing them to
maintain their existing method signatures without wrapping them in Call&amp;lt;..&amp;gt; or using Retrofit2SyncCall.execute()&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/spinnaker/spinnaker/pull/7088">https://github.com/spinnaker/spinnaker/pull/7088&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the following changelogs for details:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://spinnaker.io/changelogs/1.37.0-changelog/">Spinnaker v1.37.0&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://spinnaker.io/changelogs/1.38.0-changelog/">Spinnaker v1.38.0&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://spinnaker.io/changelogs/1.38.0-changelog/">Spinnaker v1.38.0/2025.0.0&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://spinnaker.io/changelogs/2025.1.0-changelog/">Spinnaker 2025.1.0&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://spinnaker.io/changelogs/2025.2.0-changelog/">Spinnaker 2025.2.0&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>
version: 2.38.0
timestamp: 2025-10-21 09:16:45
services:
dinghy:
version: 2.38.0
commit: babaa4704f1df8a6f6b42e533716396c8a0f529b
rosco:
version: 2.38.0
commit: e891413d1ffd7fa5a49f232a048e7ab2a1cbe63b
clouddriver:
version: 2.38.0
commit: e891413d1ffd7fa5a49f232a048e7ab2a1cbe63b
deck:
version: 2.38.0
commit: e891413d1ffd7fa5a49f232a048e7ab2a1cbe63b
gate:
version: 2.38.0
commit: e891413d1ffd7fa5a49f232a048e7ab2a1cbe63b
kayenta:
version: 2.38.0
commit: e891413d1ffd7fa5a49f232a048e7ab2a1cbe63b
orca:
version: 2.38.0
commit: e891413d1ffd7fa5a49f232a048e7ab2a1cbe63b
echo:
version: 2.38.0
commit: e891413d1ffd7fa5a49f232a048e7ab2a1cbe63b
fiat:
version: 2.38.0
commit: e891413d1ffd7fa5a49f232a048e7ab2a1cbe63b
front50:
version: 2.38.0
commit: e891413d1ffd7fa5a49f232a048e7ab2a1cbe63b
igor:
version: 2.38.0
commit: e891413d1ffd7fa5a49f232a048e7ab2a1cbe63b
terraformer:
version: 2.38.0
commit: babaa4704f1df8a6f6b42e533716396c8a0f529b
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-igor---23652380">Armory Igor - 2.36.5&amp;hellip;2.38.0&lt;/h4>
&lt;h4 id="terraformer---23652380">Terraformer™ - 2.36.5&amp;hellip;2.38.0&lt;/h4>
&lt;h4 id="armory-rosco---23652380">Armory Rosco - 2.36.5&amp;hellip;2.38.0&lt;/h4>
&lt;h4 id="armory-gate---23652380">Armory Gate - 2.36.5&amp;hellip;2.38.0&lt;/h4>
&lt;h4 id="armory-echo---23652380">Armory Echo - 2.36.5&amp;hellip;2.38.0&lt;/h4>
&lt;h4 id="armory-deck---23652380">Armory Deck - 2.36.5&amp;hellip;2.38.0&lt;/h4>
&lt;h4 id="armory-orca---23652380">Armory Orca - 2.36.5&amp;hellip;2.38.0&lt;/h4>
&lt;h4 id="armory-kayenta---23652380">Armory Kayenta - 2.36.5&amp;hellip;2.38.0&lt;/h4>
&lt;h4 id="dinghy---23652380">Dinghy™ - 2.36.5&amp;hellip;2.38.0&lt;/h4>
&lt;h4 id="armory-front50---23652380">Armory Front50 - 2.36.5&amp;hellip;2.38.0&lt;/h4>
&lt;h4 id="armory-clouddriver---23652380">Armory Clouddriver - 2.36.5&amp;hellip;2.38.0&lt;/h4>
&lt;h4 id="armory-fiat---23652380">Armory Fiat - 2.36.5&amp;hellip;2.38.0&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-igor---202522">Spinnaker Igor - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-rosco---202522">Spinnaker Rosco - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-gate---202522">Spinnaker Gate - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-echo---202522">Spinnaker Echo - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-deck---202522">Spinnaker Deck - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-orca---202522">Spinnaker Orca - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-kayenta---202522">Spinnaker Kayenta - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-front50---202522">Spinnaker Front50 - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---202522">Spinnaker Clouddriver - 2025.2.2&lt;/h4>
&lt;h4 id="spinnaker-fiat---202522">Spinnaker Fiat - 2025.2.2&lt;/h4></description></item><item><title>Continuous-Deployment: v2.36.5 Armory Continuous Deployment Release (Spinnaker™ v1.36.1)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-5/</link><pubDate>Thu, 16 Oct 2025 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-5/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="2025-10-16-release-notes">2025-10-16 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Important&lt;/h4>
&lt;a href="/continuous-deployment/installation/armory-operator/">Armory Operator&lt;/a> has been deprecated and will is considered EOL. Please migrate to the &lt;a href="/continuous-deployment/spinnaker-user-guides/armory-operator-to-kustomize-migration/">Kustomize&lt;/a> method of deployment.
&lt;/div>
&lt;p>To install, upgrade, or configure Armory CD 2.36.5, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;p>The following configuration properties have been restructured:&lt;/p>
&lt;p>Previous Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New configuration format&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">optimize-execution-retrieval&lt;/span>: &amp;lt;boolean&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-execution-retrieval-threads&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-number-of-pipeline-executions-to-process&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">execution-retrieval-timeout-seconds&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>These changes improve query performance and execution retrieval efficiency, particularly for large-scale pipeline applications.&lt;/p>
&lt;p>&lt;a href="#performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/a>&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="url-filteringrestriction-on-artifact-accounts-require-all-available-configurations-set">Url filtering/restriction on artifact accounts require all available configurations set&lt;/h3>
&lt;p>In Armory CD 2.36.5 the &lt;a href="#security-enhancement-url-filteringrestriction-capabilities-on-artifact-accounts">url filtering/restriction&lt;/a>
was introduced to enhance the security of artifact accounts. When enabled in an artifact account all the configuration options
need to be explicitly set to avoid unexpected behavior/restrictions.&lt;/p>
&lt;p>This known issue has been fixed in &lt;a href="/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-6/">Armory CD 2.36.6&lt;/a>&lt;/p>
&lt;h3 id="echo-filter-enabled-pipelines-feature">Echo Filter enabled pipelines feature&lt;/h3>
&lt;p>Spinnaker OSS Version 1.31.0 introduced a feature to filter pipelines from front50 , that was disabled by default.
Version 1.35.0 enabled it by default , which is not recommended and can cause issues with automated triggers.
In Armory CD 2.36.2 we recommend to explicitly disable this feature by setting the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>apiVersion: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kind: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>metadata:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> name: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>spec:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> spinnakerConfig:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> profiles:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> pipelineCache:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> filterFront50Pipelines: false
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;h3 id="security-enhancement-url-filteringrestriction-capabilities-on-artifact-accounts">Security enhancement: Url Filtering/Restriction capabilities on Artifact accounts&lt;/h3>
&lt;p>Starting in Armory Continuous Deployment 2.36.5, we have enabled to capability to filter/restrict urls that can be accessed per artifact accounts.
This feature provides a safeguard around user input of remote urls when artifact accounts are in used in the context of a pipeline execution.&lt;/p>
&lt;p>An example configuration can be found below which can be added per artifact account (http, github, helm):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">artifacts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">http&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">accounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">name&lt;/span>: http_account
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">urlRestrictions&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">allowedHostnamesRegex&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;.*\\..+&amp;#34;&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">allowedSchemes&lt;/span>: &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - http
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - https
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLocalhost&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectLinkLocal&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectVerbatimIps&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">allowedDomains&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - mydomain.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - raw.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - api.github.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">rejectedIps&lt;/span>: [] &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">excludedDomainTemplate&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;(?=.+\\.%s$).*\\..+&amp;#34;&lt;/span> &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">excludedDomains&lt;/span>: &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - local
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - localdomain
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - internal
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">excludedDomainsFromEnvironment&lt;/span>: [] &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">extraExcludedPatterns&lt;/span>: [] &lt;span style="color:#6272a4">#default value&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>By default the configuration blocks any local CIDR ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), localhost, link local and raw IPs.
For full configuration details please refer to this &lt;a href="https://github.com/spinnaker/spinnaker/blob/main/clouddriver/clouddriver-artifacts/src/main/java/com/netflix/spinnaker/clouddriver/artifacts/config/HttpUrlRestrictions.java">configuration class&lt;/a>&lt;/p>
&lt;h3 id="armory-continuous-deployment-2362-onwards-docker-images-now-based-on-ubuntu">Armory Continuous Deployment 2.36.2 onwards Docker images now based on Ubuntu&lt;/h3>
&lt;p>The Armory Continuous Deployment 2.36.2 Docker images have been updated to use Ubuntu as the base image, replacing the previous Alpine base.
This change enhances compatibility with various libraries and tools, improving overall stability and performance.
Additionally, the new images now include all the necessary dependencies for authentication on a Kebreros server.&lt;/p>
&lt;h3 id="pipeline-reference-feature-is-now-able-to-lazy-load-the-pipeline-reference-pipelines">Pipeline Reference feature is now able to Lazy load the pipeline reference pipelines&lt;/h3>
&lt;p>In Spinnaker OSS release 1.35.0 Orca introduced a feature flag to reduce the execution size in nested pipelines by
converting PipelineTrigger to PipelineRefTrigger:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">executionRepository&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipelineRef&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>When enabled, child pipeline execution ids are stored in sql instead of the entire child pipeline execution context.&lt;/p>
&lt;p>In Armory CD 2.36.2 this functionality is now extended to make the in-memory representation of the pipelines aware of the pipeline reference
and to not load in-memory a full representation of the pipeline context. To enable this feature in Deck add the following in &lt;code>settings-local.js&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.pipelineRefEnabled = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span> &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4842">PR 4842&lt;/a>&lt;/em>
&lt;em>Deck &lt;a href="https://github.com/spinnaker/deck/pull/10164">PR 10164&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="new-pipeline-stage-configuration-backoffperiodms">New pipeline stage configuration &lt;code>backOffPeriodMs&lt;/code>&lt;/h3>
&lt;p>A new configuration option &lt;code>backOffPeriodMs&lt;/code> has been added to the pipeline stage configuration. This option allows users
to specify a back-off period in milliseconds for stages that may need to retry operations after a failure. Before this,
pipeline authors had no control over the backoff period. It came from either spinnaker configuration properties or
implementations of RetryableTask.getDynamicBackoffPeriod.&lt;/p>
&lt;p>Additionally, the following configuration options have been added that allow admins to specify globablly the backoff period:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.global.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.&amp;lt;cloud provider&amp;gt;.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> tasks.&amp;lt;cloud provider&amp;gt;.&amp;lt;account name&amp;gt;.backOffPeriod:&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4841">PR 4841&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="java-upgrades">Java upgrades&lt;/h3>
&lt;p>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: &lt;code>--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&lt;/code> to clouddriver if using GCP accounts due to credentials parsing of certificates. These can set in the &lt;a href="https://spinnaker.io/docs/reference/halyard/custom/#custom-service-settings">service-settings config&lt;/a> . These configs are likely to be added to the defaults in all future releases&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">service-settings&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">env&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">JAVA_OPTS&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;--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&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="performance-improvements-for-pipeline-executions">Performance Improvements for Pipeline Executions&lt;/h3>
&lt;p>This release includes several optimizations to improve pipeline execution times, particularly for complex pipeline structures.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>Memorize the &lt;code>anyUpstreamStagesFailed&lt;/code> extension function to improve time complexity from exponential to linear&lt;/li>
&lt;li>Optimize &lt;code>getAncestorsImpl&lt;/code> to reduce time complexity by a factor of N, where N is the number of stages in a pipeline&lt;/li>
&lt;li>Optimize &lt;code>StartStageHandler&lt;/code> to only call withAuth (which calls getAncestorsImpl) when&lt;/li>
&lt;/ol>
&lt;p>These enhancements significantly reduce pipeline execution time, with the most notable gains observed in dense pipeline graphs. For example, in the &lt;code>ComplexPipeline.kt&lt;/code> test scenario, execution time improved from not completing at all to approximately &lt;code>160ms&lt;/code>.&lt;/p>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4824">PR 4824&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/h3>
&lt;p>This release enhances the performance of SQL-backed pipeline queries by optimizing database operations, particularly for the API call:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>/applications/{application}/pipelines?expand=false&amp;amp;limit=2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>which is frequently initiated by Deck and forwarded through Gate to Orca.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ul>
&lt;li>Improved Query Efficiency: Optimized the retrieval of pipeline execution data, significantly reducing database query times.&lt;/li>
&lt;li>Refactored &lt;code>TaskController&lt;/code>: Externalized configuration properties to allow better flexibility and tuning.&lt;/li>
&lt;li>Enhanced &lt;code>getPipelinesForApplication()&lt;/code>
&lt;ul>
&lt;li>Limits the number of pipeline config IDs queried.&lt;/li>
&lt;li>Processes multiple pipeline config IDs simultaneously.&lt;/li>
&lt;li>Introduces multi-threading to handle batches efficiently.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4804">PR 4804&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="feature-read-connection-pool-for-sql-execution-repository">Feature: Read Connection Pool for SQL Execution Repository&lt;/h3>
&lt;p>This release introduces support for a dedicated read connection pool for specific read-only database queries in &lt;code>SqlExecutionRepository&lt;/code>&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>New &amp;ldquo;read&amp;rdquo; Connection Pool: Allows read operations to be routed to a separate connection pool.&lt;/li>
&lt;li>Configurable Read Pool: Users can define an additional read connection pool in the SQL configuration.&lt;/li>
&lt;li>Ensures Data Consistency: Some read queries still rely on recently written data and are not yet converted to use a read replica due to potential replication lag.&lt;/li>
&lt;/ol>
&lt;p>Configuration Example&lt;/p>
&lt;p>To enable the read connection pool, add the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionPools&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;...&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">read&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jdbcUrl&lt;/span>: jdbc:...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user&lt;/span>: orca_service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">password&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">validationTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxPoolSize&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">minIdle&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxLifetimeMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">idleTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4803">PR 4803&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="enhanced-pipeline-batch-update-feature">Enhanced pipeline batch update feature&lt;/h3>
&lt;h4 id="gate">Gate&lt;/h4>
&lt;p>Adds a new enpdoint, &lt;code>POST /pipelines/bulksave&lt;/code>, 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&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bulksave&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the max number of times gate will poll orca to check for task status&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-polls-for-task-completion&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the interval at which gate will poll orca.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">taskCompletionCheckIntervalMs&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="orca">Orca&lt;/h4>
&lt;p>Updates Orca’s SavePipelineTask to support bulk saves using the updated functionality in the front50 bulk save endpoint.&lt;/p>
&lt;p>With &lt;a href="https://github.com/spinnaker/orca/pull/4781">Orca PR 4781&lt;/a>, 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:&lt;/p>
&lt;ul>
&lt;li>PromoteManifestKatoOutputsTask&lt;/li>
&lt;li>WaitOnJobCompletionTask&lt;/li>
&lt;li>ResolveDeploySourceManifestTask&lt;/li>
&lt;li>BindProducedArtifactsTask&lt;/li>
&lt;/ul>
&lt;p>The &lt;a href="https://github.com/spinnaker/orca/pull/4788">Orca PR 4788&lt;/a> 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.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">promoteManifestKatoOutputsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.createdArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.boundArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">waitOnJobCompletionTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - jobStatus
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - completionDetails
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">resolveDeploySourceManifestTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - requiredArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - optionalArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">core&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">bindProducedArtifactsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - artifacts&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkClouddriver&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">auditModeEnabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="front50">Front50&lt;/h4>
&lt;p>Batch update operation in front50 is now atomic. Deserialization issues are addressed.
Configurable controls are added to decide whether cache should be refreshed while checking for duplicate pipelines:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">front50&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">save&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">refreshCacheOnDuplicatesCheck&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> // default is true&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Here the value for &lt;code>successful_pipelines&lt;/code> is the list of successful pipeline names whereas the value for &lt;code>failed_pipelines&lt;/code> is the list of failed pipelines expressed as maps.&lt;/p>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.36.1-changelog/">Spinnaker v1.36.1&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>
version: 2.36.5
timestamp: 2025-10-15 09:32:06
services:
igor:
version: 2.36.5
commit: 7fccfb59279c325d5368a82ed9859f9cc7253302
gate:
version: 2.36.5
commit: 7cad31c006f10d4549bd666c76dbd85bd8286921
kayenta:
version: 2.36.5
commit: 4b9fb28ad8fa0e4b44fa162691b5d51691d90891
dinghy:
version: 2.36.5
commit: d36fdf5b496b18212275686d4c9069d72c9dbeb1
rosco:
version: 2.36.5
commit: 8e35f1c3560b3b8f7de6fc4a35718b4aee98a47c
orca:
version: 2.36.5
commit: 138f6665e75d2e600b4cb07631079cc83a6560ec
clouddriver:
version: 2.36.5
commit: 485642649712e3d69472ed62edfbd7e8e9df1118
deck:
version: 2.36.5
commit: 54a2aada8cb187554536daeb8b8b2858714d1afe
echo:
version: 2.36.5
commit: 93303566f7d718f115520dd0b00852cfa183f413
fiat:
version: 2.36.5
commit: e7412ae8d6a0c4fe765098315696fe24eeb3e2f5
terraformer:
version: 2.36.5
commit: 8453d42107fda5f0c315c8459f523e9182805832
front50:
version: 2.36.5
commit: 08c2d640ec2818a990602c40f22952782af0781f
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-igor---23612363">Armory Igor - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="terraformer---23612363">Terraformer™ - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-rosco---23612363">Armory Rosco - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-gate---23612363">Armory Gate - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-echo---23612363">Armory Echo - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-deck---23612363">Armory Deck - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-orca---23612363">Armory Orca - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-kayenta---23612363">Armory Kayenta - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="dinghy---23612363">Dinghy™ - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-front50---23612363">Armory Front50 - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-clouddriver---23612363">Armory Clouddriver - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-fiat---23612363">Armory Fiat - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-igor---1361">Spinnaker Igor - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-rosco---1361">Spinnaker Rosco - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-gate---1361">Spinnaker Gate - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-echo---1361">Spinnaker Echo - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-deck---1361">Spinnaker Deck - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-orca---1361">Spinnaker Orca - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1361">Spinnaker Kayenta - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-front50---1361">Spinnaker Front50 - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1361">Spinnaker Clouddriver - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-fiat---1361">Spinnaker Fiat - 1.36.1&lt;/h4></description></item><item><title>Continuous-Deployment: v2.36.4 Armory Continuous Deployment Release (Spinnaker™ v1.36.1)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-4/</link><pubDate>Tue, 09 Sep 2025 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-4/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="2025-09-09-release-notes">2025-09-09 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.36.4, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;p>The following configuration properties have been restructured:&lt;/p>
&lt;p>Previous Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New configuration format&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">optimize-execution-retrieval&lt;/span>: &amp;lt;boolean&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-execution-retrieval-threads&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-number-of-pipeline-executions-to-process&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">execution-retrieval-timeout-seconds&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>These changes improve query performance and execution retrieval efficiency, particularly for large-scale pipeline applications.&lt;/p>
&lt;p>&lt;a href="#performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/a>&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="echo-filter-enabled-pipelines-feature">Echo Filter enabled pipelines feature&lt;/h3>
&lt;p>Spinnaker OSS Version 1.31.0 introduced a feature to filter pipelines from front50 , that was disabled by default.
Version 1.35.0 enabled it by default , which is not recommended and can cause issues with automated triggers.
In Armory CD 2.36.2 we recommend to explicitly disable this feature by setting the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>apiVersion: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kind: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>metadata:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> name: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>spec:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> spinnakerConfig:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> profiles:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> pipelineCache:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> filterFront50Pipelines: false
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;h3 id="armory-continuous-deployment-2362-docker-images-now-based-on-ubuntu">Armory Continuous Deployment 2.36.2 Docker images now based on Ubuntu&lt;/h3>
&lt;p>The Armory Continuous Deployment 2.36.2 Docker images have been updated to use Ubuntu as the base image, replacing the previous Alpine base.
This change enhances compatibility with various libraries and tools, improving overall stability and performance.
Additionally, the new images now include all the necessary dependencies for authentication on a Kebreros server.&lt;/p>
&lt;h3 id="pipeline-reference-feature-is-now-able-to-lazy-load-the-pipeline-reference-pipelines">Pipeline Reference feature is now able to Lazy load the pipeline reference pipelines&lt;/h3>
&lt;p>In Spinnaker OSS release 1.35.0 Orca introduced a feature flag to reduce the execution size in nested pipelines by
converting PipelineTrigger to PipelineRefTrigger:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">executionRepository&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipelineRef&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>When enabled, child pipeline execution ids are stored in sql instead of the entire child pipeline execution context.&lt;/p>
&lt;p>In Armory CD 2.36.2 this functionality is now extended to make the in-memory representation of the pipelines aware of the pipeline reference
and to not load in-memory a full representation of the pipeline context. To enable this feature in Deck add the following in &lt;code>settings-local.js&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.pipelineRefEnabled = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span> &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4842">PR 4842&lt;/a>&lt;/em>
&lt;em>Deck &lt;a href="https://github.com/spinnaker/deck/pull/10164">PR 10164&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="new-pipeline-stage-configuration-backoffperiodms">New pipeline stage configuration &lt;code>backOffPeriodMs&lt;/code>&lt;/h3>
&lt;p>A new configuration option &lt;code>backOffPeriodMs&lt;/code> has been added to the pipeline stage configuration. This option allows users
to specify a back-off period in milliseconds for stages that may need to retry operations after a failure. Before this,
pipeline authors had no control over the backoff period. It came from either spinnaker configuration properties or
implementations of RetryableTask.getDynamicBackoffPeriod.&lt;/p>
&lt;p>Additionally, the following configuration options have been added that allow admins to specify globablly the backoff period:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.global.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.&amp;lt;cloud provider&amp;gt;.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> tasks.&amp;lt;cloud provider&amp;gt;.&amp;lt;account name&amp;gt;.backOffPeriod:&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4841">PR 4841&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="java-upgrades">Java upgrades&lt;/h3>
&lt;p>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: &lt;code>--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&lt;/code> to clouddriver if using GCP accounts due to credentials parsing of certificates. These can set in the &lt;a href="https://spinnaker.io/docs/reference/halyard/custom/#custom-service-settings">service-settings config&lt;/a> . These configs are likely to be added to the defaults in all future releases&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">service-settings&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">env&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">JAVA_OPTS&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;--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&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="performance-improvements-for-pipeline-executions">Performance Improvements for Pipeline Executions&lt;/h3>
&lt;p>This release includes several optimizations to improve pipeline execution times, particularly for complex pipeline structures.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>Memorize the &lt;code>anyUpstreamStagesFailed&lt;/code> extension function to improve time complexity from exponential to linear&lt;/li>
&lt;li>Optimize &lt;code>getAncestorsImpl&lt;/code> to reduce time complexity by a factor of N, where N is the number of stages in a pipeline&lt;/li>
&lt;li>Optimize &lt;code>StartStageHandler&lt;/code> to only call withAuth (which calls getAncestorsImpl) when&lt;/li>
&lt;/ol>
&lt;p>These enhancements significantly reduce pipeline execution time, with the most notable gains observed in dense pipeline graphs. For example, in the &lt;code>ComplexPipeline.kt&lt;/code> test scenario, execution time improved from not completing at all to approximately &lt;code>160ms&lt;/code>.&lt;/p>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4824">PR 4824&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/h3>
&lt;p>This release enhances the performance of SQL-backed pipeline queries by optimizing database operations, particularly for the API call:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>/applications/{application}/pipelines?expand=false&amp;amp;limit=2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>which is frequently initiated by Deck and forwarded through Gate to Orca.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ul>
&lt;li>Improved Query Efficiency: Optimized the retrieval of pipeline execution data, significantly reducing database query times.&lt;/li>
&lt;li>Refactored &lt;code>TaskController&lt;/code>: Externalized configuration properties to allow better flexibility and tuning.&lt;/li>
&lt;li>Enhanced &lt;code>getPipelinesForApplication()&lt;/code>
&lt;ul>
&lt;li>Limits the number of pipeline config IDs queried.&lt;/li>
&lt;li>Processes multiple pipeline config IDs simultaneously.&lt;/li>
&lt;li>Introduces multi-threading to handle batches efficiently.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4804">PR 4804&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="feature-read-connection-pool-for-sql-execution-repository">Feature: Read Connection Pool for SQL Execution Repository&lt;/h3>
&lt;p>This release introduces support for a dedicated read connection pool for specific read-only database queries in &lt;code>SqlExecutionRepository&lt;/code>&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>New &amp;ldquo;read&amp;rdquo; Connection Pool: Allows read operations to be routed to a separate connection pool.&lt;/li>
&lt;li>Configurable Read Pool: Users can define an additional read connection pool in the SQL configuration.&lt;/li>
&lt;li>Ensures Data Consistency: Some read queries still rely on recently written data and are not yet converted to use a read replica due to potential replication lag.&lt;/li>
&lt;/ol>
&lt;p>Configuration Example&lt;/p>
&lt;p>To enable the read connection pool, add the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionPools&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;...&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">read&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jdbcUrl&lt;/span>: jdbc:...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user&lt;/span>: orca_service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">password&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">validationTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxPoolSize&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">minIdle&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxLifetimeMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">idleTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4803">PR 4803&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="enhanced-pipeline-batch-update-feature">Enhanced pipeline batch update feature&lt;/h3>
&lt;h4 id="gate">Gate&lt;/h4>
&lt;p>Adds a new enpdoint, &lt;code>POST /pipelines/bulksave&lt;/code>, 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&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bulksave&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the max number of times gate will poll orca to check for task status&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-polls-for-task-completion&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the interval at which gate will poll orca.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">taskCompletionCheckIntervalMs&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="orca">Orca&lt;/h4>
&lt;p>Updates Orca’s SavePipelineTask to support bulk saves using the updated functionality in the front50 bulk save endpoint.&lt;/p>
&lt;p>With &lt;a href="https://github.com/spinnaker/orca/pull/4781">Orca PR 4781&lt;/a>, 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:&lt;/p>
&lt;ul>
&lt;li>PromoteManifestKatoOutputsTask&lt;/li>
&lt;li>WaitOnJobCompletionTask&lt;/li>
&lt;li>ResolveDeploySourceManifestTask&lt;/li>
&lt;li>BindProducedArtifactsTask&lt;/li>
&lt;/ul>
&lt;p>The &lt;a href="https://github.com/spinnaker/orca/pull/4788">Orca PR 4788&lt;/a> 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.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">promoteManifestKatoOutputsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.createdArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.boundArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">waitOnJobCompletionTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - jobStatus
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - completionDetails
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">resolveDeploySourceManifestTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - requiredArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - optionalArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">core&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">bindProducedArtifactsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - artifacts&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkClouddriver&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">auditModeEnabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="front50">Front50&lt;/h4>
&lt;p>Batch update operation in front50 is now atomic. Deserialization issues are addressed.
Configurable controls are added to decide whether cache should be refreshed while checking for duplicate pipelines:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">front50&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">save&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">refreshCacheOnDuplicatesCheck&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> // default is true&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Here the value for &lt;code>successful_pipelines&lt;/code> is the list of successful pipeline names whereas the value for &lt;code>failed_pipelines&lt;/code> is the list of failed pipelines expressed as maps.&lt;/p>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.36.1-changelog/">Spinnaker v1.36.1&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>
version: 2.36.4
timestamp: 2025-09-03 13:19:57
services:
front50:
version: 2.36.4
commit: 08c2d640ec2818a990602c40f22952782af0781f
gate:
version: 2.36.4
commit: 4008ca9592054ea4cb100231dffe13dd8f819367
igor:
version: 2.36.4
commit: 7fccfb59279c325d5368a82ed9859f9cc7253302
kayenta:
version: 2.36.4
commit: 4b9fb28ad8fa0e4b44fa162691b5d51691d90891
terraformer:
version: 2.36.4
commit: 8453d42107fda5f0c315c8459f523e9182805832
orca:
version: 2.36.4
commit: 7a3859e21f389b81aba72e294243bb41a7653d8f
rosco:
version: 2.36.4
commit: 8e35f1c3560b3b8f7de6fc4a35718b4aee98a47c
clouddriver:
version: 2.36.4
commit: feb14e1f16e7d26ed9390c6911da9a9d50038c68
deck:
version: 2.36.4
commit: 54a2aada8cb187554536daeb8b8b2858714d1afe
echo:
version: 2.36.4
commit: 93303566f7d718f115520dd0b00852cfa183f413
fiat:
version: 2.36.4
commit: e7412ae8d6a0c4fe765098315696fe24eeb3e2f5
dinghy:
version: 2.36.4
commit: d36fdf5b496b18212275686d4c9069d72c9dbeb1
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-igor---23612363">Armory Igor - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="terraformer---23612363">Terraformer™ - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-rosco---23612363">Armory Rosco - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-gate---23612363">Armory Gate - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-echo---23612363">Armory Echo - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-deck---23612363">Armory Deck - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-orca---23612363">Armory Orca - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-kayenta---23612363">Armory Kayenta - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="dinghy---23612363">Dinghy™ - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-front50---23612363">Armory Front50 - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-clouddriver---23612363">Armory Clouddriver - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-fiat---23612363">Armory Fiat - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-igor---1361">Spinnaker Igor - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-rosco---1361">Spinnaker Rosco - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-gate---1361">Spinnaker Gate - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-echo---1361">Spinnaker Echo - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-deck---1361">Spinnaker Deck - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-orca---1361">Spinnaker Orca - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1361">Spinnaker Kayenta - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-front50---1361">Spinnaker Front50 - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1361">Spinnaker Clouddriver - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-fiat---1361">Spinnaker Fiat - 1.36.1&lt;/h4></description></item><item><title>Continuous-Deployment: v2.36.3 Armory Continuous Deployment Release (Spinnaker™ v1.36.1)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-3/</link><pubDate>Mon, 18 Aug 2025 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-3/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="2025-08-14-release-notes">2025-08-14 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.36.3, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;p>The following configuration properties have been restructured:&lt;/p>
&lt;p>Previous Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New configuration format&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">optimize-execution-retrieval&lt;/span>: &amp;lt;boolean&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-execution-retrieval-threads&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-number-of-pipeline-executions-to-process&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">execution-retrieval-timeout-seconds&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>These changes improve query performance and execution retrieval efficiency, particularly for large-scale pipeline applications.&lt;/p>
&lt;p>&lt;a href="#performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/a>&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="deck---failing-to-bind-address-when-ssl-is-used">Deck - Failing to bind address when SSL is used&lt;/h3>
&lt;p>In Armory CD 2.36.3 Deck may fail to start with the following error when SSL is enabled:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>AH00526: Syntax error on line 17 of /etc/apache2/sites-enabled/spinnaker.conf:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Cannot define multiple Listeners on the same IP:port
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Action &amp;#39;-D FOREGROUND&amp;#39; failed.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>The Apache error log may have more information.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The issue is fully resolved in Armory CD 2.36.4. Please upgrade to that version if you encounter this issue.&lt;/p>
&lt;h3 id="echo-filter-enabled-pipelines-feature">Echo Filter enabled pipelines feature&lt;/h3>
&lt;p>Spinnaker OSS Version 1.31.0 introduced a feature to filter pipelines from front50 , that was disabled by default.
Version 1.35.0 enabled it by default , which is not recommended and can cause issues with automated triggers.
In Armory CD 2.36.2 we recommend to explicitly disable this feature by setting the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>apiVersion: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kind: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>metadata:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> name: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>spec:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> spinnakerConfig:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> profiles:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> pipelineCache:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> filterFront50Pipelines: false
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;h3 id="armory-continuous-deployment-2362-docker-images-now-based-on-ubuntu">Armory Continuous Deployment 2.36.2 Docker images now based on Ubuntu&lt;/h3>
&lt;p>The Armory Continuous Deployment 2.36.2 Docker images have been updated to use Ubuntu as the base image, replacing the previous Alpine base.
This change enhances compatibility with various libraries and tools, improving overall stability and performance.
Additionally, the new images now include all the necessary dependencies for authentication on a Kebreros server.&lt;/p>
&lt;h3 id="pipeline-reference-feature-is-now-able-to-lazy-load-the-pipeline-reference-pipelines">Pipeline Reference feature is now able to Lazy load the pipeline reference pipelines&lt;/h3>
&lt;p>In Spinnaker OSS release 1.35.0 Orca introduced a feature flag to reduce the execution size in nested pipelines by
converting PipelineTrigger to PipelineRefTrigger:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">executionRepository&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipelineRef&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>When enabled, child pipeline execution ids are stored in sql instead of the entire child pipeline execution context.&lt;/p>
&lt;p>In Armory CD 2.36.2 this functionality is now extended to make the in-memory representation of the pipelines aware of the pipeline reference
and to not load in-memory a full representation of the pipeline context. To enable this feature in Deck add the following in &lt;code>settings-local.js&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.pipelineRefEnabled = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span> &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4842">PR 4842&lt;/a>&lt;/em>
&lt;em>Deck &lt;a href="https://github.com/spinnaker/deck/pull/10164">PR 10164&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="new-pipeline-stage-configuration-backoffperiodms">New pipeline stage configuration &lt;code>backOffPeriodMs&lt;/code>&lt;/h3>
&lt;p>A new configuration option &lt;code>backOffPeriodMs&lt;/code> has been added to the pipeline stage configuration. This option allows users
to specify a back-off period in milliseconds for stages that may need to retry operations after a failure. Before this,
pipeline authors had no control over the backoff period. It came from either spinnaker configuration properties or
implementations of RetryableTask.getDynamicBackoffPeriod.&lt;/p>
&lt;p>Additionally, the following configuration options have been added that allow admins to specify globablly the backoff period:
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.global.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks.&amp;lt;cloud provider&amp;gt;.backOffPeriod&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> tasks.&amp;lt;cloud provider&amp;gt;.&amp;lt;account name&amp;gt;.backOffPeriod:&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>&lt;em>Orca &lt;a href="https://github.com/spinnaker/orca/pull/4841">PR 4841&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="java-upgrades">Java upgrades&lt;/h3>
&lt;p>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: &lt;code>--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&lt;/code> to clouddriver if using GCP accounts due to credentials parsing of certificates. These can set in the &lt;a href="https://spinnaker.io/docs/reference/halyard/custom/#custom-service-settings">service-settings config&lt;/a> . These configs are likely to be added to the defaults in all future releases&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">service-settings&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">env&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">JAVA_OPTS&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;--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&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="performance-improvements-for-pipeline-executions">Performance Improvements for Pipeline Executions&lt;/h3>
&lt;p>This release includes several optimizations to improve pipeline execution times, particularly for complex pipeline structures.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>Memorize the &lt;code>anyUpstreamStagesFailed&lt;/code> extension function to improve time complexity from exponential to linear&lt;/li>
&lt;li>Optimize &lt;code>getAncestorsImpl&lt;/code> to reduce time complexity by a factor of N, where N is the number of stages in a pipeline&lt;/li>
&lt;li>Optimize &lt;code>StartStageHandler&lt;/code> to only call withAuth (which calls getAncestorsImpl) when&lt;/li>
&lt;/ol>
&lt;p>These enhancements significantly reduce pipeline execution time, with the most notable gains observed in dense pipeline graphs. For example, in the &lt;code>ComplexPipeline.kt&lt;/code> test scenario, execution time improved from not completing at all to approximately &lt;code>160ms&lt;/code>.&lt;/p>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4824">PR 4824&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/h3>
&lt;p>This release enhances the performance of SQL-backed pipeline queries by optimizing database operations, particularly for the API call:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>/applications/{application}/pipelines?expand=false&amp;amp;limit=2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>which is frequently initiated by Deck and forwarded through Gate to Orca.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ul>
&lt;li>Improved Query Efficiency: Optimized the retrieval of pipeline execution data, significantly reducing database query times.&lt;/li>
&lt;li>Refactored &lt;code>TaskController&lt;/code>: Externalized configuration properties to allow better flexibility and tuning.&lt;/li>
&lt;li>Enhanced &lt;code>getPipelinesForApplication()&lt;/code>
&lt;ul>
&lt;li>Limits the number of pipeline config IDs queried.&lt;/li>
&lt;li>Processes multiple pipeline config IDs simultaneously.&lt;/li>
&lt;li>Introduces multi-threading to handle batches efficiently.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4804">PR 4804&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="feature-read-connection-pool-for-sql-execution-repository">Feature: Read Connection Pool for SQL Execution Repository&lt;/h3>
&lt;p>This release introduces support for a dedicated read connection pool for specific read-only database queries in &lt;code>SqlExecutionRepository&lt;/code>&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>New &amp;ldquo;read&amp;rdquo; Connection Pool: Allows read operations to be routed to a separate connection pool.&lt;/li>
&lt;li>Configurable Read Pool: Users can define an additional read connection pool in the SQL configuration.&lt;/li>
&lt;li>Ensures Data Consistency: Some read queries still rely on recently written data and are not yet converted to use a read replica due to potential replication lag.&lt;/li>
&lt;/ol>
&lt;p>Configuration Example&lt;/p>
&lt;p>To enable the read connection pool, add the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionPools&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;...&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">read&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jdbcUrl&lt;/span>: jdbc:...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user&lt;/span>: orca_service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">password&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">validationTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxPoolSize&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">minIdle&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxLifetimeMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">idleTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4803">PR 4803&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="enhanced-pipeline-batch-update-feature">Enhanced pipeline batch update feature&lt;/h3>
&lt;h4 id="gate">Gate&lt;/h4>
&lt;p>Adds a new enpdoint, &lt;code>POST /pipelines/bulksave&lt;/code>, 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&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bulksave&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the max number of times gate will poll orca to check for task status&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-polls-for-task-completion&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the interval at which gate will poll orca.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">taskCompletionCheckIntervalMs&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="orca">Orca&lt;/h4>
&lt;p>Updates Orca’s SavePipelineTask to support bulk saves using the updated functionality in the front50 bulk save endpoint.&lt;/p>
&lt;p>With &lt;a href="https://github.com/spinnaker/orca/pull/4781">Orca PR 4781&lt;/a>, 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:&lt;/p>
&lt;ul>
&lt;li>PromoteManifestKatoOutputsTask&lt;/li>
&lt;li>WaitOnJobCompletionTask&lt;/li>
&lt;li>ResolveDeploySourceManifestTask&lt;/li>
&lt;li>BindProducedArtifactsTask&lt;/li>
&lt;/ul>
&lt;p>The &lt;a href="https://github.com/spinnaker/orca/pull/4788">Orca PR 4788&lt;/a> 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.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">promoteManifestKatoOutputsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.createdArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.boundArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">waitOnJobCompletionTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - jobStatus
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - completionDetails
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">resolveDeploySourceManifestTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - requiredArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - optionalArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">core&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">bindProducedArtifactsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - artifacts&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkClouddriver&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">auditModeEnabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="front50">Front50&lt;/h4>
&lt;p>Batch update operation in front50 is now atomic. Deserialization issues are addressed.
Configurable controls are added to decide whether cache should be refreshed while checking for duplicate pipelines:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">front50&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">save&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">refreshCacheOnDuplicatesCheck&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> // default is true&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Here the value for &lt;code>successful_pipelines&lt;/code> is the list of successful pipeline names whereas the value for &lt;code>failed_pipelines&lt;/code> is the list of failed pipelines expressed as maps.&lt;/p>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.36.1-changelog/">Spinnaker v1.36.1&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>
version: 2.36.3
timestamp: 2025-08-18 14:22:07
services:
fiat:
version: 2.36.3
commit: e7412ae8d6a0c4fe765098315696fe24eeb3e2f5
front50:
version: 2.36.3
commit: 08c2d640ec2818a990602c40f22952782af0781f
gate:
version: 2.36.3
commit: 4008ca9592054ea4cb100231dffe13dd8f819367
igor:
version: 2.36.3
commit: 7fccfb59279c325d5368a82ed9859f9cc7253302
terraformer:
version: 2.36.3
commit: 8453d42107fda5f0c315c8459f523e9182805832
rosco:
version: 2.36.3
commit: 8e35f1c3560b3b8f7de6fc4a35718b4aee98a47c
dinghy:
version: 2.36.3
commit: d36fdf5b496b18212275686d4c9069d72c9dbeb1
echo:
version: 2.36.3
commit: 93303566f7d718f115520dd0b00852cfa183f413
kayenta:
version: 2.36.3
commit: 4b9fb28ad8fa0e4b44fa162691b5d51691d90891
deck:
version: 2.36.3
commit: 0ca57d9581c7d4ce101422b75665b2e22635711a
orca:
version: 2.36.3
commit: 7a3859e21f389b81aba72e294243bb41a7653d8f
clouddriver:
version: 2.36.3
commit: feb14e1f16e7d26ed9390c6911da9a9d50038c68
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-igor---23612363">Armory Igor - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="terraformer---23612363">Terraformer™ - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-rosco---23612363">Armory Rosco - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-gate---23612363">Armory Gate - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-echo---23612363">Armory Echo - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-deck---23612363">Armory Deck - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-orca---23612363">Armory Orca - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-kayenta---23612363">Armory Kayenta - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="dinghy---23612363">Dinghy™ - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-front50---23612363">Armory Front50 - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-clouddriver---23612363">Armory Clouddriver - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h4 id="armory-fiat---23612363">Armory Fiat - 2.36.1&amp;hellip;2.36.3&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-igor---1361">Spinnaker Igor - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-rosco---1361">Spinnaker Rosco - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-gate---1361">Spinnaker Gate - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-echo---1361">Spinnaker Echo - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-deck---1361">Spinnaker Deck - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-orca---1361">Spinnaker Orca - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1361">Spinnaker Kayenta - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-front50---1361">Spinnaker Front50 - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1361">Spinnaker Clouddriver - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-fiat---1361">Spinnaker Fiat - 1.36.1&lt;/h4></description></item><item><title>Continuous-Deployment: v2.36.1 Armory Continuous Deployment Release (Spinnaker™ v1.36.1)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-1/</link><pubDate>Thu, 20 Feb 2025 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-1/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="20250220-release-notes">2025/02/20 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.36.1, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;p>The following configuration properties have been restructured:&lt;/p>
&lt;p>Previous Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New configuration format&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">optimize-execution-retrieval&lt;/span>: &amp;lt;boolean&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-execution-retrieval-threads&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-number-of-pipeline-executions-to-process&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">execution-retrieval-timeout-seconds&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>These changes improve query performance and execution retrieval efficiency, particularly for large-scale pipeline applications.&lt;/p>
&lt;p>&lt;a href="#performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/a>&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="echo-filter-enabled-pipelines-feature">Echo Filter enabled pipelines feature&lt;/h3>
&lt;p>Spinnaker OSS Version 1.31.0 introduced a feature to filter pipelines from front50 , that was disabled by default.
Version 1.35.0 enabled it by default , which is not recommended and can cause issues with automated triggers.
In Armory CD 2.36.2 we recommend to explicitly disable this feature by setting the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>apiVersion: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kind: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>metadata:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> name: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>spec:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> spinnakerConfig:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> profiles:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> pipelineCache:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> filterFront50Pipelines: false
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;h3 id="java-upgrades">Java upgrades&lt;/h3>
&lt;p>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: &lt;code>--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&lt;/code> to clouddriver if using GCP accounts due to credentials parsing of certificates. These can set in the &lt;a href="https://spinnaker.io/docs/reference/halyard/custom/#custom-service-settings">service-settings config&lt;/a> . These configs are likely to be added to the defaults in all future releases&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">service-settings&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">env&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">JAVA_OPTS&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;--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&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="performance-improvements-for-pipeline-executions">Performance Improvements for Pipeline Executions&lt;/h3>
&lt;p>This release includes several optimizations to improve pipeline execution times, particularly for complex pipeline structures.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>Memorize the &lt;code>anyUpstreamStagesFailed&lt;/code> extension function to improve time complexity from exponential to linear&lt;/li>
&lt;li>Optimize &lt;code>getAncestorsImpl&lt;/code> to reduce time complexity by a factor of N, where N is the number of stages in a pipeline&lt;/li>
&lt;li>Optimize &lt;code>StartStageHandler&lt;/code> to only call withAuth (which calls getAncestorsImpl) when&lt;/li>
&lt;/ol>
&lt;p>These enhancements significantly reduce pipeline execution time, with the most notable gains observed in dense pipeline graphs. For example, in the &lt;code>ComplexPipeline.kt&lt;/code> test scenario, execution time improved from not completing at all to approximately &lt;code>160ms&lt;/code>.&lt;/p>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4824">PR 4824&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/h3>
&lt;p>This release enhances the performance of SQL-backed pipeline queries by optimizing database operations, particularly for the API call:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>/applications/{application}/pipelines?expand=false&amp;amp;limit=2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>which is frequently initiated by Deck and forwarded through Gate to Orca.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ul>
&lt;li>Improved Query Efficiency: Optimized the retrieval of pipeline execution data, significantly reducing database query times.&lt;/li>
&lt;li>Refactored &lt;code>TaskController&lt;/code>: Externalized configuration properties to allow better flexibility and tuning.&lt;/li>
&lt;li>Enhanced &lt;code>getPipelinesForApplication()&lt;/code>
&lt;ul>
&lt;li>Limits the number of pipeline config IDs queried.&lt;/li>
&lt;li>Processes multiple pipeline config IDs simultaneously.&lt;/li>
&lt;li>Introduces multi-threading to handle batches efficiently.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4804">PR 4804&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="feature-read-connection-pool-for-sql-execution-repository">Feature: Read Connection Pool for SQL Execution Repository&lt;/h3>
&lt;p>This release introduces support for a dedicated read connection pool for specific read-only database queries in &lt;code>SqlExecutionRepository&lt;/code>&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>New &amp;ldquo;read&amp;rdquo; Connection Pool: Allows read operations to be routed to a separate connection pool.&lt;/li>
&lt;li>Configurable Read Pool: Users can define an additional read connection pool in the SQL configuration.&lt;/li>
&lt;li>Ensures Data Consistency: Some read queries still rely on recently written data and are not yet converted to use a read replica due to potential replication lag.&lt;/li>
&lt;/ol>
&lt;p>Configuration Example&lt;/p>
&lt;p>To enable the read connection pool, add the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionPools&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;...&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">read&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jdbcUrl&lt;/span>: jdbc:...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user&lt;/span>: orca_service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">password&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">validationTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxPoolSize&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">minIdle&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxLifetimeMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">idleTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4803">PR 4803&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="enhanced-pipeline-batch-update-feature">Enhanced pipeline batch update feature&lt;/h3>
&lt;h4 id="gate">Gate&lt;/h4>
&lt;p>Adds a new enpdoint, &lt;code>POST /pipelines/bulksave&lt;/code>, 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&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bulksave&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the max number of times gate will poll orca to check for task status&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-polls-for-task-completion&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the interval at which gate will poll orca.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">taskCompletionCheckIntervalMs&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="orca">Orca&lt;/h4>
&lt;p>Updates Orca’s SavePipelineTask to support bulk saves using the updated functionality in the front50 bulk save endpoint.&lt;/p>
&lt;p>With &lt;a href="https://github.com/spinnaker/orca/pull/4781">Orca PR 4781&lt;/a>, 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:&lt;/p>
&lt;ul>
&lt;li>PromoteManifestKatoOutputsTask&lt;/li>
&lt;li>WaitOnJobCompletionTask&lt;/li>
&lt;li>ResolveDeploySourceManifestTask&lt;/li>
&lt;li>BindProducedArtifactsTask&lt;/li>
&lt;/ul>
&lt;p>The &lt;a href="https://github.com/spinnaker/orca/pull/4788">Orca PR 4788&lt;/a> 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.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">promoteManifestKatoOutputsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.createdArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.boundArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">waitOnJobCompletionTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - jobStatus
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - completionDetails
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">resolveDeploySourceManifestTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - requiredArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - optionalArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">core&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">bindProducedArtifactsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - artifacts&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkClouddriver&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">auditModeEnabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="front50">Front50&lt;/h4>
&lt;p>Batch update operation in front50 is now atomic. Deserialization issues are addressed.
Configurable controls are added to decide whether cache should be refreshed while checking for duplicate pipelines:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">front50&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">save&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">refreshCacheOnDuplicatesCheck&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> // default is true&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Here the value for &lt;code>successful_pipelines&lt;/code> is the list of successful pipeline names whereas the value for &lt;code>failed_pipelines&lt;/code> is the list of failed pipelines expressed as maps.&lt;/p>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.36.1-changelog/">Spinnaker v1.36.1&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: e52a253da499f54ea951d46472ee20ada1326d1a
version: 2.36.1
deck:
commit: 1c97b782e123ee219673c245878aeb59e87b0a06
version: 2.36.1
dinghy:
commit: 50041173d1a043493409059e7fa5d7a1a80fb553
version: 2.36.1
echo:
commit: 4c2efbbb9e57b64a1a4fa85aef8eeccc8aaa80a7
version: 2.36.1
fiat:
commit: bd424d60f055e6694aeaf74af5b92862932b09c3
version: 2.36.1
front50:
commit: 9e2606c2d386d00b18b76104564b6467ea2010d3
version: 2.36.1
gate:
commit: cc3f1b3059533feb0bc770eebde4f2c0714c7800
version: 2.36.1
igor:
commit: c5540e0bfe83bb87fa8896c7c7924113c17453b4
version: 2.36.1
kayenta:
commit: 1dab7bb6f4156bdf7f15ef74722139e07ceb4581
version: 2.36.1
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 9fa8bf04e3b5882c0b03d0309684ef0cd00a64c0
version: 2.36.1
rosco:
commit: 80f1885bcd93da023fdb858d563cc24ccadce276
version: 2.36.1
terraformer:
commit: 9756bee07eaabbb25b54812996314c22554ec1c0
version: 2.36.1
timestamp: "2025-02-20 12:49:12"
version: 2.36.1
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-igor---23602361">Armory Igor - 2.36.0&amp;hellip;2.36.1&lt;/h4>
&lt;h4 id="terraformer---23602361">Terraformer™ - 2.36.0&amp;hellip;2.36.1&lt;/h4>
&lt;h4 id="armory-rosco---23602361">Armory Rosco - 2.36.0&amp;hellip;2.36.1&lt;/h4>
&lt;h4 id="armory-gate---23602361">Armory Gate - 2.36.0&amp;hellip;2.36.1&lt;/h4>
&lt;h4 id="armory-echo---23602361">Armory Echo - 2.36.0&amp;hellip;2.36.1&lt;/h4>
&lt;h4 id="armory-deck---23602361">Armory Deck - 2.36.0&amp;hellip;2.36.1&lt;/h4>
&lt;ul>
&lt;li>fix(metadata): Reverting MetadataFilterOverride (#1450) (#1451)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---23602361">Armory Orca - 2.36.0&amp;hellip;2.36.1&lt;/h4>
&lt;h4 id="armory-kayenta---23602361">Armory Kayenta - 2.36.0&amp;hellip;2.36.1&lt;/h4>
&lt;h4 id="dinghy---23602361">Dinghy™ - 2.36.0&amp;hellip;2.36.1&lt;/h4>
&lt;h4 id="armory-front50---23602361">Armory Front50 - 2.36.0&amp;hellip;2.36.1&lt;/h4>
&lt;h4 id="armory-clouddriver---23602361">Armory Clouddriver - 2.36.0&amp;hellip;2.36.1&lt;/h4>
&lt;h4 id="armory-fiat---23602361">Armory Fiat - 2.36.0&amp;hellip;2.36.1&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-igor---1361">Spinnaker Igor - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-rosco---1361">Spinnaker Rosco - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-gate---1361">Spinnaker Gate - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-echo---1361">Spinnaker Echo - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-deck---1361">Spinnaker Deck - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-orca---1361">Spinnaker Orca - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1361">Spinnaker Kayenta - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-front50---1361">Spinnaker Front50 - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1361">Spinnaker Clouddriver - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-fiat---1361">Spinnaker Fiat - 1.36.1&lt;/h4></description></item><item><title>Continuous-Deployment: v2.36.0 Armory Continuous Deployment Release (Spinnaker™ v1.36.1)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-0/</link><pubDate>Wed, 12 Feb 2025 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-36-0/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="20250212-release-notes">2025/02/12 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.36.0, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;p>The following configuration properties have been restructured:&lt;/p>
&lt;p>Previous Configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>New configuration format&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">days-of-execution-history&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">number-of-old-pipeline-executions-to-include&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">optimize-execution-retrieval&lt;/span>: &amp;lt;boolean&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-execution-retrieval-threads&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-number-of-pipeline-executions-to-process&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">execution-retrieval-timeout-seconds&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>These changes improve query performance and execution retrieval efficiency, particularly for large-scale pipeline applications.&lt;/p>
&lt;p>&lt;a href="#performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/a>&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;h3 id="java-upgrades">Java upgrades&lt;/h3>
&lt;p>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: &lt;code>--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&lt;/code> to clouddriver if using GCP accounts due to credentials parsing of certificates. These can set in the &lt;a href="https://spinnaker.io/docs/reference/halyard/custom/#custom-service-settings">service-settings config&lt;/a> . These configs are likely to be added to the defaults in all future releases&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">service-settings&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">env&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">JAVA_OPTS&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;--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&amp;#34;&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="performance-improvements-for-pipeline-executions">Performance Improvements for Pipeline Executions&lt;/h3>
&lt;p>This release includes several optimizations to improve pipeline execution times, particularly for complex pipeline structures.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>Memorize the &lt;code>anyUpstreamStagesFailed&lt;/code> extension function to improve time complexity from exponential to linear&lt;/li>
&lt;li>Optimize &lt;code>getAncestorsImpl&lt;/code> to reduce time complexity by a factor of N, where N is the number of stages in a pipeline&lt;/li>
&lt;li>Optimize &lt;code>StartStageHandler&lt;/code> to only call withAuth (which calls getAncestorsImpl) when&lt;/li>
&lt;/ol>
&lt;p>These enhancements significantly reduce pipeline execution time, with the most notable gains observed in dense pipeline graphs. For example, in the &lt;code>ComplexPipeline.kt&lt;/code> test scenario, execution time improved from not completing at all to approximately &lt;code>160ms&lt;/code>.&lt;/p>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4824">PR 4824&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="performance-improvements-for-sql-backend">Performance Improvements for SQL Backend&lt;/h3>
&lt;p>This release enhances the performance of SQL-backed pipeline queries by optimizing database operations, particularly for the API call:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>/applications/{application}/pipelines?expand=false&amp;amp;limit=2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>which is frequently initiated by Deck and forwarded through Gate to Orca.&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ul>
&lt;li>Improved Query Efficiency: Optimized the retrieval of pipeline execution data, significantly reducing database query times.&lt;/li>
&lt;li>Refactored &lt;code>TaskController&lt;/code>: Externalized configuration properties to allow better flexibility and tuning.&lt;/li>
&lt;li>Enhanced &lt;code>getPipelinesForApplication()&lt;/code>
&lt;ul>
&lt;li>Limits the number of pipeline config IDs queried.&lt;/li>
&lt;li>Processes multiple pipeline config IDs simultaneously.&lt;/li>
&lt;li>Introduces multi-threading to handle batches efficiently.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4804">PR 4804&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="feature-read-connection-pool-for-sql-execution-repository">Feature: Read Connection Pool for SQL Execution Repository&lt;/h3>
&lt;p>This release introduces support for a dedicated read connection pool for specific read-only database queries in &lt;code>SqlExecutionRepository&lt;/code>&lt;/p>
&lt;p>Key Improvements&lt;/p>
&lt;ol>
&lt;li>New &amp;ldquo;read&amp;rdquo; Connection Pool: Allows read operations to be routed to a separate connection pool.&lt;/li>
&lt;li>Configurable Read Pool: Users can define an additional read connection pool in the SQL configuration.&lt;/li>
&lt;li>Ensures Data Consistency: Some read queries still rely on recently written data and are not yet converted to use a read replica due to potential replication lag.&lt;/li>
&lt;/ol>
&lt;p>Configuration Example&lt;/p>
&lt;p>To enable the read connection pool, add the following configuration:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionPools&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">default&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;...&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">read&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jdbcUrl&lt;/span>: jdbc:...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">user&lt;/span>: orca_service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">password&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">connectionTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">validationTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxPoolSize&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">minIdle&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">maxLifetimeMs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">idleTimeoutMs&lt;/span>:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>&lt;a href="https://github.com/spinnaker/orca/pull/4803">PR 4803&lt;/a>&lt;/em>&lt;/p>
&lt;h3 id="enhanced-pipeline-batch-update-feature">Enhanced pipeline batch update feature&lt;/h3>
&lt;h4 id="gate">Gate&lt;/h4>
&lt;p>Adds a new enpdoint, &lt;code>POST /pipelines/bulksave&lt;/code>, 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&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bulksave&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the max number of times gate will poll orca to check for task status&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">max-polls-for-task-completion&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># the interval at which gate will poll orca.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">taskCompletionCheckIntervalMs&lt;/span>: &amp;lt;int&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="orca">Orca&lt;/h4>
&lt;p>Updates Orca’s SavePipelineTask to support bulk saves using the updated functionality in the front50 bulk save endpoint.&lt;/p>
&lt;p>With &lt;a href="https://github.com/spinnaker/orca/pull/4781">Orca PR 4781&lt;/a>, 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:&lt;/p>
&lt;ul>
&lt;li>PromoteManifestKatoOutputsTask&lt;/li>
&lt;li>WaitOnJobCompletionTask&lt;/li>
&lt;li>ResolveDeploySourceManifestTask&lt;/li>
&lt;li>BindProducedArtifactsTask&lt;/li>
&lt;/ul>
&lt;p>The &lt;a href="https://github.com/spinnaker/orca/pull/4788">Orca PR 4788&lt;/a> 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.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">promoteManifestKatoOutputsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.createdArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - outputs.boundArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">waitOnJobCompletionTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - jobStatus
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - completionDetails
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">resolveDeploySourceManifestTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - manifests
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - requiredArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - optionalArtifacts
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">core&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">bindProducedArtifactsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">excludeKeysFromOutputs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> - artifacts&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkClouddriver&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">tasks&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">checkIfApplicationExistsTask&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">auditModeEnabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> &lt;span style="color:#6272a4"># default is true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="front50">Front50&lt;/h4>
&lt;p>Batch update operation in front50 is now atomic. Deserialization issues are addressed.
Configurable controls are added to decide whether cache should be refreshed while checking for duplicate pipelines:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">front50&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">controller&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipeline&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">save&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">refreshCacheOnDuplicatesCheck&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span> // default is true&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>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:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;successful_pipelines&amp;#34; : &amp;lt;List&amp;lt;String&amp;gt;&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines_count&amp;#34; : &amp;lt;int&amp;gt;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;failed_pipelines&amp;#34; : &amp;lt;List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Here the value for &lt;code>successful_pipelines&lt;/code> is the list of successful pipeline names whereas the value for &lt;code>failed_pipelines&lt;/code> is the list of failed pipelines expressed as maps.&lt;/p>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.36.1-changelog/">Spinnaker v1.36.1&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: e52a253da499f54ea951d46472ee20ada1326d1a
version: 2.36.0
deck:
commit: da852d30ae5d29448b8546c3a55e799ef08bec8a
version: 2.36.0
dinghy:
commit: 50041173d1a043493409059e7fa5d7a1a80fb553
version: 2.36.0
echo:
commit: 4c2efbbb9e57b64a1a4fa85aef8eeccc8aaa80a7
version: 2.36.0
fiat:
commit: bd424d60f055e6694aeaf74af5b92862932b09c3
version: 2.36.0
front50:
commit: 9e2606c2d386d00b18b76104564b6467ea2010d3
version: 2.36.0
gate:
commit: cc3f1b3059533feb0bc770eebde4f2c0714c7800
version: 2.36.0
igor:
commit: c5540e0bfe83bb87fa8896c7c7924113c17453b4
version: 2.36.0
kayenta:
commit: 1dab7bb6f4156bdf7f15ef74722139e07ceb4581
version: 2.36.0
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 9fa8bf04e3b5882c0b03d0309684ef0cd00a64c0
version: 2.36.0
rosco:
commit: 80f1885bcd93da023fdb858d563cc24ccadce276
version: 2.36.0
terraformer:
commit: 9756bee07eaabbb25b54812996314c22554ec1c0
version: 2.36.0
timestamp: "2025-02-12 14:24:22"
version: 2.36.0
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-rosco---23502360">Armory Rosco - 2.35.0&amp;hellip;2.36.0&lt;/h4>
&lt;ul>
&lt;li>fix(java): fix merge conflict (#697)&lt;/li>
&lt;li>chore(java): Migrate to Java 17 (#695) (#696)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.08.06.19.21.17.release-1.35.x (#694)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#689)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.08.06.19.21.17.master (#683)&lt;/li>
&lt;li>chore(base): bump latest rosco from 1.36.0 (#706)&lt;/li>
&lt;li>fix(actions): use password secret for cd artifacts (#710)&lt;/li>
&lt;li>fix(bake): use reflection to get values from AWSBakeHandler (#712)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.11.25.15.38.22.release-1.36.x (#704)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2025.01.07.21.12.49.release-1.36.x (#714)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2025.01.23.05.53.10.release-1.36.x (#716)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.18.1 (#720)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---23502360">Armory Fiat - 2.35.0&amp;hellip;2.36.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to fiat:2024.08.06.19.16.43.release-1.35.x (#635)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#630)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.08.06.19.16.43.master (#624)&lt;/li>
&lt;li>chore(base): bump latest fiat 1.36.0 and migrate jdk 17 (#642)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2025.01.07.20.44.13.release-1.36.x (#647)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---23502360">Terraformer™ - 2.35.0&amp;hellip;2.36.0&lt;/h4>
&lt;h4 id="armory-kayenta---23502360">Armory Kayenta - 2.35.0&amp;hellip;2.36.0&lt;/h4>
&lt;ul>
&lt;li>chore(java): migrate to java 17 (#560) (#561)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#557)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.08.13.23.14.13.master (#551)&lt;/li>
&lt;li>chore(base): bump latest kayenta from 1.36.0 (#569)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2025.01.22.19.32.21.release-1.36.x (#574)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---23502360">Armory Clouddriver - 2.35.0&amp;hellip;2.36.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2024.12.13.19.41.27.release-1.35.x (#1203)&lt;/li>
&lt;li>chore(java): Migrate to java 17 (#1187) (#1188)&lt;/li>
&lt;li>chore(java): compile base service with Java 17 (#1183) (#1186)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.10.15.15.18.20.release-1.35.x (#1185)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.27.16.52.09.release-1.35.x (#1182)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#1174)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.27.16.04.19.master (#1170)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.09.24.14.04.48.master (#1176)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.09.25.16.01.39.master (#1178)&lt;/li>
&lt;li>chore(base): bump latest clouddriver 1.36.0 (#1195)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.12.12.19.01.29.release-1.36.x (#1200)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.12.13.19.41.15.release-1.36.x (#1201)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2025.01.03.19.54.54.release-1.36.x (#1206)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2025.01.06.21.18.32.release-1.36.x (#1208)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2025.01.06.22.20.00.release-1.36.x (#1210)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2025.01.21.16.56.34.release-1.36.x (#1212)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.18.1 (#1215)&lt;/li>
&lt;li>chore(base): bump latest jar from OS clouddriver in 1.36 (#1219)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---23502360">Dinghy™ - 2.35.0&amp;hellip;2.36.0&lt;/h4>
&lt;h4 id="armory-orca---23502360">Armory Orca - 2.35.0&amp;hellip;2.36.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2024.12.11.15.53.21.release-1.35.x (#967)&lt;/li>
&lt;li>chore(java): migrate to java 17 (#949) (#951)&lt;/li>
&lt;li>chore(dep): update base to 2024.08.13.08.26.10.release-1.35.x (#950)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#940)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.08.28.15.02.07.master (#936)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.09.25.16.57.42.master (#946)&lt;/li>
&lt;li>chore(base): update base to latest orca 1.36.0 (#959)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.12.11.15.53.17.release-1.36.x (#968)&lt;/li>
&lt;li>chore(base): bump latest orca from 1.36.x (#972)&lt;/li>
&lt;li>chore(cd): update base orca version to 2025.01.22.18.18.13.release-1.36.x (#976)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.18.1 (#981)&lt;/li>
&lt;li>feat(cherry-picks): adding selected improvements to 1.36.x release (#983)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---23502360">Armory Echo - 2.35.0&amp;hellip;2.36.0&lt;/h4>
&lt;ul>
&lt;li>chore(java): migrate to jdk 17 (backport #750) (#751)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#743)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.08.13.08.15.00.master (#736)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.09.24.15.23.12.master (#744)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.09.25.15.02.35.master (#745)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.09.25.16.45.58.master (#746)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.09.26.20.47.13.master (#747)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.10.15.15.58.45.master (#748)&lt;/li>
&lt;li>chore(java): upgrade to jre 17 (#749)&lt;/li>
&lt;li>chore(java): migrate to jdk 17 (#750)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.11.05.16.26.31.master (#752)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.11.06.17.44.10.master (#753)&lt;/li>
&lt;li>chore(base): update base to latest 1.36.0 and refactor (#758)&lt;/li>
&lt;li>chore(java): remove java 11 references (#759)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2025.01.22.17.19.28.release-1.36.x (#765)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2025.01.22.18.37.26.release-1.36.x (#766)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.18.1 (#768)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---23502360">Armory Front50 - 2.35.0&amp;hellip;2.36.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to front50:2024.08.23.16.11.34.release-1.35.x (#724)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#719)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.08.23.15.47.09.master (#714)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.09.23.18.38.12.master (#720)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.09.25.15.04.28.master (#721)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.09.25.16.44.47.master (#722)&lt;/li>
&lt;li>chore(base): bump latest front50 from 1.36.0 (#735)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2025.01.07.21.06.13.release-1.36.x (#740)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2025.01.07.21.17.30.release-1.36.x (#741)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2025.01.22.18.05.44.release-1.36.x (#744)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.18.1 (#747)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---23502360">Armory Igor - 2.35.0&amp;hellip;2.36.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to igor:2024.08.13.08.13.54.release-1.35.x (#634)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#628)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.08.13.08.13.54.master (#622)&lt;/li>
&lt;li>chore(base): bump latest igor from 1.36.0 (#643)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2025.01.22.18.04.21.release-1.36.x (#652)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.18.1 (#655)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---23502360">Armory Gate - 2.35.0&amp;hellip;2.36.0&lt;/h4>
&lt;ul>
&lt;li>chore(base): bump base 1.35 and migrate to jdk17 (#766)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#755)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.08.23.19.46.38.master (#749)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.08.30.14.26.46.master (#751)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.09.11.14.27.15.master (#756)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.09.12.19.51.06.master (#757)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.09.12.23.00.50.master (#758)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.09.19.19.02.50.master (#759)&lt;/li>
&lt;li>chore(base): bump latest gate from 1.36.0 (#776)&lt;/li>
&lt;li>fix(okhttp): replace OkClient with Ok3Client to match OS gate (#783)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2025.01.22.18.05.19.release-1.36.x (#789)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2025.02.11.20.51.46.release-1.36.x (#793)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---23502360">Armory Deck - 2.35.0&amp;hellip;2.36.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240808170143.master (#1429)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240911164312.master (#1430)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240912172834.master (#1432)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240912182910.master (#1433)&lt;/li>
&lt;li>chore(base): bump latest deck from 1.36.0 (#1439)&lt;/li>
&lt;li>chore(cd): update base deck version to 2025.0.0-20250121171131.release-1.36.x (#1446)&lt;/li>
&lt;li>chore(base): bump latest deck in all spinnaker packages (#1449)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-rosco---1361">Spinnaker Rosco - 1.36.1&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1105)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1108)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1109)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1110)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1111)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1112)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1113)&lt;/li>
&lt;li>fix(install): fix packer version check in post install script. (#1115)&lt;/li>
&lt;li>chore(java): Full Java 17 support only (#1116)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1117)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1118)&lt;/li>
&lt;li>chore(upgrades): Update OS to latest supported releases (#1119)&lt;/li>
&lt;li>fix(gceBakeHandler): Updating Image name pattern to match googlecompute pre/post 1.1.2 plugin (#1122) (#1123)&lt;/li>
&lt;li>fix(openapi): Rewrite Swagger to OpenAPI annotations (#1126) (#1129)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1130)&lt;/li>
&lt;li>fix(install): Fixed packer version check for packer installation (#1121) (#1128)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1361">Spinnaker Fiat - 1.36.1&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1178)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1179)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1180)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1181)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1182)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1184)&lt;/li>
&lt;li>fix(retrofit): remove all com.squareup.okhttp dependencies (#1185)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1187)&lt;/li>
&lt;li>chore(java): Full Java 17 support only (#1186)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1188)&lt;/li>
&lt;li>chore(upgrades): Update OS to latest supported releases (#1189)&lt;/li>
&lt;li>fix(openapi): Rewrite Swagger to OpenAPI annotations (#1192) (#1197)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1198)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1361">Spinnaker Kayenta - 1.36.1&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump orcaVersion (#1057)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#1060)&lt;/li>
&lt;li>refactor(dependency): add explicit dependency of google-http-client-jackson2 in kayenta-google while upgrading spockframework 2.3 (#1061)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#1062)&lt;/li>
&lt;li>refactor(retrofit): replace com.squareup.okhttp.OkHttpClient with okhttp3.OkHttpClient (#1063)&lt;/li>
&lt;li>refactor(retrofit): remove all com.squareup.okhttp dependencies (#1064)&lt;/li>
&lt;li>chore(java): Full Java 17 support only (#1065)&lt;/li>
&lt;li>chore(java): remove duplicate targetJava17 property (#1066)&lt;/li>
&lt;li>chore(upgrades): Update OS to latest supported releases (#1067)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#1068)&lt;/li>
&lt;li>chore(upgrade): Migrate to openapi swagger spec (#1046) (#1074)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#1075)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-clouddriver---1361">Spinnaker Clouddriver - 1.36.1&lt;/h4>
&lt;ul>
&lt;li>feat(aws): CleanupAlarmsAgent with an optional user-defined name pattern (#6317) (#6318)&lt;/li>
&lt;li>fix(cloudfoundry): Update ProcessStats model due to capi-1.84.0 changes (#6283) (#6293)&lt;/li>
&lt;li>fix(aws): Fix AWS CLI v2 for Alpine Linux (#6279) (#6280)&lt;/li>
&lt;li>fix(install): Fix Debian post installation script when awscli2 is already installed or the installation failed previously (#6276) (#6277)&lt;/li>
&lt;li>fix(install): Fixed Debian post install script for aws-iam-authenticator (#6274) (#6275)&lt;/li>
&lt;li>fix(gha): remove whitespace from BRANCH in release.yml (#6271) (#6273)&lt;/li>
&lt;li>fix(gha): only bump halyard on master (#6268) (#6270)&lt;/li>
&lt;li>fix(kubernetes): teach deployManifest stages to handle label selectors with generateName (#6265)&lt;/li>
&lt;li>fix(gha): only bump halyard on master (#6268)&lt;/li>
&lt;li>fix(gha): remove whitespace from BRANCH in release.yml (#6271)&lt;/li>
&lt;li>fix(install): Fixed Debian post install script for aws-iam-authenticator (#6274)&lt;/li>
&lt;li>fix(install): Fix Debian post installation script when awscli2 is already installed or the installation failed previously (#6276)&lt;/li>
&lt;li>fix(install): Removed install_awscli2 function from Debian post install script (#6278)&lt;/li>
&lt;li>fix(aws): Fix AWS CLI v2 for Alpine Linux (#6279)&lt;/li>
&lt;li>fix(cloudfoundry): Update ProcessStats model due to capi-1.84.0 changes (#6283)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6284)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#6285)&lt;/li>
&lt;li>perf(ecs): Narrowing the cache search for the ECS provider on views (#6256)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6286)&lt;/li>
&lt;li>feat(gce): support resource-manager-tags in GCE deployment (#6287)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6289)&lt;/li>
&lt;li>feat(gce): add support for hyperdisk in GCE (#6288)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6295)&lt;/li>
&lt;li>feat(gce): add partnerMetadata in instanceProperties for GCE deployment (#6297)&lt;/li>
&lt;li>chore(azure): Adding a verifyAccountHealth configuration (#6296)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6298)&lt;/li>
&lt;li>refactor(retrofit): replace OkClient with Ok3Client (#6299)&lt;/li>
&lt;li>refactor(retrofit): remove all com.squareup.okhttp dependencies (#6301)&lt;/li>
&lt;li>chore(java): Full jaa 17 only&lt;/li>
&lt;li>chore(java): Full java 17 only&lt;/li>
&lt;li>chore(java): Remove cross compilation flag&lt;/li>
&lt;li>chore(java): Full Java 17 support only&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6302)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6303)&lt;/li>
&lt;li>chore(upgrades): Update OS to latest supported releases (#6304)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#6305)&lt;/li>
&lt;li>fix(ecs): Cloudwatch alarms cleanup on destroy ecs group (#6315) (#6316)&lt;/li>
&lt;li>feat(aws): CleanupAlarmsAgent with an optional user-defined name pattern (#6317) (#6319)&lt;/li>
&lt;li>fix(ecs): Alarms with custom dimensions should be processed (#6324) (#6325)&lt;/li>
&lt;li>fix(mergify): Mergify config needs adjusting for latest mergify releases (#6321) (#6326)&lt;/li>
&lt;li>fix(openapi): Rewrite Swagger to OpenAPI annotations (#6309) (#6330)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6331)&lt;/li>
&lt;li>fix(google): Add partner metadata on instanceTemplate properties (#6334) (#6335)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#6336)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1361">Spinnaker Orca - 1.36.1&lt;/h4>
&lt;h4 id="spinnaker-echo---1361">Spinnaker Echo - 1.36.1&lt;/h4>
&lt;ul>
&lt;li>refactor(test): fix test failure due to NullPointerException during upgrade of groovy 4.x (#1444)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1443)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1446)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1447)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1448)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1449)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1450)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1452)&lt;/li>
&lt;li>refactor(retrofit): replace OkClient with Ok3Client (#1453)&lt;/li>
&lt;li>feat(notifications/cdEvents): added support for customData at pipeline notification config level. (#1445)&lt;/li>
&lt;li>fix(notifications/cdEvents): Fixed CDEvents notification for ManualJudgment (#1451)&lt;/li>
&lt;li>fix(retrofit): remove all com.squareup.okhttp dependencies (#1454)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1455)&lt;/li>
&lt;li>chore(java): Full Java 17 support only (#1457)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1456)&lt;/li>
&lt;li>chore(upgrades): Update OS to latest supported releases (#1458)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1459)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1467)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1469)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-front50---1361">Spinnaker Front50 - 1.36.1&lt;/h4>
&lt;ul>
&lt;li>fix(gha): only bump halyard on master (#1490) (#1492)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1487)&lt;/li>
&lt;li>feat(batchUpdate): enhance batch update functionality (#1483)&lt;/li>
&lt;li>fix(gha): only bump halyard on master (#1490)&lt;/li>
&lt;li>fix(front50-gcs): Fix ObjectType filenames for GCS Front50 persistent store (#1493)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1499)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1500)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1501)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1502)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1503)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1505)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1506)&lt;/li>
&lt;li>feat(pipeline): add a pipelineNameFilter query param to the /pipelines/{application} endpoint (#1504)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1508)&lt;/li>
&lt;li>chore(java): Full Java 17 support only (#1507)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1509)&lt;/li>
&lt;li>chore(upgrades): Update OS to latest supported releases (#1510)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1511)&lt;/li>
&lt;li>chore(build): create empty commit&lt;/li>
&lt;li>fix(openapi): Rewrite Swagger to OpenAPI annotations (#1514) (#1521)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1522)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1524)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1361">Spinnaker Igor - 1.36.1&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1275)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1276)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1277)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1278)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1279)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1280)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1281)&lt;/li>
&lt;li>refactor(retrofit): replace OkClient with Ok3Client (#1282)&lt;/li>
&lt;li>chore(build): target Java 17 bytecode (#1283)&lt;/li>
&lt;li>chore(build): purge Java 11 (#1285)&lt;/li>
&lt;li>refactor(retrofit): remove all com.squareup.okhttp dependencies (#1286)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1287)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1288)&lt;/li>
&lt;li>chore(upgrades): Update OS to latest supported releases (#1289)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1290)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1298)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1303)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1361">Spinnaker Gate - 1.36.1&lt;/h4>
&lt;ul>
&lt;li>Pipeline config batch update (#1823)&lt;/li>
&lt;li>feat(instrumentation): add instrumentation around echo event handling (#1824)&lt;/li>
&lt;li>refactor(web/test): remove hard-coded port numbers from EchoServiceTest (#1828)&lt;/li>
&lt;li>feat(web): add a config property that allows front50 to be the source of truth for applications (#1825)&lt;/li>
&lt;li>feat(gate): copy the MDC to async controller method handler threads (#1829)&lt;/li>
&lt;li>feat(web): populate the MDC when the ApplicationService gathers information from front50 and clouddriver (#1830)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1832)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1833)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1834)&lt;/li>
&lt;li>fix(web): invoke pipeline config exception handling (#1831)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1835)&lt;/li>
&lt;li>perf(web): Query for individual pipelines (#1836)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1837)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1840)&lt;/li>
&lt;li>chore(web): remove unused code from CleanupService (#1841)&lt;/li>
&lt;li>fix(core): fix the issues caused due to the use of SpinnakerRetrofitErrorHandler in building FiatService (#1838)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1843)&lt;/li>
&lt;li>feat(pipelines): add pipelineNameFilter to /{application}/pipelineConfigs endpoint (#1839)&lt;/li>
&lt;li>refactor(retrofit): replace OkClient with Ok3Client (#1844)&lt;/li>
&lt;li>refactor(retrofit): remove all com.squareup.okhttp dependencies (#1845)&lt;/li>
&lt;li>feat(gate-web): Add delete session tokens from redis endpoint (#1827)&lt;/li>
&lt;li>chore(java): Upgrade fully to java 17 (#1846)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1847)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1848)&lt;/li>
&lt;li>chore(upgrades): Update OS to latest supported releases (#1849)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1850)&lt;/li>
&lt;li>fix(openapi): Uses openrewrite to convert swagger to openapi annotations (#1813) (#1859)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1860)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1862)&lt;/li>
&lt;li>fix(swagger): ensure byteArrayHttpMessageConverter is the first converter to render swagger UI (#1865) (#1867)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1361">Spinnaker Deck - 1.36.1&lt;/h4>
&lt;ul>
&lt;li>fix(aws): Fix userData getting lost when cloning an AWS server group that uses launch templates (#6771) (#10132) (#10141)&lt;/li>
&lt;li>chore(gcp): Adding STRONG_COOKIE_AFFINITY in gcp LB model (#10124)&lt;/li>
&lt;li>fix(aws): Fix userData getting lost when cloning an AWS server group that uses launch templates (#6771) (#10132)&lt;/li>
&lt;li>fix(aws): Fix IPv6 addresses being incorrectly associated when cloning server groups that have launch templates enabled (#6979) (#10142)&lt;/li>
&lt;li>chore: Remove dead link from README (#10129)&lt;/li>
&lt;li>feat(evaluateVariables stage) Made fetch exec history on evaluateVariables stage configurable (#10143)&lt;/li>
&lt;li>feat(gce): support resourceManagerTags in instance template (#10146)&lt;/li>
&lt;li>chore(deps): bump peter-evans/create-pull-request from 6 to 7 (#10147)&lt;/li>
&lt;li>feat(gce): add support for hyperdisk in GCE (#10149)&lt;/li>
&lt;li>feat(google): add support for partnerMetadata in GCE servergroup (#10150)&lt;/li>
&lt;li>chore(deps): bump jpoehnelt/secrets-sync-action from 1.9.0 to 1.10.0 (#10148)&lt;/li>
&lt;li>feat(deployManifest): Adding skipSpecTemplateLabels option (#10152)&lt;/li>
&lt;li>fix(google): Add partner metadata on clone (#10161) (#10162)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.35.0 Armory Continuous Deployment Release (Spinnaker™ v1.35.5)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-35-0/</link><pubDate>Fri, 24 Jan 2025 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-35-0/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="20250124-release-notes">2025/01/24 Release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.35.0, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;h3 id="orca-feature-flag-sql-pipelineref">Orca Feature Flag: SQL PipelineRef&lt;/h3>
&lt;p>Orca introduced a feature flag in its 1.35 release aimed at reducing execution size by converting PipelineTrigger to PipelineRefTrigger:&lt;/p>
&lt;p>&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">executionRepository&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">sql&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">pipelineRef&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
When this feature is enabled, &lt;strong>child pipeline execution IDs&lt;/strong> are stored in SQL instead of the full child pipeline execution context. This improves efficiency without altering the in-memory representation of pipelines.&lt;/p>
&lt;ul>
&lt;li>Pipelines function the same way in-memory, regardless of whether this feature is enabled.&lt;/li>
&lt;li>Pipelines stored with child execution IDs remain fully functional even if the feature is later disabled.&lt;/li>
&lt;li>If no issues arise in this release, the feature flag will be removed, and this behavior will become the default in an upcoming release.&lt;/li>
&lt;/ul>
&lt;p>For a detailed breakdown of these changes, see &lt;a href="https://github.com/spinnaker/orca/pull/4749">this PR&lt;/a>.&lt;/p>
&lt;h3 id="java-17">Java 17&lt;/h3>
&lt;h4 id="spinnaker-services-migration-to-jdk-17">Spinnaker Services Migration to JDK 17&lt;/h4>
&lt;p>All Spinnaker services are now compiled using &lt;strong>JDK 17&lt;/strong>, which is transpiled to Java 11 bytecode. Published images currently run &lt;strong>JRE 17&lt;/strong>. In &lt;strong>version 1.36&lt;/strong>, compilation will switch to Java 17 bytecode, completing our migration to JDK 17.&lt;/p>
&lt;p>Please continue to report any issues by opening an issue in the &lt;a href="https://github.com/spinnaker/spinnaker">Spinnaker repository&lt;/a>.&lt;/p>
&lt;h4 id="important-notes-on-jdk-17">Important Notes on JDK 17&lt;/h4>
&lt;p>JDK 17 enforces &lt;strong>&lt;a href="https://docs.oracle.com/en/java/javase/17/migrate/migrating-jdk-8-later-jdk-releases.html#GUID-7BB28E4D-99B3-4078-BDC4-FC24180CE82B">Strong Encapsulation&lt;/a>&lt;/strong>. This means that some SpEL expressions, which previously used reflection, may not work as expected since the JDK now restricts reflection by default.&lt;/p>
&lt;p>For example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>${ {&lt;span style="color:#ff79c6">&amp;#34;foo&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;bar&amp;#34;&lt;/span>}.toString() }
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>For this evaluation to succeed, add &lt;code>java--add-opens=java.base/java.util=ALL-UNNAMED&lt;/code> to &lt;code>JAVA_OPTS&lt;/code> for orca and echo.&lt;/p>
&lt;h3 id="spring-boot-2718">Spring Boot 2.7.18&lt;/h3>
&lt;p>As part of the continued effort to upgrade Spring Boot, &lt;strong>Spinnaker 1.35.0&lt;/strong> now uses &lt;strong>Spring Boot 2.7.18&lt;/strong>, an upgrade from &lt;strong>Spinnaker 1.34.0&lt;/strong>&amp;rsquo;s use of &lt;strong>Spring Boot 2.6.15&lt;/strong>.&lt;/p>
&lt;p>&lt;strong>Spring Boot 2.7&lt;/strong> considers session data cached by &lt;strong>Spring Boot 2.6&lt;/strong> to be invalid. Therefore, users with cached sessions will be unable to log in until the invalid information is removed from the cache. Additionally, open browser windows to Spinnaker will be unresponsive after deployment until they’re reloaded.&lt;/p>
&lt;p>To remove the cached session information, you can execute the following command on Gate’s Redis instance:&lt;/p>
&lt;p>&lt;code>bash $ redis-cli keys &amp;quot;spring:session*&amp;quot; | xargs redis-cli del &lt;/code>&lt;/p>
&lt;h4 id="spring-boot-27-changes">Spring Boot 2.7 Changes&lt;/h4>
&lt;p>&lt;strong>Spring Boot 2.7&lt;/strong> brings the following updates:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Groovy&lt;/strong> upgrade from version 3.0.17 to 3.0.19&lt;/li>
&lt;li>Replacement of the &lt;strong>MySQL connector&lt;/strong> coordinate from &lt;code>mysql:mysql-connector-java&lt;/code> to &lt;code>com.mysql:mysql-connector-j&lt;/code> (version 8.0.33)&lt;/li>
&lt;li>Changes to &lt;strong>auto-configuration&lt;/strong>&lt;/li>
&lt;/ul>
&lt;h3 id="retrofitexceptionhandler-removed">RetrofitExceptionHandler Removed&lt;/h3>
&lt;p>&lt;a href="https://github.com/spinnaker/orca/pull/4716">RetrofitExceptionHandler&lt;/a> has been removed from Orca as part of the ongoing effort to upgrade to Retrofit2. One step in this upgrade is to adjust error handling code, replacing &lt;code>RetrofitError&lt;/code> (a Retrofit1 class not available in Retrofit2) with &lt;code>SpinnakerServerException&lt;/code> (&lt;a href="https://github.com/spinnaker/kork/blob/v7.231.0/kork-retrofit/src/main/java/com/netflix/spinnaker/kork/retrofit/exceptions/SpinnakerServerException.java">SpinnakerServerException.java&lt;/a>) and its children, using &lt;code>SpinnakerRetrofitErrorHandler&lt;/code> (&lt;a href="https://github.com/spinnaker/kork/blob/v7.231.0/kork-retrofit/src/main/java/com/netflix/spinnaker/kork/retrofit/exceptions/SpinnakerRetrofitErrorHandler.java#L52">SpinnakerRetrofitErrorHandler.java&lt;/a>).&lt;/p>
&lt;p>This has been completed in Orca, so there’s no longer any code that throws &lt;code>RetrofitError&lt;/code> exceptions. If your instance of Spinnaker has plugins or other code that still relies on &lt;code>RetrofitError&lt;/code>, adjust it to use &lt;code>SpinnakerRetrofitErrorHandler&lt;/code> by adding:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>.setErrorHandler(SpinnakerRetrofitErrorHandler.getInstance())
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>to the &lt;code>RestAdapter.Builder&lt;/code> call, and change the corresponding exception handling. See &lt;a href="https://github.com/spinnaker/orca/blob/9898ae1a673f0481abe082f4b681dbc314682c3f/orca-front50/src/main/groovy/com/netflix/spinnaker/orca/front50/config/Front50Configuration.groovy#L82">this example&lt;/a>.&lt;/p>
&lt;h3 id="label-selector-support-in-deploy-manifest-stages">Label Selector Support in Deploy Manifest Stages&lt;/h3>
&lt;p>&lt;a href="https://github.com/spinnaker/clouddriver/pull/6220">Label selector support&lt;/a> has been added to deploy manifest stages. For example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c">&amp;#34;labelSelectors&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;selectors&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;EQUALS&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;key&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;my-label-key&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;values&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;my-value&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>For more details, refer to &lt;a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/">Kubernetes label overview&lt;/a> and &lt;a href="https://github.com/spinnaker/clouddriver/blob/ad1a8efc214264276e3a22d30af179b825145cab/clouddriver-kubernetes/src/main/java/com/netflix/spinnaker/clouddriver/kubernetes/security/KubernetesSelector.java#L59">KubernetesSelector&lt;/a>. Multiple selectors combine with AND (must all be satisfied).&lt;/p>
&lt;p>&lt;strong>Important Note:&lt;/strong>&lt;br>
&lt;code>kubectl replace&lt;/code> does not support label selectors, so KubernetesDeployManifestOperation throws an exception if a deploy manifest stage specifies (non-empty) label selectors and has a manifest with the &lt;code>strategy.spinnaker.io/replace: &amp;quot;true&amp;quot;&lt;/code> annotation.&lt;/p>
&lt;p>It’s possible that none of the manifests may satisfy the label selectors. In that case, a new pipeline configuration property named &lt;code>allowNothingSelected&lt;/code> determines the behavior:&lt;/p>
&lt;ul>
&lt;li>If &lt;code>false&lt;/code> (the default), KubernetesDeployManifestOperation throws an exception.&lt;/li>
&lt;li>If &lt;code>true&lt;/code>, the operation succeeds even though nothing was deployed.&lt;/li>
&lt;/ul>
&lt;h3 id="the-maxexpressionlength-to-set-maximum-expression-length-for-spel-evaluation">The maxExpressionLength to set maximum expression length for SpEL evaluation&lt;/h3>
&lt;p>Spring Expression Language (SpEL) has a default limit of 10,000 characters. Springframework provides the feature to configure the limit. This feature allows to configure the limit of characters for SpEL expressions.
Use this feature as given below:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span># orca-local.yml
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># echo-local.yml
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>expression:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> max-expression-length: &amp;lt;required limit&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Example manifest for Orca
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">expression&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">max-expression-length&lt;/span>: &amp;lt;required limit&amp;gt;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.35.5-changelog/">Spinnaker v1.35.5&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: f0e7a7470b06b6a8a007f1494bc1d97ea6d4a52c
version: 2.35.0
deck:
commit: b04971d387e1a0664f536427976c0d64733044b5
version: 2.35.0
dinghy:
commit: 50041173d1a043493409059e7fa5d7a1a80fb553
version: 2.35.0
echo:
commit: 6117e5941dda2f2faa52639cba5e8449b0a64d0c
version: 2.35.0
fiat:
commit: ce4a5e689b66fce9f5aa4e3039f0fe1af5e69f74
version: 2.35.0
front50:
commit: 900b169d3cea95992d781e22939bb5fa1224a75d
version: 2.35.0
gate:
commit: af49faafbd341109028335630f25c46e9077bc1f
version: 2.35.0
igor:
commit: 56f0c75e06b79f2e3029b0b0da323a2d6c0dff6f
version: 2.35.0
kayenta:
commit: 8c63692f834f965848a6f238035d0fb01fbc2834
version: 2.35.0
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 9e94501096394c824bbfca5be5707d0d2c5f1713
version: 2.35.0
rosco:
commit: 9259f32ee4c6beb1bf1da32c0161590ecf3de800
version: 2.35.0
terraformer:
commit: 9756bee07eaabbb25b54812996314c22554ec1c0
version: 2.35.0
timestamp: "2025-01-23 23:27:17"
version: 2.35.0
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-rosco---23402350">Armory Rosco - 2.34.0&amp;hellip;2.35.0&lt;/h4>
&lt;ul>
&lt;li>Fix permissions on container (#675)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#671) (#672)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.04.18.17.06.07.release-1.34.x (#666)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#664)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.04.18.16.53.13.master (#659)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.05.10.18.26.57.master (#665)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.06.06.14.05.00.master (#667)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.06.07.06.01.10.master (#668)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.06.12.03.37.34.master (#669)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.06.12.14.46.35.master (#670)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#671)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.07.01.17.46.03.master (#673)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.07.01.23.43.22.master (#674)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.07.02.18.24.20.master (#678)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.08.06.19.21.17.master (#683)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#689)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.08.06.19.21.17.release-1.35.x (#694)&lt;/li>
&lt;li>chore(java): Migrate to Java 17 (#695) (#696)&lt;/li>
&lt;li>fix(java): fix merge conflict (#697)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.11.26.16.17.32.release-1.35.x (#708)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---23402350">Armory Echo - 2.34.0&amp;hellip;2.35.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#716)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.04.27.02.26.26.master (#712)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.05.10.18.24.59.master (#717)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.06.06.14.04.52.master (#718)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.06.07.06.00.43.master (#719)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.06.12.05.10.02.master (#720)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.06.12.14.34.33.master (#721)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.06.12.14.52.56.master (#722)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#723)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.07.01.23.39.31.master (#726)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.07.02.19.53.07.master (#729)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.07.09.16.15.40.master (#730)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.07.11.21.33.00.master (#731)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.07.18.11.05.25.master (#732)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.07.19.13.57.31.master (#733)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.07.30.18.39.41.master (#734)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.08.06.19.58.37.master (#735)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.08.13.08.15.00.master (#736)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#743)&lt;/li>
&lt;li>chore(java): migrate to jdk 17 (backport #750) (#751)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.08.13.08.15.00.release-1.35.x (#763)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---23402350">Terraformer™ - 2.34.0&amp;hellip;2.35.0&lt;/h4>
&lt;ul>
&lt;li>fix: ASSMT-304: Jobs are in RUNNING status indefinitely. (#563)&lt;/li>
&lt;li>fix: ASSMT-304: func passes lock by value issue. (#564)&lt;/li>
&lt;li>fix: ASSMT-304: panic: interface conversion: interface {} is **runner.Job, not *runner.Job. (#565)&lt;/li>
&lt;li>chore: Move terraformer versions to docker hub (#567)&lt;/li>
&lt;li>Fix: typo in secret for docker password (#568)&lt;/li>
&lt;li>fix: ASSMT-304: Performance degradation. (#566)&lt;/li>
&lt;li>fix: ASSMT-304: incorrect Terraform stage execution status, logs appeared after the stage was executed, truncated logs, missing data in the context outputs of the stage. (#570)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---23402350">Armory Front50 - 2.34.0&amp;hellip;2.35.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to front50:2024.06.18.14.36.38.release-1.34.x (#696)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#685)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.04.29.15.39.38.master (#682)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.05.10.18.26.08.master (#686)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.05.16.17.58.24.master (#687)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.06.03.19.41.03.master (#688)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.06.06.14.02.13.master (#689)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.06.07.05.54.32.master (#690)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.06.10.17.07.03.master (#691)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.06.11.21.15.35.master (#693)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.06.12.04.59.08.master (#694)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.06.12.14.34.39.master (#695)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#697)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.07.01.23.39.55.master (#699)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.07.02.18.24.06.master (#701)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.07.12.17.45.40.master (#702)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.07.17.18.08.28.master (#703)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.07.23.02.51.23.master (#704)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.07.30.18.37.55.master (#705)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.08.06.19.20.30.master (#706)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.08.13.08.16.50.master (#707)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.08.17.02.15.46.master (#709)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.08.18.01.59.14.master (#710)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.08.23.15.47.09.master (#714)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#719)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.08.23.16.11.34.release-1.35.x (#724)&lt;/li>
&lt;li>chore(java): migrate to jdk 17 (backport #726) (#727)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---23402350">Armory Fiat - 2.34.0&amp;hellip;2.35.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#606)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.04.27.01.37.20.master (#602)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.05.01.20.55.58.master (#607)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.05.10.18.23.12.master (#608)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.06.06.14.02.18.master (#609)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.06.07.05.54.34.master (#610)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.06.12.03.57.15.master (#611)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.06.12.14.43.24.master (#612)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#613)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.07.01.23.37.17.master (#616)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.07.02.18.24.28.master (#618)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.08.06.19.16.43.master (#624)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#630)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.08.06.19.16.43.release-1.35.x (#635)&lt;/li>
&lt;li>chore(java): migrate to java 17 (backport #636) (#637)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---23402350">Armory Deck - 2.34.0&amp;hellip;2.35.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240513181436.release-1.34.x (#1417)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240510163512.release-1.34.x (#1413)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240509180831.release-1.34.x (#1410)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240507163358.release-1.34.x (#1407)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240425133611.master (#1402)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240507073802.master (#1405)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240507161802.master (#1406)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240510143732.master (#1411)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240512134402.master (#1414)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240513123242.master (#1415)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240610143829.master (#1419)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240626113443.master (#1422)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240701180101.master (#1423)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240709230956.master (#1424)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240801174507.master (#1425)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240808170143.master (#1426)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240808170143.master (#1429)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240911165928.release-1.35.x (#1431)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---23402350">Armory Gate - 2.34.0&amp;hellip;2.35.0&lt;/h4>
&lt;ul>
&lt;li>chore(build): Updating Build dependencies (#732) (#733)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#721)&lt;/li>
&lt;li>Updating Armory commons and gradle jar (#714)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#732)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.06.12.14.34.23.master (#731)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.07.02.02.26.57.master (#736)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.07.02.18.25.11.master (#738)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.07.12.17.45.03.master (#739)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.07.17.16.39.39.master (#740)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.07.17.18.06.59.master (#741)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.07.30.18.41.46.master (#742)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.08.06.19.17.52.master (#743)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.08.13.08.18.00.master (#748)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.08.23.19.46.38.master (#749)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#755)&lt;/li>
&lt;li>chore(base): bump base 1.35 and migrate to jdk17 (#766)&lt;/li>
&lt;li>chore(java): migrate to jdk 17 (backport #767) (#768)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---23402350">Armory Orca - 2.34.0&amp;hellip;2.35.0&lt;/h4>
&lt;ul>
&lt;li>chore(build): Updating Build dependencies (#911)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.12.02.19.43.release-1.34.x (#899)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.11.23.58.30.release-1.34.x (#898)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.11.17.07.47.release-1.34.x (#896)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.05.09.17.57.44.release-1.34.x (#888)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#883)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.29.19.19.52.master (#880)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.05.01.16.01.28.master (#884)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.05.07.02.35.57.master (#886)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.05.09.11.44.35.master (#887)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.05.10.18.29.13.master (#890)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.06.14.09.33.master (#891)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.07.06.05.25.master (#892)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.10.16.36.40.master (#894)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.11.02.19.24.master (#895)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.11.21.15.44.master (#897)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.12.08.13.09.master (#900)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.12.14.47.24.master (#901)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.12.21.59.59.master (#902)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.13.04.50.47.master (#903)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.13.18.56.50.master (#904)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.13.19.24.10.master (#905)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.13.22.33.24.master (#906)&lt;/li>
&lt;li>chore: Builds working with latest versions (#907)&lt;/li>
&lt;li>fix: Testing GHA fixes (#908)&lt;/li>
&lt;li>Snakeyaml build fix (#909)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.25.16.25.46.master (#910)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.07.01.23.50.54.master (#913)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.07.03.16.08.40.master (#917)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.07.10.14.30.54.master (#919)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.07.16.20.38.37.master (#923)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.08.21.22.59.27.master (#934)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.08.28.15.02.07.master (#936)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#940)&lt;/li>
&lt;li>chore(dep): update base to 2024.08.13.08.26.10.release-1.35.x (#950)&lt;/li>
&lt;li>chore(java): migrate to java 17 (#949) (#951)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.12.11.15.53.21.release-1.35.x (#967)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.12.13.15.15.00.release-1.35.x (#970)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---23402350">Armory Clouddriver - 2.34.0&amp;hellip;2.35.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.11.19.47.52.release-1.34.x (#1136)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.11.18.46.36.release-1.34.x (#1135)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.11.17.42.55.release-1.34.x (#1134)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.05.15.14.49.18.release-1.34.x (#1126)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.05.07.00.11.46.release-1.34.x (#1122)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#1118)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.29.20.13.35.master (#1115)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.05.01.12.49.03.master (#1119)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.05.01.21.46.13.master (#1120)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.05.02.04.24.59.master (#1121)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.05.10.18.56.26.master (#1124)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.05.15.14.03.08.master (#1125)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.05.16.17.58.54.master (#1128)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.05.17.42.55.master (#1130)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.06.14.39.20.master (#1131)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.07.06.44.17.master (#1132)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.07.15.13.58.master (#1133)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.12.06.05.50.master (#1137)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.12.15.09.36.master (#1138)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#1140)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.26.14.55.22.master (#1141)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.07.02.00.14.36.master (#1143)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.07.02.17.16.09.master (#1144)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.07.09.23.51.13.master (#1145)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.07.12.18.00.41.master (#1146)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.07.13.14.35.46.master (#1147)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.07.13.20.49.12.master (#1148)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.07.16.21.05.02.master (#1149)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.07.17.17.30.47.master (#1150)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.07.03.50.02.master (#1153)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.07.04.42.37.master (#1154)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.08.16.49.12.master (#1155)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.13.08.52.16.master (#1158)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.16.16.47.04.master (#1159)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.17.18.34.38.master (#1162)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.18.01.11.26.master (#1164)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.19.18.37.14.master (#1166)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.20.16.01.28.master (#1167)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.20.17.06.19.master (#1168)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.27.16.04.19.master (#1170)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#1174)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.27.16.52.09.release-1.35.x (#1182)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.10.15.15.18.20.release-1.35.x (#1185)&lt;/li>
&lt;li>chore(java): compile base service with Java 17 (#1183) (#1186)&lt;/li>
&lt;li>chore(java): Migrate to java 17 (#1187) (#1188)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.12.13.19.41.27.release-1.35.x (#1203)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2025.01.03.20.45.15.release-1.35.x (#1207)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---23402350">Dinghy™ - 2.34.0&amp;hellip;2.35.0&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): v0.0.0-20240213103436-d0dc889db2c6 (#529)&lt;/li>
&lt;li>chore: Bumps and delete support (#533)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---23402350">Armory Kayenta - 2.34.0&amp;hellip;2.35.0&lt;/h4>
&lt;ul>
&lt;li>chore(build): Updating Build dependencies (#544) (#545)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.04.01.18.08.38.master (#530)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#544)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.06.13.14.30.12.master (#542)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.07.01.15.11.36.master (#546)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.07.03.20.32.39.master (#547)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.08.08.17.03.42.master (#548)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.08.13.23.14.13.master (#551)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#557)&lt;/li>
&lt;li>chore(java): migrate to java 17 (#560) (#561)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2025.01.22.22.30.54.release-1.35.x (#575)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---23402350">Armory Igor - 2.34.0&amp;hellip;2.35.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#606)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.04.27.02.25.13.master (#602)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.05.08.16.58.51.master (#607)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.05.10.18.23.25.master (#608)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.06.06.14.04.06.master (#609)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.06.07.05.55.00.master (#610)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.06.12.03.35.53.master (#611)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.06.12.14.42.33.master (#612)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#613)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.07.01.15.13.01.master (#615)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.07.01.23.40.57.master (#616)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.07.02.18.22.57.master (#618)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.07.17.18.07.09.master (#619)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.07.30.18.41.52.master (#620)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.08.06.19.18.18.master (#621)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.08.13.08.13.54.master (#622)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.17.3 (#628)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.08.13.08.13.54.release-1.35.x (#634)&lt;/li>
&lt;li>chore(java): migrate to java 17 (#635)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-rosco---1355">Spinnaker Rosco - 1.35.5&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1086)&lt;/li>
&lt;li>fix(install): Removed install_aws_cli2 function from Debian post installation script which installs a Debian package within a Debian package causing errors, as well as errors when an aws cli is already installed (#6945) (#1088)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1090)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1091)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1092)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1093)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1094)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1095)&lt;/li>
&lt;li>chore(build): enable cross compilation plugin for Java 17 (#1096)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 5 to 6 (#1097)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1098)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1099)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1100)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1101)&lt;/li>
&lt;li>refactor(test): fix scope of init method while upgrading junit to 5.9.0 (#1102)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1103)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1104)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1105)&lt;/li>
&lt;li>fix(gceBakeHandler): Updating Image name pattern to match googlecompute pre/post 1.1.2 plugin (#1122) (#1124)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1355">Spinnaker Echo - 1.35.5&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1419)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1420)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1422)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1423)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1425)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1427)&lt;/li>
&lt;li>chore(build): enable cross compilation plugin for Java 17 (#1426)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 5 to 6 (#1430)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1431)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1432)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1433)&lt;/li>
&lt;li>feat(SpEL): implement to configure the limit of characters for SpEL expressions (#1429)&lt;/li>
&lt;li>test(pipelinetriggers): demonstrate behavior of SpEL expression evaluation (#1434)&lt;/li>
&lt;li>feat(notifications/cdEvents): added support for customData (#1424)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1435)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1436)&lt;/li>
&lt;li>refactor(amazon_sqs_subscriber): moved AmazonSQSSubscriberSpec (groovy) unit test to AmazonSQSSubscriberTest (java) (#1428)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1437)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1438)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1439)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-front50---1355">Spinnaker Front50 - 1.35.5&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#1454)&lt;/li>
&lt;li>refactor(web): change ensureCronTriggersHaveIdentifier to return void (#1457)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1460)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1461)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1462)&lt;/li>
&lt;li>feat(migrations): Support for migrations defined in plugins (#1458)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1463)&lt;/li>
&lt;li>chore(dependency): unpin mysql-connector-java (#1464)&lt;/li>
&lt;li>fix(web): Retrieve dependent pipelines correctly (#1459)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1467)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1468)&lt;/li>
&lt;li>fix(migrator): GCS to SQL migrator APPLICATION_PERMISSION objectType fix (#1466)&lt;/li>
&lt;li>chore(build): enable cross compilation plugin for Java 17 (#1469)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1475)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1476)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 5 to 6 (#1477)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1478)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1479)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1480)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1481)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1482)&lt;/li>
&lt;li>refactor(validator): moved validator groovy unit tests to java (#1484)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1485)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1486)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1487)&lt;/li>
&lt;li>fix(gha): only bump halyard on master (#1490) (#1492)&lt;/li>
&lt;li>fix(front50-gcs): Fix ObjectType filenames for GCS Front50 persistent store (#1493) (#1495)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1355">Spinnaker Fiat - 1.35.5&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1157)&lt;/li>
&lt;li>feat(build): add fiat-integration module to exercise the just-built docker imageTest docker image (#1158)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1159)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1163)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1164)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1165)&lt;/li>
&lt;li>chore(build): enable cross compilation plugin for Java 17 (#1166)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 5 to 6 (#1167)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1168)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1169)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1170)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1171)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1172)&lt;/li>
&lt;li>refactor(fiat-core): convert groovy unit tests to java (#1174)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1175)&lt;/li>
&lt;li>fix(ldap/roles): fix the issue of multiple entries in Ldap for single user (#1173)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1176)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1355">Spinnaker Deck - 1.35.5&lt;/h4>
&lt;ul>
&lt;li>fix(redblack): fixing redblack onchange values (#10107) (#10109)&lt;/li>
&lt;li>fix(pipeline): Handle render/validation when stageTimeoutMs is a Spel expression (#10103) (#10104)&lt;/li>
&lt;li>feat(taskView): Implement opt-in paginated request for TaskView (#10093) (#10096)&lt;/li>
&lt;li>fix(lambda): Invoke stage excludedArtifactTypes not including the embedded-artifact type (#10097) (#10100)&lt;/li>
&lt;li>fix(lambdaStages): Exporting Lambda stages based on the feature flag settings (#10085) (#10090)&lt;/li>
&lt;li>fix(pipelineGraph): Handling exception when requisiteStageRefIds is not defined (#10086) (#10087)&lt;/li>
&lt;li>chore(deps-dev): bump vite from 2.9.17 to 2.9.18 in /packages/app (#10082)&lt;/li>
&lt;li>fix(pipelineGraph): Handling exception when requisiteStageRefIds is not defined (#10086)&lt;/li>
&lt;li>fix(lambdaStages): Exporting Lambda stages based on the feature flag settings (#10085)&lt;/li>
&lt;li>feat(taskView): Implement opt-in paginated request for TaskView (#10093)&lt;/li>
&lt;li>fix(lambda): Invoke stage excludedArtifactTypes not including the embedded-artifact type (#10097)&lt;/li>
&lt;li>fix(pipeline): Handle render/validation when stageTimeoutMs is a Spel expression (#10103)&lt;/li>
&lt;li>Publish packages to NPM (#10074)&lt;/li>
&lt;li>fix(redblack): fixing redblack onchange values (#10107)&lt;/li>
&lt;li>fix(lambda): Export LambdaRoute stage on aws module (#10116)&lt;/li>
&lt;li>Publish packages to NPM (#10108)&lt;/li>
&lt;li>feat(pluginsdk): Allow overriding proxy ports in deck dev-proxy (#10115)&lt;/li>
&lt;li>chore(deps): bump @spinnaker/kayenta from 2.1.0 to 2.3.0 (#10114)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 5 to 6 (#10121)&lt;/li>
&lt;li>chore(secrets): adding GHA to sync NPM_AUTH_TOKEN to spinnaker/spinna… (#10122)&lt;/li>
&lt;li>chore(deps): bump actions/checkout from 2 to 4 (#10123)&lt;/li>
&lt;li>chore(gcp): Adding STRONG_COOKIE_AFFINITY in gcp LB model (#10124)&lt;/li>
&lt;li>fix(aws): Fix userData getting lost when cloning an AWS server group that uses launch templates (#6771) (#10132) (#10141)&lt;/li>
&lt;li>fix(aws): Fix IPv6 addresses being incorrectly associated when cloning server groups that have launch templates enabled (#6979) (#10142) (#10144)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1355">Spinnaker Gate - 1.35.5&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1791)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1792)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1793)&lt;/li>
&lt;li>feat(build): add gate-integration module to exercise the just-built docker image (#1794)&lt;/li>
&lt;li>feat(gha): run integration test in branch builds (#1795)&lt;/li>
&lt;li>feat(saml): Update SAML to use Spring Security (#1744)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1797)&lt;/li>
&lt;li>fix(web/test): stop leaking system properties from FunctionalSpec (#1798)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1801)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1802)&lt;/li>
&lt;li>chore(build): enable cross compilation plugin for Java 17 (#1803)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1804)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1805)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1806)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 5 to 6 (#1807)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1808)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1809)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1810)&lt;/li>
&lt;li>refactor(test): fix scope of setup method while upgrading junit to 5.9.0 (#1811)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1812)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1814)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1815)&lt;/li>
&lt;li>fix(core): remove ErrorPageSecurityFilter bean named errorPageSecurityFilter (#1819)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1820)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1355">Spinnaker Orca - 1.35.5&lt;/h4>
&lt;ul>
&lt;li>fix(liquibase): fix checkSum errors occurring with spinnaker upgrade (#4727) (#4744)&lt;/li>
&lt;li>fix(tests): add new containerized integration tests to run orca with mysql and postgres (#4736) (#4742)&lt;/li>
&lt;li>feat(build): add orca-integration module to exercise the just-built docker image (#4721) (#4740)&lt;/li>
&lt;li>fix(blueGreen): Scaling replicaSets should not be considered for deletion (#4728) (#4730)&lt;/li>
&lt;li>fix(jenkins): Wrong Job name encoding in query params for Artifacts/Properties (#4722) (#4723)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4704)&lt;/li>
&lt;li>feat(front50): set front50.useTriggeredByEndpoint to true by default (#4707)&lt;/li>
&lt;li>fix(clouddriver): Handle the Retrofit conversionError in ClusterSizePreconditionTask (#4708)&lt;/li>
&lt;li>fix(test/keel): Javadoc referring to missing method in ImportDeliveryConfigTaskTest (#4709)&lt;/li>
&lt;li>fix(clouddriver): Throw SpinnakerHttpException when Http status is 403 in DetermineSourceServerGroupTask (#4710)&lt;/li>
&lt;li>fix(test/bakery): Mock http errors using SpinnakerHttpException in CompletedBakeTaskSpec (#4711)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4713)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4714)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4715)&lt;/li>
&lt;li>refactor(retrofit): Cleanup unused RetrofitError occurrences (#4712)&lt;/li>
&lt;li>fix(test/clouddriver): Mock http error using SpinnakerHttpException in WaitForCloudFormationCompletionTaskSpec (#4717)&lt;/li>
&lt;li>refactor(retrofit): Dismantle RetrofitExceptionHandler (#4716)&lt;/li>
&lt;li>feat(build): add orca-integration module to exercise the just-built docker image (#4721)&lt;/li>
&lt;li>fix(jenkins): Wrong Job name encoding in query params for Artifacts/Properties (#4722)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4726)&lt;/li>
&lt;li>fix(blueGreen): Scaling replicaSets should not be considered for deletion (#4728)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4734)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4735)&lt;/li>
&lt;li>fix(tests): add new containerized integration tests to run orca with mysql and postgres (#4736)&lt;/li>
&lt;li>fix(liquibase): fix checkSum errors occurring with spinnaker upgrade (#4727)&lt;/li>
&lt;li>chore(build): enable cross compilation plugin for Java 17 (#4738)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4745)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4746)&lt;/li>
&lt;li>fix(dokka): use version 1.9.20 of org.jetbrains.dokka (#4747)&lt;/li>
&lt;li>fix(build): revert java17 changes (#4750)&lt;/li>
&lt;li>chore(gradle): Fix gradle test memory allocation (#4748)&lt;/li>
&lt;li>chore(build): exercise dokka in prs and branch builds (#4751)&lt;/li>
&lt;li>chore(build): enable cross compilation plugin for Java 17 (take 2) (#4752)&lt;/li>
&lt;li>fix(integration/test): increase container startup time (#4754)&lt;/li>
&lt;li>fix(build): remove dokka plugin since it doesn&amp;rsquo;t work with java 17 (#4753)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 5 to 6 (#4756)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4757)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4758)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4759)&lt;/li>
&lt;li>feat(SpEL): implement to configure the limit of characters for SpEL expressions (#4755)&lt;/li>
&lt;li>perf(sql): Store child pipeline execution in trigger as reference (#4749)&lt;/li>
&lt;li>test(core): demonstrate behavior of SpEL expression evaluation (#4762)&lt;/li>
&lt;li>fix(orca-clouddriver): replace getType() with StageDefinitionBuilder.getType() for DestroyServerGroup (#4761)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4763)&lt;/li>
&lt;li>fix(tests): refactor tests and junit platform name to execute startup tests (#4764)&lt;/li>
&lt;li>fix(sqlExecutionRepo): Return compressed columns when enabled for retrieve pipelines with configId (#4765)&lt;/li>
&lt;li>test(sql): Add extra test for pipelineRef feature flag (#4760)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4767)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4768)&lt;/li>
&lt;li>refactor(test): replace assertion used from library unitils-core to assertj-core while spockframework upgrade to 2.2-groovy-3.0 (#4769)&lt;/li>
&lt;li>chore(dependency): add explicit assertj-core dependency while spockframework upgrade to 2.2-groovy-3.0 (#4770)&lt;/li>
&lt;li>chore(dependency): add explicit byte-buddy dependency while upgrading spockframework to 2.2-groovy-3.0 (#4771)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4772)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4774)&lt;/li>
&lt;li>fix(ecs): Docker image extraction from context (#4812) (#4814)&lt;/li>
&lt;li>fix(pipelineRef): add resolvedExpectedArtifacts from pipelineTrigger to PipelineRefTrigger (#4816) (#4818)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-clouddriver---1355">Spinnaker Clouddriver - 1.35.5&lt;/h4>
&lt;ul>
&lt;li>fix(liquibase): fix checkSum errors occurring with spinnaker upgrade (#6217) (#6232)&lt;/li>
&lt;li>fix(tests): refactored existing containerized integration test and added new tests for postgres and mysql (#6221) (#6230)&lt;/li>
&lt;li>feat(build): add fiat-integration module to exercise the just-built docker imageTest docker image (#6206) (#6228)&lt;/li>
&lt;li>fix(ClusterController): Fix GetClusters returning only the last 2 providers clusterNames of application (#6210) (#6213)&lt;/li>
&lt;li>fix(gcp): Relaxed health check for GCP accounts (#6200) (#6202)&lt;/li>
&lt;li>fix(databaseChangeLog): fix for &amp;lsquo;addAfterColumn is not allowed on postgresql&amp;rsquo; (#6194) (#6196)&lt;/li>
&lt;li>chore(deps): remove duplicate/old fiatVersion (#6191) (#6193)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6183) (#6192)&lt;/li>
&lt;li>feat(docker): Add RBAC support to Docker accounts (#6187)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6183)&lt;/li>
&lt;li>chore(deps): remove duplicate/old fiatVersion (#6191)&lt;/li>
&lt;li>fix(databaseChangeLog): fix for &amp;lsquo;addAfterColumn is not allowed on postgresql&amp;rsquo; (#6194)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6197)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#6198)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6199)&lt;/li>
&lt;li>feat(aws): Install AWS CLI v2, upgrade aws-iam-authenticator, remove s3cmd (#6156)&lt;/li>
&lt;li>fix(gcp): Relaxed health check for GCP accounts (#6200)&lt;/li>
&lt;li>chore(deps): bump gradle/wrapper-validation-action from 2 to 3 (#6205)&lt;/li>
&lt;li>feat(build): add fiat-integration module to exercise the just-built docker imageTest docker image (#6206)&lt;/li>
&lt;li>chore(ecs/dependencies): make spring-boot-starter-test a testImplememtation dependency (#6207)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6208)&lt;/li>
&lt;li>fix(ClusterController): Fix GetClusters returning only the last 2 providers clusterNames of application (#6210)&lt;/li>
&lt;li>chore(dependency): unpin mysql-connector-java (#6214)&lt;/li>
&lt;li>config(googlecloudsdkversion): Upgraded the google cloud sdk version from 412.0.0 to 476.0.0 in clouddriver. (#6216)&lt;/li>
&lt;li>feat(kubernetes): support label selectors in deploy manifest stages (#6220)&lt;/li>
&lt;li>fix(tests): refactored existing containerized integration test and added new tests for postgres and mysql (#6221)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6223)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6224)&lt;/li>
&lt;li>fix(liquibase): fix checkSum errors occurring with spinnaker upgrade (#6217)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6233)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#6234)&lt;/li>
&lt;li>fix(aws): allow enabledMetrics: [] to enable all metrics (#6238)&lt;/li>
&lt;li>fix(google): fixing UpsertGoogleAutoscalingPolicyAtomicOperation missing Autowired for objectMapper and cacheView (#6237)&lt;/li>
&lt;li>chore(build): enable cross compilation plugin for Java 17 (#6226)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6243)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6244)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6245)&lt;/li>
&lt;li>chore(azure/build): improve test times for azure (#6246)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 5 to 6 (#6242)&lt;/li>
&lt;li>feat(aws): support throughput property of block devices (#6248)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6247)&lt;/li>
&lt;li>fix(kubernetes/job): Fix an edge case where a job can have no pods (#6251)&lt;/li>
&lt;li>refactor(test): fix scope of setup method while upgrading junit to 5.9.0 (#6249)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6253)&lt;/li>
&lt;li>feat(kubernetes): Skip applying labels to spec.template.metadata if skipSpecTemplateLabels is true (#6254)&lt;/li>
&lt;li>perf(cache): Optimise heap usage in KubernetesCachingAgent (#6255)&lt;/li>
&lt;li>chore(dependency): add explicit byte-buddy dependency while upgrading spockframework to 2.2-groovy-3.0 (#6257)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6258)&lt;/li>
&lt;li>chore(gcp): Adding STRONG_COOKIE_AFFINITY in gcp LB model (#6259)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#6264)&lt;/li>
&lt;li>fix(kubernetes): teach deployManifest stages to handle label selectors with generateName (#6265)&lt;/li>
&lt;li>fix(gha): only bump halyard on master (#6268) (#6270)&lt;/li>
&lt;li>fix(gha): remove whitespace from BRANCH in release.yml (#6271) (#6273)&lt;/li>
&lt;li>fix(install): Fixed Debian post install script for aws-iam-authenticator (#6274) (#6275)&lt;/li>
&lt;li>fix(install): Fix Debian post installation script when awscli2 is already installed or the installation failed previously (#6276) (#6277)&lt;/li>
&lt;li>fix(aws): Fix AWS CLI v2 for Alpine Linux (#6279) (#6280)&lt;/li>
&lt;li>fix(cloudfoundry): Update ProcessStats model due to capi-1.84.0 changes (#6283) (#6293)&lt;/li>
&lt;li>feat(aws): CleanupAlarmsAgent with an optional user-defined name pattern (#6317) (#6318)&lt;/li>
&lt;li>fix(mergify): Mergify config needs adjusting for latest mergify releases (#6321) (#6327)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1355">Spinnaker Kayenta - 1.35.5&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump orcaVersion (#1027)&lt;/li>
&lt;li>chore(deps): bump gradle/wrapper-validation-action from 2 to 3 (#1031)&lt;/li>
&lt;li>feat(build): add kayenta-integration module to exercise the just-built docker image (#1032)&lt;/li>
&lt;li>refactor(retrofit): add SpinnakerServerExceptionHandler (#1035)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#1036)&lt;/li>
&lt;li>chore(dependency): unpin mysql-connector-java and liquibase-core (#1037)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#1041)&lt;/li>
&lt;li>refactor(auto-configuration): replace spring.factories with AutoConfiguration.imports file to enable auto-configuration during upgrade to spring boot 2.7.x (#1039)&lt;/li>
&lt;li>chore(build): enable cross compilation plugin for Java 17 (#1040)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 5 to 6 (#1044)&lt;/li>
&lt;li>chore(build): upgrade builder image to gradle:7.6.1-jdk17 (#1045)&lt;/li>
&lt;li>fix(stackdriver): handle null timeSeries and empty points (#1047)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#1057)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#1076)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1355">Spinnaker Igor - 1.35.5&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1255)&lt;/li>
&lt;li>fix(travis): Properly return API triggered builds (#1256)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1257)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1259)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1260)&lt;/li>
&lt;li>refactor(artifact): moved artifacts (groovy) unit tests to artifacts (java) (#1258)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1261)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1262)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 5 to 6 (#1263)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1264)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1265)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1266)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1267)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1268)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1269)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1270)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1271)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.32.5 Armory Continuous Deployment Release (Spinnaker™ v1.32.4)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-32-5/</link><pubDate>Mon, 02 Sep 2024 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-32-5/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="20240902-release-notes">2024/09/02 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.32.5, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="aws-lambda-plugin-migrated-to-oss">AWS Lambda plugin migrated to OSS&lt;/h3>
&lt;p>Starting from Armory version 2.32.0 (OSS version 1.32.0), the AWS Lambda plugin has been migrated to OSS codebase.
If you are using the AWS Lambda plugin, you will need to disable/remove it when upgrading to Armory version 2.32.0+ to
avoid compatibility issues.&lt;/p>
&lt;p>Additionally, the AWS Lambda stages are now enabled using the Deck feature flag &lt;code>feature.lambdaAdditionalStages = true;&lt;/code>
as shown in the configuration block below.
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">42
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">43
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">44
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">45
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">46
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">47
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.functions = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> // Enable the AWS Lambda pipeline stages in Deck using the feature flag
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.lambdaAdditionalStages = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">features&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">lambda&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">## Remove the AWS Lambda plugin from the Armory CD configuration.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">#gate:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># spinnaker:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensibility:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># deck-proxy:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># plugins:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentPlugin:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># version: &amp;lt;version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># repositories:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># awsLambdaDeploymentPluginRepo:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># url: https://raw.githubusercontent.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/master/plugins.json &lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">#orca:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># spinnaker:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensibility:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># plugins:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentPlugin:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># version: &amp;lt;version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensions:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentStage:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># repositories:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># awsLambdaDeploymentPluginRepo:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># id: awsLambdaDeploymentPluginRepo&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># url: https://raw.githubusercontent.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/master/plugins.json&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>Related OSS PRs:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/spinnaker/orca/pull/4449">https://github.com/spinnaker/orca/pull/4449&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/spinnaker/deck/pull/9988">https://github.com/spinnaker/deck/pull/9988&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="terraformer-support-for-aws-s3-artifact-store">Terraformer support for AWS S3 Artifact Store&lt;/h3>
&lt;p>OSS Spinnaker 1.32.0 introduced support for &lt;a href="https://spinnaker.io/changelogs/1.32.0-changelog/#artifact-store">artifact storage&lt;/a>
with AWS S3. This feature compresses &lt;code>embdedded/base64&lt;/code> artifacts to &lt;code>remote/base64&lt;/code> and uploads them to an AWS S3 bucket significantly
reducing the artifact size in the execution context.&lt;/p>
&lt;p>Armory version 2.32.0 adds support for the same feature for the Terraform Integration stage.&lt;/p>
&lt;blockquote>
&lt;p>Note: The artifact-store feature is disabled by default. To enable the artifact-store feature the following configuration is required:&lt;/p>
&lt;/blockquote>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-store&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;S3Bucket Region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;S3Bucket Name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When enabling the artifact-store feature it is recommended to deploy the services in this order:&lt;/p>
&lt;ol>
&lt;li>Clouddriver service&lt;/li>
&lt;li>Terraformer service&lt;/li>
&lt;li>Orca service&lt;/li>
&lt;li>Rosco service&lt;/li>
&lt;/ol>
&lt;h3 id="enable-jenkins-job-triggers-for-jobs-located-sub-folders">Enable Jenkins job triggers for jobs located sub-folders&lt;/h3>
&lt;p>When defining a Jenkins job in a sub-folder, the path contains forward slashes. By enabling this feature, Armory CD will be
able to trigger Jenkins jobs located in sub-folders, correctly matching the job path.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">echo&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="pipeline-as-code-bitbucket-fallback-support-for-default-branch">Pipeline As Code: Bitbucket fallback support for default branch&lt;/h3>
&lt;p>By default, Dinghy uses the &lt;code>master&lt;/code> branch in your repository and fallbacks to &lt;code>main&lt;/code> if &lt;code>master&lt;/code> doesn’t exist.
If you wish to use a different branch in your repository, you can configure that using the &lt;code>repoConfig&lt;/code> tag in your YAML configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">dinghy&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repoConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">branch&lt;/span>: some_branch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">provider&lt;/span>: bitbucket-server
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repo&lt;/span>: my-bitbucket-repository
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="performance-improvements-for-the-search-executions-api-operations">Performance improvements for the search executions API operations&lt;/h3>
&lt;p>The search executions API operations have been optimized to improve performance and reduce the time taken to search for pipelines by triggerType or eventId.&lt;/p>
&lt;h3 id="runjob-stage-improvement">RunJob stage improvement&lt;/h3>
&lt;p>RunJob stage now persist any External Log links after the deletion of the pods. This enhancement ensures that the External Log links are available even after the pods are deleted.&lt;/p>
&lt;h3 id="task-view-loading-support-for-paginated-requests">Task View loading support for Paginated requests&lt;/h3>
&lt;p>Task View now supports paginated requests for loading tasks. This enhancement ensures that the Task View loads tasks more efficiently,
avoiding timeouts when loading an application with high number of tasks.&lt;/p>
&lt;p>To enable this feature, set the &lt;code>window.spinnakerSettings.tasksViewLimitPerPage = &amp;lt;number&amp;gt;&lt;/code> flag to the desired number in the &lt;code>settings-local.js&lt;/code> deck profile. For example:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.tasksViewLimitPerPage = 100;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span> &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.32.4-changelog/">Spinnaker v1.32.4&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 2736c8796b346d892fb68180ed1534cd882c5f6c
version: 2.32.5
deck:
commit: 9f22fea76ec0ce4ad425a09fd5793372d077f243
version: 2.32.5
dinghy:
commit: f5b14ffba75721322ada662f2325e80ec86347de
version: 2.32.5
echo:
commit: e376d0eb3f19fd3027820bb013b0fbf9fee98e55
version: 2.32.5
fiat:
commit: b674ce72dc02d7e39008bfbf2a551b3d1cc9544e
version: 2.32.5
front50:
commit: b774859c8e27ebfd90455cf0e5f3583eb9afe5d4
version: 2.32.5
gate:
commit: 9a3705729990d170a142b297d2df150fac71bf0f
version: 2.32.5
igor:
commit: c4e429724d83aae802796cda7c5d9b39ce6efba1
version: 2.32.5
kayenta:
commit: 1d0be49daf965910063c3ee611da1453b4fc5a2a
version: 2.32.5
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 9feaae8ddcf27315da951b4a51ffc7f0c4d4ffe6
version: 2.32.5
rosco:
commit: dfe611ffdd2cf9ae7c524fb9970af47350ca5e96
version: 2.32.5
terraformer:
commit: 709bc0b11d21230009e34a3229443e943db9036f
version: 2.32.5
timestamp: "2024-09-02 08:31:29"
version: 2.32.5
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-echo---23242325">Armory Echo - 2.32.4&amp;hellip;2.32.5&lt;/h4>
&lt;h4 id="armory-igor---23242325">Armory Igor - 2.32.4&amp;hellip;2.32.5&lt;/h4>
&lt;h4 id="armory-fiat---23242325">Armory Fiat - 2.32.4&amp;hellip;2.32.5&lt;/h4>
&lt;h4 id="armory-deck---23242325">Armory Deck - 2.32.4&amp;hellip;2.32.5&lt;/h4>
&lt;h4 id="armory-rosco---23242325">Armory Rosco - 2.32.4&amp;hellip;2.32.5&lt;/h4>
&lt;h4 id="armory-clouddriver---23242325">Armory Clouddriver - 2.32.4&amp;hellip;2.32.5&lt;/h4>
&lt;h4 id="armory-gate---23242325">Armory Gate - 2.32.4&amp;hellip;2.32.5&lt;/h4>
&lt;h4 id="armory-front50---23242325">Armory Front50 - 2.32.4&amp;hellip;2.32.5&lt;/h4>
&lt;h4 id="terraformer---23242325">Terraformer™ - 2.32.4&amp;hellip;2.32.5&lt;/h4>
&lt;h4 id="armory-kayenta---23242325">Armory Kayenta - 2.32.4&amp;hellip;2.32.5&lt;/h4>
&lt;ul>
&lt;li>chore(build): Updating Build dependencies (backport #544) (#553)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.08.08.22.44.15.release-1.32.x (#550)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---23242325">Armory Orca - 2.32.4&amp;hellip;2.32.5&lt;/h4>
&lt;h4 id="dinghy---23242325">Dinghy™ - 2.32.4&amp;hellip;2.32.5&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-echo---1324">Spinnaker Echo - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-igor---1324">Spinnaker Igor - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-fiat---1324">Spinnaker Fiat - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-deck---1324">Spinnaker Deck - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-rosco---1324">Spinnaker Rosco - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1324">Spinnaker Clouddriver - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-gate---1324">Spinnaker Gate - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-front50---1324">Spinnaker Front50 - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1324">Spinnaker Kayenta - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix(stackdriver): handle null timeSeries and empty points (backport #1047) (#1048)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1324">Spinnaker Orca - 1.32.4&lt;/h4></description></item><item><title>Continuous-Deployment: v2.32.4 Armory Continuous Deployment Release (Spinnaker™ v1.32.4)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-32-4/</link><pubDate>Fri, 30 Aug 2024 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-32-4/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="20240830-release-notes">2024/08/30 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.32.4, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="aws-lambda-plugin-migrated-to-oss">AWS Lambda plugin migrated to OSS&lt;/h3>
&lt;p>Starting from Armory version 2.32.0 (OSS version 1.32.0), the AWS Lambda plugin has been migrated to OSS codebase.
If you are using the AWS Lambda plugin, you will need to disable/remove it when upgrading to Armory version 2.32.0+ to
avoid compatibility issues.&lt;/p>
&lt;p>Additionally, the AWS Lambda stages are now enabled using the Deck feature flag &lt;code>feature.lambdaAdditionalStages = true;&lt;/code>
as shown in the configuration block below.
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">42
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">43
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">44
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">45
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">46
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">47
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.functions = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> // Enable the AWS Lambda pipeline stages in Deck using the feature flag
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.lambdaAdditionalStages = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">features&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">lambda&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">## Remove the AWS Lambda plugin from the Armory CD configuration.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">#gate:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># spinnaker:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensibility:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># deck-proxy:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># plugins:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentPlugin:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># version: &amp;lt;version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># repositories:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># awsLambdaDeploymentPluginRepo:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># url: https://raw.githubusercontent.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/master/plugins.json &lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">#orca:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># spinnaker:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensibility:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># plugins:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentPlugin:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># version: &amp;lt;version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensions:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentStage:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># repositories:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># awsLambdaDeploymentPluginRepo:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># id: awsLambdaDeploymentPluginRepo&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># url: https://raw.githubusercontent.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/master/plugins.json&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>Related OSS PRs:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/spinnaker/orca/pull/4449">https://github.com/spinnaker/orca/pull/4449&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/spinnaker/deck/pull/9988">https://github.com/spinnaker/deck/pull/9988&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="terraformer-support-for-aws-s3-artifact-store">Terraformer support for AWS S3 Artifact Store&lt;/h3>
&lt;p>OSS Spinnaker 1.32.0 introduced support for &lt;a href="https://spinnaker.io/changelogs/1.32.0-changelog/#artifact-store">artifact storage&lt;/a>
with AWS S3. This feature compresses &lt;code>embdedded/base64&lt;/code> artifacts to &lt;code>remote/base64&lt;/code> and uploads them to an AWS S3 bucket significantly
reducing the artifact size in the execution context.&lt;/p>
&lt;p>Armory version 2.32.0 adds support for the same feature for the Terraform Integration stage.&lt;/p>
&lt;blockquote>
&lt;p>Note: The artifact-store feature is disabled by default. To enable the artifact-store feature the following configuration is required:&lt;/p>
&lt;/blockquote>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-store&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;S3Bucket Region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;S3Bucket Name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When enabling the artifact-store feature it is recommended to deploy the services in this order:&lt;/p>
&lt;ol>
&lt;li>Clouddriver service&lt;/li>
&lt;li>Terraformer service&lt;/li>
&lt;li>Orca service&lt;/li>
&lt;li>Rosco service&lt;/li>
&lt;/ol>
&lt;h3 id="enable-jenkins-job-triggers-for-jobs-located-sub-folders">Enable Jenkins job triggers for jobs located sub-folders&lt;/h3>
&lt;p>When defining a Jenkins job in a sub-folder, the path contains forward slashes. By enabling this feature, Armory CD will be
able to trigger Jenkins jobs located in sub-folders, correctly matching the job path.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">echo&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="pipeline-as-code-bitbucket-fallback-support-for-default-branch">Pipeline As Code: Bitbucket fallback support for default branch&lt;/h3>
&lt;p>By default, Dinghy uses the &lt;code>master&lt;/code> branch in your repository and fallbacks to &lt;code>main&lt;/code> if &lt;code>master&lt;/code> doesn’t exist.
If you wish to use a different branch in your repository, you can configure that using the &lt;code>repoConfig&lt;/code> tag in your YAML configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">dinghy&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repoConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">branch&lt;/span>: some_branch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">provider&lt;/span>: bitbucket-server
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repo&lt;/span>: my-bitbucket-repository
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="performance-improvements-for-the-search-executions-api-operations">Performance improvements for the search executions API operations&lt;/h3>
&lt;p>The search executions API operations have been optimized to improve performance and reduce the time taken to search for pipelines by triggerType or eventId.&lt;/p>
&lt;h3 id="runjob-stage-improvement">RunJob stage improvement&lt;/h3>
&lt;p>RunJob stage now persist any External Log links after the deletion of the pods. This enhancement ensures that the External Log links are available even after the pods are deleted.&lt;/p>
&lt;h3 id="task-view-loading-support-for-paginated-requests">Task View loading support for Paginated requests&lt;/h3>
&lt;p>Task View now supports paginated requests for loading tasks. This enhancement ensures that the Task View loads tasks more efficiently,
avoiding timeouts when loading an application with high number of tasks.&lt;/p>
&lt;p>To enable this feature, set the &lt;code>window.spinnakerSettings.tasksViewLimitPerPage = &amp;lt;number&amp;gt;&lt;/code> flag to the desired number in the &lt;code>settings-local.js&lt;/code> deck profile. For example:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.tasksViewLimitPerPage = 100;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span> &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.32.4-changelog/">Spinnaker v1.32.4&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 2736c8796b346d892fb68180ed1534cd882c5f6c
version: 2.32.4
deck:
commit: 9f22fea76ec0ce4ad425a09fd5793372d077f243
version: 2.32.4
dinghy:
commit: f5b14ffba75721322ada662f2325e80ec86347de
version: 2.32.4
echo:
commit: e376d0eb3f19fd3027820bb013b0fbf9fee98e55
version: 2.32.4
fiat:
commit: b674ce72dc02d7e39008bfbf2a551b3d1cc9544e
version: 2.32.4
front50:
commit: b774859c8e27ebfd90455cf0e5f3583eb9afe5d4
version: 2.32.4
gate:
commit: 9a3705729990d170a142b297d2df150fac71bf0f
version: 2.32.4
igor:
commit: c4e429724d83aae802796cda7c5d9b39ce6efba1
version: 2.32.4
kayenta:
commit: bccd150fcc8a7cb7df537ec6269bce5d2843c703
version: 2.32.4
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 9feaae8ddcf27315da951b4a51ffc7f0c4d4ffe6
version: 2.32.4
rosco:
commit: dfe611ffdd2cf9ae7c524fb9970af47350ca5e96
version: 2.32.4
terraformer:
commit: 709bc0b11d21230009e34a3229443e943db9036f
version: 2.32.4
timestamp: "2024-08-29 13:18:29"
version: 2.32.4
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-igor---23232324">Armory Igor - 2.32.3&amp;hellip;2.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(build): Updating Build dependencies (#613) (#624)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---23232324">Armory Echo - 2.32.3&amp;hellip;2.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(build): Updating Build dependencies (#723) (#739)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---23232324">Armory Kayenta - 2.32.3&amp;hellip;2.32.4&lt;/h4>
&lt;h4 id="armory-fiat---23232324">Armory Fiat - 2.32.3&amp;hellip;2.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(build): Updating Build dependencies (#613) (#626)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---23232324">Armory Deck - 2.32.3&amp;hellip;2.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240610151853.release-1.32.x (#1421)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240808191000.release-1.32.x (#1427)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---23232324">Armory Rosco - 2.32.3&amp;hellip;2.32.4&lt;/h4>
&lt;h4 id="armory-clouddriver---23232324">Armory Clouddriver - 2.32.3&amp;hellip;2.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2024.05.15.16.46.29.release-1.32.x (#1127)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.05.17.20.53.release-1.32.x (#1129)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#1140) (#1169)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.08.19.07.30.release-1.32.x (#1156)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---23232324">Armory Front50 - 2.32.3&amp;hellip;2.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to front50:2024.06.11.18.14.17.release-1.32.x (#692)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#697) (#713)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.08.23.02.19.43.release-1.32.x (#715)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---23232324">Armory Gate - 2.32.3&amp;hellip;2.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(build): Updating Build dependencies (#732) (#750)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---23232324">Terraformer™ - 2.32.3&amp;hellip;2.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(terraformer): Backport fixes (#571) (#573)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---23232324">Armory Orca - 2.32.3&amp;hellip;2.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2024.06.10.16.25.01.release-1.32.x (#893)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#911) (#935)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---23232324">Dinghy™ - 2.32.3&amp;hellip;2.32.4&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-kayenta---1324">Spinnaker Kayenta - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-echo---1324">Spinnaker Echo - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-orca---1324">Spinnaker Orca - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix(check-pre-condition): CheckPrecondition doesn&amp;rsquo;t evaluate expression correctly after upstream stages get restarted (#4682) (#4719)&lt;/li>
&lt;li>fix(jenkins): Wrong Job name encoding in query params for Artifacts/Properties (#4722) (#4725)&lt;/li>
&lt;li>fix(blueGreen): Scaling replicaSets should not be considered for deletion (#4728) (#4732)&lt;/li>
&lt;li>feat(build): add orca-integration module to exercise the just-built docker image (backport #4721) (#4737)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1324">Spinnaker Fiat - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-gate---1324">Spinnaker Gate - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1324">Spinnaker Clouddriver - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix(gcp): Relaxed health check for GCP accounts (#6200) (#6204)&lt;/li>
&lt;li>fix(ClusterController): Fix GetClusters returning only the last 2 providers clusterNames of application (#6210) (#6211)&lt;/li>
&lt;li>feat(build): add clouddriver-integration module to exercise the just-built docker imageTest docker image (backport #6206) (#6222)&lt;/li>
&lt;li>chore(gcp): Adding STRONG_COOKIE_AFFINITY in gcp LB model (#6259) (#6260)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1324">Spinnaker Rosco - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-deck---1324">Spinnaker Deck - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix(lambda): Invoke stage excludedArtifactTypes not including the embedded-artifact type (#10097) (#10102)&lt;/li>
&lt;li>feat(taskView): Implement opt-in paginated request for TaskView (backport #10093) (#10094)&lt;/li>
&lt;li>fix(pipeline): Handle render/validation when stageTimeoutMs is a Spel expression (#10103) (#10106)&lt;/li>
&lt;li>fix(redblack): fixing redblack onchange values (#10107) (#10111)&lt;/li>
&lt;li>fix(lambda): Export LambdaRoute stage on aws module (#10116) (#10117)&lt;/li>
&lt;li>chore(gcp): Adding STRONG_COOKIE_AFFINITY in gcp LB model (#10124) (#10125)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1324">Spinnaker Igor - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-front50---1324">Spinnaker Front50 - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix(front50-gcs): Fix ObjectType filenames for GCS Front50 persistent store (#1493) (#1496)&lt;/li>
&lt;li>fix(migrator): GCS to SQL migrator APPLICATION_PERMISSION objectType fix (#1466) (#1472)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.34.1 Armory Continuous Deployment Release (Spinnaker™ v1.34.5)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-34-1/</link><pubDate>Fri, 30 Aug 2024 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-34-1/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="20240830-release-notes">2024/08/30 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.34.1, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="swagger-ui-endpoint-change">Swagger UI endpoint change&lt;/h3>
&lt;p>API documentation implementing swagger has been upgraded to use Springfox 3.0.0.&lt;/p>
&lt;p>Breaking Change: Swagger-ui endpoint changed from /swagger-ui.html to /swagger-ui/index.html.&lt;/p>
&lt;h3 id="kubernetes-api-version-change-for-clientauthenticationk8sio">Kubernetes API version change for &lt;code>client.authentication.k8s.io&lt;/code>&lt;/h3>
&lt;p>kubectl in the latest releases has removed support for external auth flows using the apiVersion: client.authentication.k8s.io/v1alpha1 exec API.&lt;/p>
&lt;p>Breaking Change: Update your kubeconfig files to use the v1beta1 apiVersion: &lt;code>client.authentication.k8s.io/v1beta1&lt;/code>&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spring-boot-2615">Spring Boot 2.6.15&lt;/h3>
&lt;p>Spring Boot 2.6 considers session data cached by previous Spring Boot versions invalid. Therefore, users with cached
sessions will be unable to log in until the invalid information is removed from the cache.&lt;/p>
&lt;p>Open browser windows to Spinnaker are unresponsive after the deployment until they’re reloaded.
Once Gate is updated to the new Armory CD version please execute:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>$ redis-cli keys &lt;span style="color:#f1fa8c">&amp;#34;spring:session*&amp;#34;&lt;/span> | xargs redis-cli del
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>on Gate’s redis instance removes the cached session information.&lt;/p>
&lt;h3 id="lambda-operations">Lambda Operations&lt;/h3>
&lt;p>Introduced in OSS Spinnaker 1.33.0 and included in the 2.34.0 release, Armory CD now supports configurable Invocation timeouts
and retries for Lambda operations. Previously the SDK would restrict timeouts despite any configuration to 55 seconds.&lt;/p>
&lt;p>To set the timeout and retry values, add the following to your &lt;code>clouddriver-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">features&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">lambda&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">lambda&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">invokeTimeoutMs&lt;/span>: &lt;span style="color:#bd93f9">4000000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">retries&lt;/span>: &lt;span style="color:#bd93f9">3&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="changes-in-s3-artifact-store-configuration">Changes in S3 Artifact Store configuration&lt;/h3>
&lt;p>NOTE: If upgrading from 2.32.x to 2.34.x, this reference format has changed from s3://bucket/ref://application/hash to s3://bucket/application/hash, which is not backwards compatible. Please ensure everything is working correctly before enabling this feature!
In case of a rollback, manual correction of the reference format will be required.&lt;/p>
&lt;p>OSS Spinnaker 1.32.0 introduced support for &lt;a href="https://spinnaker.io/changelogs/1.32.0-changelog/#artifact-store">artifact storage&lt;/a>
with AWS S3. This feature compresses &lt;code>embdedded/base64&lt;/code> artifacts to &lt;code>remote/base64&lt;/code> and uploads them to an AWS S3 bucket significantly
reducing the artifact size in the execution context.&lt;/p>
&lt;p>Armory version 2.32.0 added support for the same feature for the Terraform Integration stage.&lt;/p>
&lt;p>In Armory CD version 2.34.0, the S3 Artifact Store configuration flags have been modified to support either store
or retrieval or both of remote artifacts.&lt;/p>
&lt;h4 id="configuration-in-232x">Configuration in 2.32.x&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-store&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;S3Bucket Region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;S3Bucket Name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="configuration-in-2340-storeget">Configuration in 2.34.0 (Store/Get)&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-store&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">type&lt;/span>: s3
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;S3Bucket Region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;S3Bucket Name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="configuration-in-2340-get-only">Configuration in 2.34.0 (Get only)&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-store&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">type&lt;/span>: s3
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;S3Bucket Region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;S3Bucket Name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="dinghy-support-for-delete-stale-pipelines">Dinghy support for delete stale pipelines&lt;/h3>
&lt;p>Dinghy now support deleting stale pipelines - Any pipelines in the Spinnaker application that are not part of the &lt;code>dinghyfile&lt;/code>.&lt;/p>
&lt;p>These pipelines are identified and deleted automatically when the &lt;code>dinghyfile&lt;/code> is updated and processed. You can set
the &lt;code>deleteStalePipelines&lt;/code> flag to &lt;code>true&lt;/code> in the &lt;code>dinghyfile&lt;/code> to enable this feature.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;application&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;yourspinnakerapplicationname&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;deleteStalePipelines&amp;#34;&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;pipelines&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.34.5-changelog/">Spinnaker v1.34.5&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 7602c40d66f8d99254c740ac782fb4c7a8e547db
version: 2.34.1
deck:
commit: 4e15526f16000326035436c57783415b5e5c1d72
version: 2.34.1
dinghy:
commit: fbba492fb3d6c116d75f9ca959f6b5d84ab473a6
version: 2.34.1
echo:
commit: 391b1f4924679a0ce23c216d4b0d8bc4cfdd9ed5
version: 2.34.1
fiat:
commit: df367d6ed0185b61abcea1e943109503a4b7928b
version: 2.34.1
front50:
commit: eb8691d3c549c86ba3547b0710828b9f37c62f38
version: 2.34.1
gate:
commit: f54a45abcf7a622e4233e471723c2b54d3972c5d
version: 2.34.1
igor:
commit: 0ddc88fc33b097ca8d822e91591218c2216dbbc2
version: 2.34.1
kayenta:
commit: b8983452be0897fc98a6c47d84f8689a9e0e623b
version: 2.34.1
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 9385c93a4ce4f30a5484989b0b9913b6cd7e24d6
version: 2.34.1
rosco:
commit: f0e9fdb04e392820324f5edb72c0ff46b5307701
version: 2.34.1
terraformer:
commit: d4b6e9f53f3a2b595ce25e0b044318d47fd239b6
version: 2.34.1
timestamp: "2024-08-29 12:35:20"
version: 2.34.1
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="dinghy---23402341">Dinghy™ - 2.34.0&amp;hellip;2.34.1&lt;/h4>
&lt;h4 id="armory-gate---23402341">Armory Gate - 2.34.0&amp;hellip;2.34.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to gate:2024.08.09.02.35.08.release-1.34.x (#744)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.08.10.04.22.27.release-1.34.x (#745)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.08.16.23.57.38.release-1.34.x (#746)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.08.17.03.15.23.release-1.34.x (#747)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---23402341">Armory Rosco - 2.34.0&amp;hellip;2.34.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to rosco:2024.08.17.00.00.56.release-1.34.x (#684)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---23402341">Armory Igor - 2.34.0&amp;hellip;2.34.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to igor:2024.08.17.03.16.09.release-1.34.x (#623)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---23402341">Armory Fiat - 2.34.0&amp;hellip;2.34.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to fiat:2024.08.16.23.56.14.release-1.34.x (#625)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---23402341">Terraformer™ - 2.34.0&amp;hellip;2.34.1&lt;/h4>
&lt;ul>
&lt;li>chore(terraformer): Backport fixes (#571)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---23402341">Armory Kayenta - 2.34.0&amp;hellip;2.34.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to kayenta:2024.08.08.20.11.17.release-1.34.x (#549)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.08.17.05.49.51.release-1.34.x (#552)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---23402341">Armory Front50 - 2.34.0&amp;hellip;2.34.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to front50:2024.08.16.23.58.39.release-1.34.x (#708)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.08.18.02.21.08.release-1.34.x (#711)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.08.23.16.11.18.release-1.34.x (#712)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---23402341">Armory Orca - 2.34.0&amp;hellip;2.34.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2024.08.17.02.35.16.release-1.34.x (#932)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.08.17.03.26.59.release-1.34.x (#933)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---23402341">Armory Deck - 2.34.0&amp;hellip;2.34.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240808191056.release-1.34.x (#1428)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---23402341">Armory Echo - 2.34.0&amp;hellip;2.34.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to echo:2024.08.16.23.59.20.release-1.34.x (#737)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.08.17.03.16.29.release-1.34.x (#738)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---23402341">Armory Clouddriver - 2.34.0&amp;hellip;2.34.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.08.19.08.20.release-1.34.x (#1157)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.17.00.37.38.release-1.34.x (#1160)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.17.03.54.14.release-1.34.x (#1161)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.17.21.27.20.release-1.34.x (#1163)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.08.18.02.43.56.release-1.34.x (#1165)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-gate---1345">Spinnaker Gate - 1.34.5&lt;/h4>
&lt;ul>
&lt;li>fix(web/test): stop leaking system properties from FunctionalSpec (#1798) (#1818)&lt;/li>
&lt;li>fix(core): remove ErrorPageSecurityFilter bean named errorPageSecurityInterceptor (#1817)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1821)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1822)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1345">Spinnaker Rosco - 1.34.5&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1106)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1345">Spinnaker Igor - 1.34.5&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1253)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1250)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1272)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1273)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1345">Spinnaker Fiat - 1.34.5&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1156)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1153)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1177)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1345">Spinnaker Kayenta - 1.34.5&lt;/h4>
&lt;ul>
&lt;li>fix(stackdriver): handle null timeSeries and empty points (#1047) (#1050)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#1058)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-front50---1345">Spinnaker Front50 - 1.34.5&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1488)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1489)&lt;/li>
&lt;li>fix(gha): only bump halyard on master (#1490) (#1491)&lt;/li>
&lt;li>fix(front50-gcs): Fix ObjectType filenames for GCS Front50 persistent store (#1493) (#1494)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1345">Spinnaker Orca - 1.34.5&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#4776)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4777)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1345">Spinnaker Deck - 1.34.5&lt;/h4>
&lt;ul>
&lt;li>chore(gcp): Adding STRONG_COOKIE_AFFINITY in gcp LB model (#10124) (#10127)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1345">Spinnaker Echo - 1.34.5&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1417)&lt;/li>
&lt;li>feat(pipelinetriggers): set pipeline-cache.filterFront50Pipelines to true by default (#1416)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1413)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1440)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1441)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-clouddriver---1345">Spinnaker Clouddriver - 1.34.5&lt;/h4>
&lt;ul>
&lt;li>chore(gcp): Adding STRONG_COOKIE_AFFINITY in gcp LB model (#6259) (#6262)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6266)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#6267)&lt;/li>
&lt;li>fix(gha): only bump halyard on master (#6268) (#6269)&lt;/li>
&lt;li>fix(gha): remove whitespace from BRANCH in release.yml (#6271) (#6272)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.34.0 Armory Continuous Deployment Release (Spinnaker™ v1.32.4)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-34-0/</link><pubDate>Thu, 18 Jul 2024 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-34-0/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="20240718-release-notes">2024/07/18 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.34.0, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="swagger-ui-endpoint-change">Swagger UI endpoint change&lt;/h3>
&lt;p>API documentation implementing swagger has been upgraded to use Springfox 3.0.0.&lt;/p>
&lt;p>Breaking Change: Swagger-ui endpoint changed from /swagger-ui.html to /swagger-ui/index.html.&lt;/p>
&lt;h3 id="kubernetes-api-version-change-for-clientauthenticationk8sio">Kubernetes API version change for &lt;code>client.authentication.k8s.io&lt;/code>&lt;/h3>
&lt;p>kubectl in the latest releases has removed support for external auth flows using the apiVersion: client.authentication.k8s.io/v1alpha1 exec API.&lt;/p>
&lt;p>Breaking Change: Update your kubeconfig files to use the v1beta1 apiVersion: &lt;code>client.authentication.k8s.io/v1beta1&lt;/code>&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="spinnaker-2340-front50-gcs-object-store-issue">Spinnaker 2.34.0 Front50 GCS object store issue&lt;/h3>
&lt;p>Spinnaker 2.34.0 includes a known issue in Front50 that causes issues with GCS object store configurations. This issue affects:&lt;/p>
&lt;ul>
&lt;li>When GCS is used as a persistent store&lt;/li>
&lt;li>When GCS is used in a dual repository configuration&lt;/li>
&lt;/ul>
&lt;p>This is resolved in Spinnaker 2.34.1.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spring-boot-2615">Spring Boot 2.6.15&lt;/h3>
&lt;p>Spring Boot 2.6 considers session data cached by previous Spring Boot versions invalid. Therefore, users with cached
sessions will be unable to log in until the invalid information is removed from the cache.&lt;/p>
&lt;p>Open browser windows to Spinnaker are unresponsive after the deployment until they’re reloaded.
Once Gate is updated to the new Armory CD version please execute:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>$ redis-cli keys &lt;span style="color:#f1fa8c">&amp;#34;spring:session*&amp;#34;&lt;/span> | xargs redis-cli del
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>on Gate’s redis instance removes the cached session information.&lt;/p>
&lt;h3 id="lambda-operations">Lambda Operations&lt;/h3>
&lt;p>Introduced in OSS Spinnaker 1.33.0 and included in the 2.34.0 release, Armory CD now supports configurable Invocation timeouts
and retries for Lambda operations. Previously the SDK would restrict timeouts despite any configuration to 55 seconds.&lt;/p>
&lt;p>To set the timeout and retry values, add the following to your &lt;code>clouddriver-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">features&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">lambda&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">lambda&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">invokeTimeoutMs&lt;/span>: &lt;span style="color:#bd93f9">4000000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span> &lt;span style="color:#ff79c6">retries&lt;/span>: &lt;span style="color:#bd93f9">3&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="changes-in-s3-artifact-store-configuration">Changes in S3 Artifact Store configuration&lt;/h3>
&lt;p>OSS Spinnaker 1.32.0 introduced support for &lt;a href="https://spinnaker.io/changelogs/1.32.0-changelog/#artifact-store">artifact storage&lt;/a>
with AWS S3. This feature compresses &lt;code>embdedded/base64&lt;/code> artifacts to &lt;code>remote/base64&lt;/code> and uploads them to an AWS S3 bucket significantly
reducing the artifact size in the execution context.&lt;/p>
&lt;p>Armory version 2.32.0 added support for the same feature for the Terraform Integration stage.&lt;/p>
&lt;p>In Armory CD version 2.34.0, the S3 Artifact Store configuration flags have been modified to support either store
or retrieval or both of remote artifacts.&lt;/p>
&lt;h4 id="configuration-in-232x">Configuration in 2.32.x&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-store&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;S3Bucket Region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;S3Bucket Name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="configuration-in-2340-storeget">Configuration in 2.34.0 (Store/Get)&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-store&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">type&lt;/span>: s3
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;S3Bucket Region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;S3Bucket Name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="configuration-in-2340-get-only">Configuration in 2.34.0 (Get only)&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-store&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">type&lt;/span>: s3
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;S3Bucket Region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;S3Bucket Name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="dinghy-support-for-delete-stale-pipelines">Dinghy support for delete stale pipelines&lt;/h3>
&lt;p>Dinghy now support deleting stale pipelines - Any pipelines in the Spinnaker application that are not part of the &lt;code>dinghyfile&lt;/code>.&lt;/p>
&lt;p>These pipelines are identified and deleted automatically when the &lt;code>dinghyfile&lt;/code> is updated and processed. You can set
the &lt;code>deleteStalePipelines&lt;/code> flag to &lt;code>true&lt;/code> in the &lt;code>dinghyfile&lt;/code> to enable this feature.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;application&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;yourspinnakerapplicationname&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;deleteStalePipelines&amp;#34;&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;pipelines&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.34.3-changelog/">Spinnaker v1.34.3&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 94c77a6b398a40993e6fba92e5692393d8f22564
version: 2.34.0
deck:
commit: 63cd2960432f7921cecefc634bc5b187473832fe
version: 2.34.0
dinghy:
commit: fbba492fb3d6c116d75f9ca959f6b5d84ab473a6
version: 2.34.0
echo:
commit: 23909434bf95a0891a5ab256e5fccf5d7d8b6ed3
version: 2.34.0
fiat:
commit: e8be593635189433704d0a7945fa1335c24ac896
version: 2.34.0
front50:
commit: cce826e7cc2203970da4ebd37ccd9a91d9b39790
version: 2.34.0
gate:
commit: 313be459112c23139adf1ef2717a850cc7797485
version: 2.34.0
igor:
commit: e327e854cd7487881c15f4005f739b69ca4d7850
version: 2.34.0
kayenta:
commit: 840e7e93fbc83c7704895307fe057b84d14776f2
version: 2.34.0
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: b52430340a82dd536d4e6d13c5b9b44962452ff2
version: 2.34.0
rosco:
commit: 23db1000615781164ae3042eed3ef8cf298d7da4
version: 2.34.0
terraformer:
commit: 559abc8056e0f1c90d6bc737c57688f7c747c0ba
version: 2.34.0
timestamp: "2024-07-18 11:24:58"
version: 2.34.0
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-clouddriver---23232340">Armory Clouddriver - 2.32.3&amp;hellip;2.34.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.27.18.12.36.release-1.34.x (#1142)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.11.19.47.52.release-1.34.x (#1136)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.11.18.46.36.release-1.34.x (#1135)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.06.11.17.42.55.release-1.34.x (#1134)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.05.15.14.49.18.release-1.34.x (#1126)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.05.07.00.11.46.release-1.34.x (#1122)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#1118)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.29.20.13.35.master (#1115)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.28.03.54.41.master (#1114)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.27.02.58.24.master (#1113)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.27.01.17.51.master (#1112)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.19.15.06.51.master (#1111)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.17.23.18.25.master (#1110)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.17.22.30.27.master (#1109)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.17.00.31.11.master (#1108)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.16.23.02.06.master (#1107)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.15.21.03.44.master (#1106)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.15.20.20.47.master (#1105)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.15.19.37.30.master (#1104)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.14.20.52.16.master (#1103)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.10.16.09.12.master (#1102)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.04.01.21.11.56.master (#1101)&lt;/li>
&lt;li>Updating Armory commons and gradle jar (#1100)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.03.28.00.24.09.master (#1099)&lt;/li>
&lt;li>Upgrading Gradle to match OSS (#1098)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.03.21.17.22.01.master (#1097)&lt;/li>
&lt;li>Update clouddriver-package.gradle (#1096)&lt;/li>
&lt;li>chore(build): Updating Dockerfile with base image (#1095)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.03.12.21.36.12.master (#1094)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.03.12.20.05.36.master (#1093)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.03.12.16.58.43.master (#1092)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.03.03.18.17.58.master (#1089)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.02.29.20.32.42.master (#1087)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.02.28.05.46.02.master (#1084)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.02.27.06.01.15.master (#1080)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.02.27.06.00.03.master (#1079)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.02.27.04.32.59.master (#1078)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.02.27.04.01.47.master (#1077)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.02.27.01.13.36.master (#1076)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.02.05.19.55.21.master (#1075)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.02.02.20.34.05.master (#1074)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.02.02.18.14.52.master (#1073)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.02.01.20.44.50.master (#1071)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.01.30.17.34.14.master (#1070)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.01.25.16.36.56.master (#1069)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.1 (#1067)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.01.23.16.49.59.master (#1065)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.01.10.19.37.05.master (#1060)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.01.08.22.53.58.master (#1059)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.01.08.18.58.47.master (#1058)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.01.04.21.23.43.master (#1057)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.01.02.19.12.40.master (#1056)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.01.01.22.40.29.master (#1055)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.01.01.21.46.33.master (#1054)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.12.12.10.42.47.master (#1052)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.12.08.18.19.18.master (#1051)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.12.05.22.20.46.master (#1050)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.12.01.23.18.40.master (#1049)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.12.01.22.25.17.master (#1048)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.12.01.21.32.00.master (#1047)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.12.01.17.07.46.master (#1046)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.12.01.10.02.06.master (#1045)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.29.21.04.30.master (#1044)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.29.16.53.23.master (#1043)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.28.21.32.22.master (#1042)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.28.17.55.30.master (#1041)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.27.16.25.40.master (#1039)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.22.01.22.04.master (#1035)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.22.00.37.26.master (#1034)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.21.21.57.48.master (#1033)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.20.22.10.09.master (#1032)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.20.20.59.25.master (#1028)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.20.18.24.24.master (#1027)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.17.21.14.48.master (#1026)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.16.18.01.55.master (#1025)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.16.17.03.59.master (#1024)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.14.22.02.04.master (#1023)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.14.12.10.10.master (#1022)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.13.19.38.37.master (#1021)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.13.18.40.37.master (#1020)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.13.16.27.25.master (#1019)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.10.20.28.35.master (#1018)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.10.17.31.13.master (#1017)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.08.15.10.17.master (#1015)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.02.20.26.25.master (#1014)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.01.10.42.41.master (#1013)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.01.05.43.07.master (#1012)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.10.30.04.36.21.master (#1011)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.10.20.18.33.36.master (#1010)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.10.17.23.10.42.master (#1009)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.10.11.20.46.03.master (#1008)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.10.11.05.59.16.master (#1006)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---23232340">Dinghy™ - 2.32.3&amp;hellip;2.34.0&lt;/h4>
&lt;ul>
&lt;li>chore: Bumps and delete support (#533) (#535)&lt;/li>
&lt;li>chore(dependencies): v0.0.0-20240213103436-d0dc889db2c6 (#529)&lt;/li>
&lt;li>chore(dependencies): updated oss dinghy version to v0.0.0-20240213103436-d0dc889db2c6 (#525)&lt;/li>
&lt;li>&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---23232340">Terraformer™ - 2.32.3&amp;hellip;2.34.0&lt;/h4>
&lt;h4 id="armory-echo---23232340">Armory Echo - 2.32.3&amp;hellip;2.34.0&lt;/h4>
&lt;ul>
&lt;li>chore(build): Updating Build dependencies (#724)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#716)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.04.27.02.26.26.master (#712)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.04.17.17.22.23.master (#710)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.04.16.22.32.13.master (#709)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.04.06.04.28.27.master (#708)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.04.01.18.07.48.master (#707)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.03.29.22.03.53.master (#706)&lt;/li>
&lt;li>chore(armory-commons): Updating Armory commons version (#705)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.03.21.16.46.18.master (#704)&lt;/li>
&lt;li>chore(build): Updating Dockerfile with base image (#703)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.1 (#675)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.11.21.19.54.25.master (#656)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.11.20.21.36.20.master (#655)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.11.20.17.49.29.master (#654)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.11.14.21.27.23.master (#653)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.11.13.18.24.24.master (#652)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.11.10.19.48.01.master (#651)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.11.02.19.51.25.master (#650)&lt;/li>
&lt;li>fix: Upgrade grpc-netty-shaded to address the service initialization failure issue. (#647) (#649)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.10.30.00.07.35.master (#646)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.10.26.17.17.05.master (#644)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.10.20.17.42.30.master (#643)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.10.17.22.53.33.master (#642)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.10.17.20.02.09.master (#641)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (#637)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.10.06.16.03.18.master (#639)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.10.04.16.06.56.master (#638)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.10.01.16.50.11.master (#635)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.10.01.16.41.14.master (#634)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.10.01.16.33.03.master (#633)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.10.01.16.24.40.master (#632)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.10.01.16.16.00.master (#631)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---23232340">Armory Deck - 2.32.3&amp;hellip;2.34.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240610151915.release-1.34.x (#1420)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240513181436.release-1.34.x (#1417)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240510163512.release-1.34.x (#1413)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240509180831.release-1.34.x (#1410)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240507163358.release-1.34.x (#1407)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240425133611.master (#1402)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240425080204.master (#1401)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240416204716.master (#1399)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240416085052.master (#1398)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240415191135.master (#1397)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240401180625.master (#1396)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240201174104.master (#1393)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240201154858.master (#1392)&lt;/li>
&lt;li>build(action): pass version to fix build (#1390)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240117174813.master (#1384)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240101195346.master (#1383)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231222191848.master (#1382)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231207192034.master (#1381)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231207095504.master (#1378)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231201183254.master (#1377)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231201180115.master (#1375)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231201100402.master (#1374)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231130182135.master (#1373)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231130162716.master (#1372)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231130121012.master (#1371)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231116193005.master (#1368)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231114100915.master (#1367)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231110022032.master (#1366)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231101175540.master (#1365)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231024132143.master (#1362)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231016213838.master (#1358)&lt;/li>
&lt;li>fix(action): upgrade node version to match OSS (#1356)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---23232340">Armory Rosco - 2.32.3&amp;hellip;2.34.0&lt;/h4>
&lt;ul>
&lt;li>Revert &amp;ldquo;Fix permissions on container (#675)&amp;rdquo; (#676)&lt;/li>
&lt;li>Fix permissions on container (#675)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#671) (#672)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.04.18.17.06.07.release-1.34.x (#666)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#664)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.04.18.16.53.13.master (#659)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.04.06.04.30.30.master (#658)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.04.01.17.13.30.master (#657)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.03.26.04.36.13.master (#656)&lt;/li>
&lt;li>chore(build): Updating Dockerfile with base image (#653)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.02.23.17.50.10.master (#642)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.02.21.18.12.33.master (#640)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.02.20.07.03.39.master (#639)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.02.09.15.36.10.master (#637)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.02.07.19.18.48.master (#636)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.02.05.05.09.50.master (#635)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.02.05.04.14.03.master (#634)&lt;/li>
&lt;li>fix(ci): Removing integration tests as not stable (#627)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.11.14.21.27.05.master (#601)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.11.13.18.24.40.master (#600)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.11.10.19.53.01.master (#599)&lt;/li>
&lt;li>fix(cve): Fixing CVE-2023-24538 CVE-2023-24540 (#596)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.11.02.19.54.28.master (#595)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.10.30.03.05.30.master (#594)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (#584)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.10.09.14.38.32.master (#586)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---23232340">Armory Kayenta - 2.32.3&amp;hellip;2.34.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to kayenta:2024.06.14.19.10.09.release-1.34.x (#543)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#544) (#545)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.04.01.18.08.38.master (#530)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.03.20.14.47.07.master (#528)&lt;/li>
&lt;li>chore(build): Updating Dockerfile with base image (#527)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.02.20.06.20.45.master (#520)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.02.06.18.05.30.master (#519)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.02.05.19.15.22.master (#518)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.02.01.16.30.14.master (#515)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.1 (#511)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.01.12.16.21.50.master (#506)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.01.10.18.51.11.master (#505)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.01.01.19.52.30.master (#504)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.12.05.22.25.32.master (#500)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.12.01.16.29.19.master (#497)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.12.01.16.20.40.master (#496)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.12.01.09.56.52.master (#494)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.11.22.03.11.43.master (#493)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---23232340">Armory Gate - 2.32.3&amp;hellip;2.34.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to gate:2024.04.17.02.19.43.release-1.34.x (#734)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#732) (#733)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#721)&lt;/li>
&lt;li>Updating Armory commons and gradle jar (#714)&lt;/li>
&lt;li>chore(build): Updating Dockerfile with base image (#710)&lt;/li>
&lt;li>Fixing header plugin reference (#684)&lt;/li>
&lt;li>Removing Instance registration from Gate (#677)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.1 (#674)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.11.21.19.56.21.master (#654)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.11.20.21.38.07.master (#653)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.11.15.18.44.06.master (#652)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.11.14.21.32.23.master (#651)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.11.13.18.53.08.master (#650)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.11.13.18.31.24.master (#649)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.11.10.19.54.05.master (#648)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.11.06.16.41.58.master (#647)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.11.02.19.56.35.master (#646)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.10.30.00.10.25.master (#645)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.10.20.17.45.11.master (#644)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.10.17.22.55.10.master (#643)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.10.17.20.06.22.master (#642)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (#640)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.10.04.14.06.55.master (#639)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.10.02.10.18.38.master (#637)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.10.02.10.06.07.master (#636)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.10.02.09.54.57.master (#635)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.10.02.09.44.13.master (#634)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.10.02.09.29.18.master (#633)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---23232340">Armory Igor - 2.32.3&amp;hellip;2.34.0&lt;/h4>
&lt;ul>
&lt;li>chore(build): Updating Build dependencies (#613) (#614)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#606)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.04.27.02.25.13.master (#602)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.04.16.22.31.21.master (#600)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.04.06.04.28.03.master (#599)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.04.01.04.34.59.master (#598)&lt;/li>
&lt;li>Updating gradle jar (#597)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.03.26.21.17.26.master (#596)&lt;/li>
&lt;li>Preparing Jenkins ChangeSet/Cause to be contributed to OSS (#595)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.03.23.00.21.14.master (#594)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.03.21.20.18.57.master (#593)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.03.21.20.03.53.master (#592)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.03.21.16.45.24.master (#591)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.03.12.20.07.19.master (#588)&lt;/li>
&lt;li>chore(build): Updating Dockerfile with base image (#590)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.02.26.18.28.26.master (#576)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.02.22.17.19.30.master (#574)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.02.19.20.17.04.master (#572)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.02.07.19.47.17.master (#571)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.02.05.04.13.32.master (#570)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.02.02.19.02.47.master (#569)&lt;/li>
&lt;li>chore: OS Updates (#516)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.01.28.17.58.42.master (#563)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.1 (#560)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.01.05.23.42.17.master (#553)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.01.04.20.38.26.master (#552)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.01.02.18.59.20.master (#551)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.01.01.19.47.05.master (#550)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.12.22.16.57.46.master (#549)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.12.20.18.00.11.master (#547)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.12.20.17.19.58.master (#546)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.12.20.17.03.29.master (#545)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.12.12.09.59.13.master (#544)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.12.05.21.36.31.master (#543)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.12.01.10.13.33.master (#542)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.12.01.09.55.03.master (#541)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.11.28.17.22.52.master (#540)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.11.22.00.04.55.master (#538)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (#524)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.10.04.14.08.12.master (#523)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.10.01.17.22.32.master (#521)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.10.01.17.09.34.master (#520)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.10.01.16.59.10.master (#519)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.10.01.16.48.40.master (#518)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.10.01.16.39.00.master (#517)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---23232340">Armory Front50 - 2.32.3&amp;hellip;2.34.0&lt;/h4>
&lt;ul>
&lt;li>chore(build): Updating Build dependencies (#697) (#698)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.06.18.14.36.38.release-1.34.x (#696)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#685)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.04.29.15.39.38.master (#682)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.04.28.03.20.59.master (#681)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.04.27.00.45.16.master (#680)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.04.19.02.36.56.master (#679)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.04.16.22.32.00.master (#678)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.04.07.23.11.07.master (#677)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.04.06.04.27.40.master (#676)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.04.04.17.04.27.master (#675)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.04.03.15.42.24.master (#674)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.04.01.18.07.35.master (#673)&lt;/li>
&lt;li>Updating Armory commons and gradle jar (#672)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.03.21.16.45.10.master (#671)&lt;/li>
&lt;li>chore(build): Updating Dockerfile with base image (#670)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.03.12.17.35.53.master (#669)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.03.12.16.24.08.master (#668)&lt;/li>
&lt;li>Updating force dependency on com.google.cloud:google-cloud-storage:1.108.0 (#663)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.03.03.17.42.35.master (#661)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.02.27.05.27.41.master (#656)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.02.22.17.18.49.master (#654)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.02.20.17.53.04.master (#653)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.02.08.08.30.49.master (#651)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.02.05.04.13.13.master (#650)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.02.02.19.02.51.master (#649)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.02.01.16.11.56.master (#646)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.1 (#643)&lt;/li>
&lt;li>chore: Front50 OS upgrade (#604)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.01.05.23.42.35.master (#638)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.01.04.20.38.03.master (#637)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.01.02.18.59.32.master (#636)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.01.01.19.49.07.master (#635)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.12.23.17.39.44.master (#634)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.12.12.09.59.08.master (#632)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.12.05.21.35.59.master (#631)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.12.01.16.41.08.master (#630)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.12.01.09.58.07.master (#629)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.11.28.17.22.41.master (#628)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.11.22.00.53.22.master (#627)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.11.22.00.05.06.master (#626)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.11.20.21.37.41.master (#624)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.11.20.17.51.21.master (#623)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.11.14.21.29.17.master (#622)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.11.13.18.26.35.master (#621)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.11.10.21.06.29.master (#620)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.11.10.19.56.12.master (#619)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.11.02.19.58.46.master (#618)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.10.30.00.11.22.master (#617)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.10.20.17.47.46.master (#616)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.10.17.22.54.47.master (#615)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.10.17.20.07.46.master (#614)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---23232340">Armory Fiat - 2.32.3&amp;hellip;2.34.0&lt;/h4>
&lt;ul>
&lt;li>chore(build): Updating Build dependencies (#614)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#606)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.04.27.01.37.20.master (#602)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.04.06.04.25.40.master (#600)&lt;/li>
&lt;li>fix(build): Updating vault addr for gradle build (#597)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.04.01.17.07.04.master (#596)&lt;/li>
&lt;li>Updating gradle jar (#595)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.03.21.16.43.41.master (#594)&lt;/li>
&lt;li>chore(build): Updating Dockerfile with base image (#593)&lt;/li>
&lt;li>Fixing Integration tests (#588)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.02.07.19.26.24.master (#578)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.02.05.04.12.57.master (#577)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.02.02.19.01.47.master (#576)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.02.01.17.05.49.master (#574)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.1 (#570)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.01.05.23.41.30.master (#566)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.01.04.20.37.33.master (#565)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.01.02.18.58.32.master (#564)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.01.01.19.51.44.master (#563)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.12.22.15.44.41.master (#562)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.12.05.21.35.14.master (#561)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.12.01.16.26.11.master (#560)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.12.01.16.18.32.master (#559)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.12.01.16.09.54.master (#558)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.12.01.09.56.22.master (#557)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.11.28.18.18.48.master (#556)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.11.28.17.19.21.master (#555)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.11.22.00.53.43.master (#554)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---23232340">Armory Orca - 2.32.3&amp;hellip;2.34.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2024.07.17.09.05.39.release-1.34.x (#924)&lt;/li>
&lt;li>chore(build): Updating Build dependencies (#911)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.12.02.19.43.release-1.34.x (#899)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.11.23.58.30.release-1.34.x (#898)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.06.11.17.07.47.release-1.34.x (#896)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.05.09.17.57.44.release-1.34.x (#888)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.16.2 (#883)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.29.19.19.52.master (#880)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.29.16.29.08.master (#879)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.27.02.30.03.master (#877)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.25.13.50.22.master (#875)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.24.18.43.23.master (#874)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.19.15.05.09.master (#873)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.18.16.22.33.master (#872)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.17.17.21.57.master (#871)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.16.22.34.47.master (#870)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.16.21.38.54.master (#869)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.16.13.59.24.master (#868)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.15.20.08.34.master (#866)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.15.04.26.46.master (#864)&lt;/li>
&lt;li>Fixing docker task after gradle upgrade (#863)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.06.04.32.03.master (#861)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.01.18.07.02.master (#859)&lt;/li>
&lt;li>Updating Armory commons and gradle jar (#858)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.03.28.16.27.46.master (#857)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.03.22.17.37.27.master (#854)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.03.21.16.50.28.master (#853)&lt;/li>
&lt;li>chore(build): Updating Dockerfile with base image (#851)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.02.23.19.06.04.master (#828)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.02.23.01.17.40.master (#827)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.02.23.00.50.00.master (#826)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.02.22.17.55.18.master (#825)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.02.22.16.05.46.master (#824)&lt;/li>
&lt;li>Changing to a Spinnaker known type (#821)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.02.07.21.28.21.master (#820)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.02.05.21.07.46.master (#819)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.02.05.04.19.15.master (#818)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.02.02.19.08.07.master (#817)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.02.01.18.07.15.master (#814)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.02.01.16.25.27.master (#813)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.02.01.16.11.06.master (#812)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.01.31.18.02.11.master (#811)&lt;/li>
&lt;li>fix(teraformer): Fixing NPE on artifact binding for Terraformer (#809)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.01.29.15.51.20.master (#807)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.1 (#804)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.01.10.17.10.48.master (#800)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.01.08.17.32.19.master (#799)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.01.05.23.47.32.master (#798)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.01.04.20.44.00.master (#797)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.01.03.22.08.01.master (#796)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.01.02.19.05.35.master (#795)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.01.01.19.48.39.master (#794)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.12.23.17.53.55.master (#793)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.12.22.16.59.22.master (#792)&lt;/li>
&lt;li>fix(liquibase): upgraded armory-commons to upgrade liquibase (#790)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.12.12.10.03.50.master (#789)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.12.07.19.22.03.master (#788)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.12.05.21.41.46.master (#787)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.12.01.16.48.30.master (#786)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.12.01.15.06.58.master (#785)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.12.01.09.05.34.master (#784)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.28.17.29.13.master (#783)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.24.14.27.38.master (#782)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.22.16.05.23.master (#781)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.22.00.54.46.master (#780)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.22.00.08.19.master (#779)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.21.22.12.18.master (#778)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.20.22.16.16.master (#775)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.20.19.10.04.master (#774)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.17.17.47.00.master (#773)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.17.16.37.53.master (#772)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.17.16.26.04.master (#771)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.17.16.13.17.master (#770)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.14.21.32.18.master (#769)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.13.18.29.48.master (#768)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.10.19.59.54.master (#767)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.06.18.06.14.master (#761)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.05.19.30.38.master (#760)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.03.16.37.40.master (#759)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.02.20.02.41.master (#758)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.10.30.21.33.51.master (#757)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.10.30.17.58.20.master (#756)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.10.30.03.06.33.master (#755)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.10.27.14.36.30.master (#754)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.10.20.17.53.21.master (#753)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.10.17.22.57.08.master (#749)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.10.17.20.09.56.master (#748)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;ul>
&lt;li>Release notes for OSS Spinnaker &lt;a href="https://spinnaker.io/changelogs/1.33.0-changelog">1.33.0&lt;/a>&lt;/li>
&lt;li>Release notes for OSS Spinnaker &lt;a href="https://spinnaker.io/changelogs/1.34.0-changelog">1.34.0&lt;/a>&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-clouddriver---1343">Spinnaker Clouddriver - 1.34.3&lt;/h4>
&lt;h4 id="spinnaker-echo---1343">Spinnaker Echo - 1.34.3&lt;/h4>
&lt;h4 id="spinnaker-deck---1343">Spinnaker Deck - 1.34.3&lt;/h4>
&lt;h4 id="spinnaker-rosco---1343">Spinnaker Rosco - 1.34.3&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1343">Spinnaker Kayenta - 1.34.3&lt;/h4>
&lt;h4 id="spinnaker-gate---1343">Spinnaker Gate - 1.34.3&lt;/h4>
&lt;h4 id="spinnaker-igor---1343">Spinnaker Igor - 1.34.3&lt;/h4>
&lt;h4 id="spinnaker-front50---1343">Spinnaker Front50 - 1.34.3&lt;/h4>
&lt;h4 id="spinnaker-fiat---1343">Spinnaker Fiat - 1.34.3&lt;/h4>
&lt;h4 id="spinnaker-orca---1343">Spinnaker Orca - 1.34.3&lt;/h4>
&lt;ul>
&lt;li>fix(sqlExecutionRepo): Return compressed columns when enabled for retrieve pipelines with configId (backport #4765) (#4766)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.32.3 Armory Continuous Deployment Release (Spinnaker™ v1.32.4)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-32-3/</link><pubDate>Tue, 14 May 2024 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-32-3/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="20240514-release-notes">2024/05/14 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.32.3, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="aws-lambda-plugin-migrated-to-oss">AWS Lambda plugin migrated to OSS&lt;/h3>
&lt;p>Starting from Armory version 2.32.0 (OSS version 1.32.0), the AWS Lambda plugin has been migrated to OSS codebase.
If you are using the AWS Lambda plugin, you will need to disable/remove it when upgrading to Armory version 2.32.0+ to
avoid compatibility issues.&lt;/p>
&lt;p>Additionally, the AWS Lambda stages are now enabled using the Deck feature flag &lt;code>feature.lambdaAdditionalStages = true;&lt;/code>
as shown in the configuration block below.
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">42
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">43
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">44
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">45
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">46
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">47
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.functions = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> // Enable the AWS Lambda pipeline stages in Deck using the feature flag
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.lambdaAdditionalStages = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">features&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">lambda&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">## Remove the AWS Lambda plugin from the Armory CD configuration.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">#gate:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># spinnaker:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensibility:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># deck-proxy:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># plugins:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentPlugin:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># version: &amp;lt;version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># repositories:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># awsLambdaDeploymentPluginRepo:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># url: https://raw.githubusercontent.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/master/plugins.json &lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">#orca:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># spinnaker:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensibility:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># plugins:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentPlugin:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># version: &amp;lt;version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensions:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentStage:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># repositories:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># awsLambdaDeploymentPluginRepo:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># id: awsLambdaDeploymentPluginRepo&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># url: https://raw.githubusercontent.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/master/plugins.json&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>Related OSS PRs:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/spinnaker/orca/pull/4449">https://github.com/spinnaker/orca/pull/4449&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/spinnaker/deck/pull/9988">https://github.com/spinnaker/deck/pull/9988&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="terraformer-support-for-aws-s3-artifact-store">Terraformer support for AWS S3 Artifact Store&lt;/h3>
&lt;p>OSS Spinnaker 1.32.0 introduced support for &lt;a href="https://spinnaker.io/changelogs/1.32.0-changelog/#artifact-store">artifact storage&lt;/a>
with AWS S3. This feature compresses &lt;code>embdedded/base64&lt;/code> artifacts to &lt;code>remote/base64&lt;/code> and uploads them to an AWS S3 bucket significantly
reducing the artifact size in the execution context.&lt;/p>
&lt;p>Armory version 2.32.0 adds support for the same feature for the Terraform Integration stage.&lt;/p>
&lt;blockquote>
&lt;p>Note: The artifact-store feature is disabled by default. To enable the artifact-store feature the following configuration is required:&lt;/p>
&lt;/blockquote>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-store&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;S3Bucket Region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;S3Bucket Name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When enabling the artifact-store feature it is recommended to deploy the services in this order:&lt;/p>
&lt;ol>
&lt;li>Clouddriver service&lt;/li>
&lt;li>Terraformer service&lt;/li>
&lt;li>Orca service&lt;/li>
&lt;li>Rosco service&lt;/li>
&lt;/ol>
&lt;h3 id="enable-jenkins-job-triggers-for-jobs-located-sub-folders">Enable Jenkins job triggers for jobs located sub-folders&lt;/h3>
&lt;p>When defining a Jenkins job in a sub-folder, the path contains forward slashes. By enabling this feature, Armory CD will be
able to trigger Jenkins jobs located in sub-folders, correctly matching the job path.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">echo&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="pipeline-as-code-bitbucket-fallback-support-for-default-branch">Pipeline As Code: Bitbucket fallback support for default branch&lt;/h3>
&lt;p>By default, Dinghy uses the &lt;code>master&lt;/code> branch in your repository and fallbacks to &lt;code>main&lt;/code> if &lt;code>master&lt;/code> doesn’t exist.
If you wish to use a different branch in your repository, you can configure that using the &lt;code>repoConfig&lt;/code> tag in your YAML configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">dinghy&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repoConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">branch&lt;/span>: some_branch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">provider&lt;/span>: bitbucket-server
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repo&lt;/span>: my-bitbucket-repository
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="performance-improvements-for-the-search-executions-api-operations">Performance improvements for the search executions API operations&lt;/h3>
&lt;p>The search executions API operations have been optimized to improve performance and reduce the time taken to search for pipelines by triggerType or eventId.&lt;/p>
&lt;h3 id="runjob-stage-improvement">RunJob stage improvement&lt;/h3>
&lt;p>RunJob stage now persist any External Log links after the deletion of the pods. This enhancement ensures that the External Log links are available even after the pods are deleted.&lt;/p>
&lt;h3 id="task-view-loading-support-for-paginated-requests">Task View loading support for Paginated requests&lt;/h3>
&lt;p>Task View now supports paginated requests for loading tasks. This enhancement ensures that the Task View loads tasks more efficiently,
avoiding timeouts when loading an application with high number of tasks.&lt;/p>
&lt;p>To enable this feature, set the &lt;code>window.spinnakerSettings.tasksViewLimitPerPage = &amp;lt;number&amp;gt;&lt;/code> flag to the desired number in the &lt;code>settings-local.js&lt;/code> deck profile. For example:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.tasksViewLimitPerPage = 100;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span> &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.32.4-changelog/">Spinnaker v1.32.4&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 7d9e31043c8baa81afb59a2a30aee2235b7e90ab
version: 2.32.3
deck:
commit: 19096fa607fabd0fd8865b18739eab577b4b7a9b
version: 2.32.3
dinghy:
commit: f5b14ffba75721322ada662f2325e80ec86347de
version: 2.32.3
echo:
commit: 9d2abeeea4341e5ba94654925ba6488a9038af3f
version: 2.32.3
fiat:
commit: 5e1839ef81812c439fb37b411bd3b381131c8c40
version: 2.32.3
front50:
commit: ba318cd2c445f14e5d6c3db87fa1658549385403
version: 2.32.3
gate:
commit: c6654ca6e316eef474c59296120d3f9f34eb0bdf
version: 2.32.3
igor:
commit: 9339ab63ab3d85ebcb00131033d19f26ad436f05
version: 2.32.3
kayenta:
commit: bccd150fcc8a7cb7df537ec6269bce5d2843c703
version: 2.32.3
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: ddbe104b0a3e32406c3bac38ea2b8c0c04605825
version: 2.32.3
rosco:
commit: dfe611ffdd2cf9ae7c524fb9970af47350ca5e96
version: 2.32.3
terraformer:
commit: 2dc7666ca2d25acb85ab2b9f8efc864599061c45
version: 2.32.3
timestamp: "2024-05-13 20:39:58"
version: 2.32.3
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-kayenta---23222323">Armory Kayenta - 2.32.2&amp;hellip;2.32.3&lt;/h4>
&lt;h4 id="armory-echo---23222323">Armory Echo - 2.32.2&amp;hellip;2.32.3&lt;/h4>
&lt;h4 id="armory-orca---23222323">Armory Orca - 2.32.2&amp;hellip;2.32.3&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2024.05.07.00.09.39.release-1.32.x (#885)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.05.09.17.58.27.release-1.32.x (#889)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---23222323">Armory Fiat - 2.32.2&amp;hellip;2.32.3&lt;/h4>
&lt;h4 id="armory-gate---23222323">Armory Gate - 2.32.2&amp;hellip;2.32.3&lt;/h4>
&lt;h4 id="terraformer---23222323">Terraformer™ - 2.32.2&amp;hellip;2.32.3&lt;/h4>
&lt;h4 id="armory-clouddriver---23222323">Armory Clouddriver - 2.32.2&amp;hellip;2.32.3&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2024.05.07.00.14.24.release-1.32.x (#1123)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---23222323">Armory Rosco - 2.32.2&amp;hellip;2.32.3&lt;/h4>
&lt;h4 id="armory-deck---23222323">Armory Deck - 2.32.2&amp;hellip;2.32.3&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240507164950.release-1.32.x (#1408)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240509175950.release-1.32.x (#1409)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240510152918.release-1.32.x (#1412)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240513181456.release-1.32.x (#1416)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---23222323">Dinghy™ - 2.32.2&amp;hellip;2.32.3&lt;/h4>
&lt;h4 id="armory-igor---23222323">Armory Igor - 2.32.2&amp;hellip;2.32.3&lt;/h4>
&lt;h4 id="armory-front50---23222323">Armory Front50 - 2.32.2&amp;hellip;2.32.3&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-kayenta---1324">Spinnaker Kayenta - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-echo---1324">Spinnaker Echo - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-orca---1324">Spinnaker Orca - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix(check-pre-condition): CheckPrecondition doesn&amp;rsquo;t evaluate expression correctly after upstream stages get restarted (#4682) (#4719)&lt;/li>
&lt;li>fix(jenkins): Wrong Job name encoding in query params for Artifacts/Properties (#4722) (#4725)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1324">Spinnaker Fiat - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-gate---1324">Spinnaker Gate - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1324">Spinnaker Clouddriver - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix(gcp): Relaxed health check for GCP accounts (#6200) (#6204)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1324">Spinnaker Rosco - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-deck---1324">Spinnaker Deck - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix(lambda): Invoke stage excludedArtifactTypes not including the embedded-artifact type (#10097) (#10102)&lt;/li>
&lt;li>feat(taskView): Implement opt-in paginated request for TaskView (backport #10093) (#10094)&lt;/li>
&lt;li>fix(pipeline): Handle render/validation when stageTimeoutMs is a Spel expression (#10103) (#10106)&lt;/li>
&lt;li>fix(redblack): fixing redblack onchange values (#10107) (#10111)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1324">Spinnaker Igor - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-front50---1324">Spinnaker Front50 - 1.32.4&lt;/h4></description></item><item><title>Continuous-Deployment: v2.32.2 Armory Continuous Deployment Release (Spinnaker™ v1.32.4)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-32-2/</link><pubDate>Tue, 30 Apr 2024 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-32-2/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="20240430-release-notes">2024/04/30 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.32.2, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="aws-lambda-plugin-migrated-to-oss">AWS Lambda plugin migrated to OSS&lt;/h3>
&lt;p>Starting from Armory version 2.32.0 (OSS version 1.32.0), the AWS Lambda plugin has been migrated to OSS codebase.
If you are using the AWS Lambda plugin, you will need to disable/remove it when upgrading to Armory version 2.32.0+ to
avoid compatibility issues.&lt;/p>
&lt;p>Additionally, the AWS Lambda stages are now enabled using the Deck feature flag &lt;code>feature.lambdaAdditionalStages = true;&lt;/code>
as shown in the configuration block below.
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">42
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">43
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">44
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">45
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">46
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">47
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.functions = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> // Enable the AWS Lambda pipeline stages in Deck using the feature flag
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.lambdaAdditionalStages = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">features&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">lambda&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">## Remove the AWS Lambda plugin from the Armory CD configuration.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">#gate:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># spinnaker:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensibility:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># deck-proxy:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># plugins:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentPlugin:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># version: &amp;lt;version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># repositories:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># awsLambdaDeploymentPluginRepo:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># url: https://raw.githubusercontent.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/master/plugins.json &lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">#orca:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># spinnaker:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensibility:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># plugins:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentPlugin:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># version: &amp;lt;version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensions:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentStage:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># repositories:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># awsLambdaDeploymentPluginRepo:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># id: awsLambdaDeploymentPluginRepo&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># url: https://raw.githubusercontent.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/master/plugins.json&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>Related OSS PRs:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/spinnaker/orca/pull/4449">https://github.com/spinnaker/orca/pull/4449&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/spinnaker/deck/pull/9988">https://github.com/spinnaker/deck/pull/9988&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="terraformer-support-for-aws-s3-artifact-store">Terraformer support for AWS S3 Artifact Store&lt;/h3>
&lt;p>OSS Spinnaker 1.32.0 introduced support for &lt;a href="https://spinnaker.io/changelogs/1.32.0-changelog/#artifact-store">artifact storage&lt;/a>
with AWS S3. This feature compresses &lt;code>embdedded/base64&lt;/code> artifacts to &lt;code>remote/base64&lt;/code> and uploads them to an AWS S3 bucket significantly
reducing the artifact size in the execution context.&lt;/p>
&lt;p>Armory version 2.32.0 adds support for the same feature for the Terraform Integration stage.&lt;/p>
&lt;blockquote>
&lt;p>Note: The artifact-store feature is disabled by default. To enable the artifact-store feature the following configuration is required:&lt;/p>
&lt;/blockquote>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-store&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;S3Bucket Region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;S3Bucket Name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When enabling the artifact-store feature it is recommended to deploy the services in this order:&lt;/p>
&lt;ol>
&lt;li>Clouddriver service&lt;/li>
&lt;li>Terraformer service&lt;/li>
&lt;li>Orca service&lt;/li>
&lt;li>Rosco service&lt;/li>
&lt;/ol>
&lt;h3 id="enable-jenkins-job-triggers-for-jobs-located-sub-folders">Enable Jenkins job triggers for jobs located sub-folders&lt;/h3>
&lt;p>When defining a Jenkins job in a sub-folder, the path contains forward slashes. By enabling this feature, Armory CD will be
able to trigger Jenkins jobs located in sub-folders, correctly matching the job path.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">echo&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="pipeline-as-code-bitbucket-fallback-support-for-default-branch">Pipeline As Code: Bitbucket fallback support for default branch&lt;/h3>
&lt;p>By default, Dinghy uses the &lt;code>master&lt;/code> branch in your repository and fallbacks to &lt;code>main&lt;/code> if &lt;code>master&lt;/code> doesn’t exist.
If you wish to use a different branch in your repository, you can configure that using the &lt;code>repoConfig&lt;/code> tag in your YAML configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">dinghy&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repoConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">branch&lt;/span>: some_branch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">provider&lt;/span>: bitbucket-server
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repo&lt;/span>: my-bitbucket-repository
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="performance-improvements-for-the-search-executions-api-operations">Performance improvements for the search executions API operations&lt;/h3>
&lt;p>The search executions API operations have been optimized to improve performance and reduce the time taken to search for pipelines by triggerType or eventId.&lt;/p>
&lt;h3 id="runjob-stage-improvement">RunJob stage improvement&lt;/h3>
&lt;p>RunJob stage now persist any External Log links after the deletion of the pods. This enhancement ensures that the External Log links are available even after the pods are deleted.&lt;/p>
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.32.4-changelog/">Spinnaker v1.32.4&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: b29acea67a40b4145431137ba96454c1d1bf0d73
version: 2.32.2
deck:
commit: 13f331421b292db61f14392e6932880aa5c49f25
version: 2.32.2
dinghy:
commit: f5b14ffba75721322ada662f2325e80ec86347de
version: 2.32.2
echo:
commit: 9d2abeeea4341e5ba94654925ba6488a9038af3f
version: 2.32.2
fiat:
commit: 5e1839ef81812c439fb37b411bd3b381131c8c40
version: 2.32.2
front50:
commit: ba318cd2c445f14e5d6c3db87fa1658549385403
version: 2.32.2
gate:
commit: c6654ca6e316eef474c59296120d3f9f34eb0bdf
version: 2.32.2
igor:
commit: 9339ab63ab3d85ebcb00131033d19f26ad436f05
version: 2.32.2
kayenta:
commit: bccd150fcc8a7cb7df537ec6269bce5d2843c703
version: 2.32.2
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: aa898e512f93921b8786ea790bfe1cb5abc12f2b
version: 2.32.2
rosco:
commit: dfe611ffdd2cf9ae7c524fb9970af47350ca5e96
version: 2.32.2
terraformer:
commit: 2dc7666ca2d25acb85ab2b9f8efc864599061c45
version: 2.32.2
timestamp: "2024-04-25 15:56:08"
version: 2.32.2
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-clouddriver---23212322">Armory Clouddriver - 2.32.1&amp;hellip;2.32.2&lt;/h4>
&lt;h4 id="armory-kayenta---23212322">Armory Kayenta - 2.32.1&amp;hellip;2.32.2&lt;/h4>
&lt;h4 id="armory-echo---23212322">Armory Echo - 2.32.1&amp;hellip;2.32.2&lt;/h4>
&lt;h4 id="armory-deck---23212322">Armory Deck - 2.32.1&amp;hellip;2.32.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240416232157.release-1.32.x (#1400)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240425133704.release-1.32.x (#1403)&lt;/li>
&lt;li>chore(cd): update base deck version to 2024.0.0-20240425135304.release-1.32.x (#1404)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---23212322">Armory Fiat - 2.32.1&amp;hellip;2.32.2&lt;/h4>
&lt;ul>
&lt;li>fix(build): Updating vault addr for gradle build (#597) (#598)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---23212322">Armory Gate - 2.32.1&amp;hellip;2.32.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to gate:2024.03.25.21.57.21.release-1.32.x (#712)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---23212322">Terraformer™ - 2.32.1&amp;hellip;2.32.2&lt;/h4>
&lt;ul>
&lt;li>fix(tf-show): Reverting go-cmd implementation (#551) (#552)&lt;/li>
&lt;li>Build: Removing full history fetch (#553) (#554)&lt;/li>
&lt;li>Updating Dockerfile with harness email list and pull from Dockerhub (#550) (#556)&lt;/li>
&lt;li>Fixing Dockerfile with missing tools (#557) (#558)&lt;/li>
&lt;li>fix(build): Refarctoring Dockerfile to fix build failures (#559) (#560)&lt;/li>
&lt;li>fix(build): Fixing Dockerfile for multi-build process (#561) (#562)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---23212322">Armory Rosco - 2.32.1&amp;hellip;2.32.2&lt;/h4>
&lt;h4 id="dinghy---23212322">Dinghy™ - 2.32.1&amp;hellip;2.32.2&lt;/h4>
&lt;h4 id="armory-orca---23212322">Armory Orca - 2.32.1&amp;hellip;2.32.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2024.03.26.22.19.53.release-1.32.x (#856)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.02.15.59.15.release-1.32.x (#860)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.15.20.03.44.release-1.32.x (#865)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.04.15.22.28.52.release-1.32.x (#867)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---23212322">Armory Igor - 2.32.1&amp;hellip;2.32.2&lt;/h4>
&lt;h4 id="armory-front50---23212322">Armory Front50 - 2.32.1&amp;hellip;2.32.2&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-clouddriver---1324">Spinnaker Clouddriver - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1324">Spinnaker Kayenta - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-echo---1324">Spinnaker Echo - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-deck---1324">Spinnaker Deck - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix(runJobs): Persist External Log links after the deletion of the pods (#10081) (#10084)&lt;/li>
&lt;li>fix(pipelineGraph): Handling exception when requisiteStageRefIds is not defined (#10086) (#10089)&lt;/li>
&lt;li>fix(lambdaStages): Exporting Lambda stages based on the feature flag settings (#10085) (#10092)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1324">Spinnaker Fiat - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-gate---1324">Spinnaker Gate - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix(core): RetrofitError thrown on login (#1737) (#1779)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1324">Spinnaker Rosco - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-orca---1324">Spinnaker Orca - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>feat(servergroup): Allow users to opt-out of the target desired size check when verifying if the instances scaled up or down successfully (#4649) (#4653)&lt;/li>
&lt;li>fix(queue): Fix &lt;code>ZombieExecutionCheckingAgent&lt;/code> to handle queues with more than 100 items (#4648) (#4683)&lt;/li>
&lt;li>fix(explicitRollback): Add configurable timeout for serverGroup lookup from Clouddriver API (#4686) (#4690)&lt;/li>
&lt;li>perf(sql): Optimise searchForPipelinesByTrigger LIMIT and OFFSET SQL query (#4698) (#4699)&lt;/li>
&lt;li>fix(SqlExecutionRepository): fixed bug in sql repository in orca-sql … (backport #4697) (#4701)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1324">Spinnaker Igor - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-front50---1324">Spinnaker Front50 - 1.32.4&lt;/h4></description></item><item><title>Continuous-Deployment: v2.31.1 Armory Continuous Deployment Release (Spinnaker™ v1.31.3)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-31-1/</link><pubDate>Fri, 15 Mar 2024 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-31-1/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="20240315-release-notes">2024/03/15 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.31.1, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="clouddriver-and-spring-cloud">Clouddriver and Spring Cloud&lt;/h3>
&lt;p>The Spring Boot version has been upgraded, introducing a backwards incompatible change to the way configuration is loaded in Spinnaker. Users will need to set the &lt;em>&lt;strong>spring.cloud.config.enabled&lt;/strong>&lt;/em> property to &lt;em>&lt;strong>true&lt;/strong>&lt;/em> in the service settings of Clouddriver to preserve existing behavior. All of the other configuration blocks remain the same.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0 and later&lt;/p>
&lt;h2 id="deprecations">Deprecations&lt;/h2>
&lt;p>Reference &lt;a href="/continuous-deployment/feature-status/deprecations/">Feature Deprecations and end of support&lt;/a>&lt;/p>
&lt;h2 id="early-access-features-enabled-by-default">Early access features enabled by default&lt;/h2>
&lt;h3 id="new-donoteval-spel-expression">&lt;strong>New&lt;/strong>: doNotEval SPeL expression&lt;/h3>
&lt;ul>
&lt;li>This feature introduces a new SpEL &lt;code>doNotEval&lt;/code> method that includes the received JSON object with the &lt;code>NotEvaluableExpression&lt;/code> class.&lt;/li>
&lt;li>The &lt;code>toJson&lt;/code> method (and others in the future) do not evaluate expressions and do not throw exceptions for instances of the &lt;code>NotEvaluableExpression&lt;/code> class.&lt;/li>
&lt;li>See the Spinnaker doc&amp;rsquo;s &lt;a href="https://spinnaker.io/changelogs/1.30.0-changelog/#donoteval-spel-helper">doNotEval SPeL expression changelog note&lt;/a> for more details regarding this feature flag.&lt;/li>
&lt;/ul>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically cancel Jenkins jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">Spinnaker changelog&lt;/a>.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a> in the Spinnaker docs for details&lt;/p>
&lt;h2 id="early-access-features-enabled-manually">Early access features enabled manually&lt;/h2>
&lt;h3 id="new-pipeline-triggers-only-cache-enabled-pipelines-with-enabled-triggers-of-specific-types">&lt;strong>New&lt;/strong>: Pipeline Triggers: only cache enabled pipelines with enabled triggers of specific types&lt;/h3>
&lt;p>Enabling this flag may allow Echo to better utilize its cache, improving overall pipeline trigger performance for frequently used pipelines. See the &lt;a href="https://github.com/spinnaker/echo/pull/1292">pull request&lt;/a> for more information regarding this feature flag.&lt;/p>
&lt;h3 id="new-option-to-disable-healthcheck-for-google-provider">&lt;strong>New&lt;/strong>: Option to disable healthcheck for Google provider&lt;/h3>
&lt;p>Added the option to disable the healthcheck for Google provider similar to AWS and Kubernetes.&lt;/p>
&lt;h3 id="helm-parameters">Helm parameters&lt;/h3>
&lt;p>Spinnaker users baking Helm charts can now use SpEL expression parameters for &lt;strong>API Version&lt;/strong> and &lt;strong>Kubernetes Version&lt;/strong> in the Bake Manifest stage so that they can conditionally deploy different versions of artifacts depending on the target cluster API and Kubernetes versions. To learn more about this exciting new feature, see &lt;a href="https://spinnaker.io/docs/guides/user/kubernetes-v2/deploy-helm/#configure-api-versions-and-a-kubernetes-version">Helm Parameters&lt;/a> in the Spinnaker docs.&lt;/p>
&lt;h3 id="dynamic-rollback-timeout">Dynamic rollback timeout&lt;/h3>
&lt;p>To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck. Add this block to  your &lt;code>orca.yml&lt;/code> file if you want to enable the dynamic rollback timeout feature:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">rollback&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">timeout&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>In Orca, the feature flag overrides the default value rollback timeout - 5 min - with a UI input from the user.&lt;/p>
&lt;p>In Deck, the feature flag enhances the Rollback Cluster stage UI with timeout input.&lt;/p>
&lt;p>&lt;code>window.spinnakerSettings.feature.dynamicRollbackTimeout = true;&lt;/code>&lt;/p>
&lt;p>The default is used if there is no value set in the UI.&lt;/p>
&lt;h3 id="run-pipelines-as-code-with-permissions-scoped-to-a-specific-service-account">Run Pipelines-as-Code with permissions scoped to a specific service account&lt;/h3>
&lt;p>Enhancing Pipelines-as-Code to upsert a pipeline using an Orca call instead of a Front50 call, to mimic the calls from Deck. By default, it is disabled. To enable, set the following in &lt;code>dinghy.yml&lt;/code>:&lt;/p>
&lt;p>&lt;code>upsertPipelineUsingOrcaTaskEnabled: true&lt;/code>&lt;/p>
&lt;h3 id="pipelines-as-code-pr-checks">Pipelines-as-Code PR checks&lt;/h3>
&lt;p>This feature, when enabled, verifies if the author of a commit that changed app parameters has sufficient WRITE permission for that app. You can specify a list of authors whose permissions are not valid. This option’s purpose is to skip permissions checks for bots and tools.&lt;/p>
&lt;p>See &lt;a href="/plugins/pipelines-as-code/install/configure/#permissions-check-for-a-commit">Permissions check for a commit&lt;/a> for details.&lt;/p>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipeline-as-Code to pull Pipelines-as-Code files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos. Use a single repo for application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you are able to use the Terraform template file provider. Open a support ticket if you need this fix.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spring-boot">Spring Boot&lt;/h3>
&lt;p>As part of the modernization effort, Spring Boot has been updated to 2.5. Note that there is no expected change for end users due to this change. Plugin developers may need to update their projects to work with 2.31.0+.&lt;/p>
&lt;h3 id="clouddriver">Clouddriver&lt;/h3>
&lt;ul>
&lt;li>Changed the validation Clouddriver runs before performing operations for the Kubernetes provider. The &lt;em>kinds&lt;/em> and &lt;em>omitKinds&lt;/em> fields on a Kubernetes account definition no longer restrict what Kubernetes kinds can be deployed by Clouddriver; instead, these fields now only control what kinds Clouddriver caches. Armory CD operators should ensure that Kubernetes RBAC controls are used to restrict what kinds Armory CD can deploy.&lt;/li>
&lt;li>Bumped aws-cli to 1.22 to enable FIPS compliance configuration options.&lt;/li>
&lt;/ul>
&lt;h3 id="deck">Deck&lt;/h3>
&lt;ul>
&lt;li>Added Cloud Run manifest functionality in Deck.&lt;/li>
&lt;li>Made the &lt;em>StageFailureMessage&lt;/em> component overridable, which enables the ability to override the red error box in the component of a plugin.&lt;/li>
&lt;li>Added the ability to allow plugins to provide custom icon components.
&lt;ul>
&lt;li>Enables plugins to use the Icon component with a custom icon. Currently the Icon component is limited to only icons defined in &lt;em>iconsByName.&lt;/em>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>For the Helm bake feature, added additional input fields where the user can fill in details of the API&amp;rsquo;s versions. These input fields are not be pre-populated with versions of the target cluster available in the environment. They become part of the bake result. Added &lt;em>API_VERSIONS_ENABLED&lt;/em> env variable flag.&lt;/li>
&lt;/ul>
&lt;h3 id="echo">Echo&lt;/h3>
&lt;ul>
&lt;li>Added a new configuration flag: &lt;em>pipelineCache.filterFront50Pipelines&lt;/em> that defaults to false. When false, Echo caches all pipelines Front50. When true, it only caches enabled pipelines with enabled triggers of specific types. – The types that Echo knows how to trigger, along with some changes to the logic for handling manual executions so they continue to function. This is typically a very small subset of all pipelines.&lt;/li>
&lt;/ul>
&lt;h3 id="fiat">Fiat&lt;/h3>
&lt;ul>
&lt;li>Added the ability to register &lt;em>SpinnakerRetrofitErrorHandler&lt;/em> with each Retrofit.RestAdapter and replaces each RetrofitError catch block with a catch-block using SpinnakerServerException or the appropriate subclass. This change does not alter any of this service&amp;rsquo;s behavior, it merely allows error messages to surface even when the error was thrown in a microservice more than one network call from the service in which the request originated. This is part of an effort to consume &lt;em>SpinnakerRetrofitErrorHandler&lt;/em> in each Spinnaker microservice, as detailed in &lt;a href="https://github.com/spinnaker/spinnaker/issues/5473">this Github issue&lt;/a>.&lt;/li>
&lt;/ul>
&lt;h3 id="front50">Front50&lt;/h3>
&lt;ul>
&lt;li>Added optional query params to the GET /pipelines endpoint.&lt;/li>
&lt;li>Return all pipelines triggered when the given pipeline configuration ID completes with the given status. Initially used in this &lt;a href="https://github.com/spinnaker/orca/pull/4448">PR&lt;/a>.&lt;/li>
&lt;li>Added three new config flags to each object type under service-storage.
&lt;ul>
&lt;li>Two of the three are performance improvements which you can read about in the Spinnaker 1.31.0 &lt;a href="https://spinnaker.io/changelogs/1.31.0-changelog/#front50">changelog&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="kayenta">Kayenta&lt;/h3>
&lt;ul>
&lt;li>Added a storage service migrator.
&lt;ul>
&lt;li>Added the ability to migrate account credentials and account configurations data from S3/GCS to MySQL/PostgreSQL and vice versa&lt;/li>
&lt;li>See the &lt;a href="https://github.com/spinnaker/kayenta/pull/940#issue-1639273840">PR comment&lt;/a> for instructions on how to use these properties (in kayenta-local.yml) to enable the data migration and MySQL or PostgreSQL data source.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="orca">Orca&lt;/h3>
&lt;ul>
&lt;li>Added a new configuration flag: &lt;em>front50.useTriggeredByEndpoint&lt;/em> that defaults to false. When false, Orca queries Front50 for all pipelines each time a pipeline execution completes. When true, Orca only queries for pipelines triggered when a specific pipeline completes which is potentially a very small subset of all pipelines.&lt;/li>
&lt;/ul>
&lt;h3 id="enable-jenkins-job-triggers-for-jobs-located-sub-folders">Enable Jenkins job triggers for jobs located sub-folders&lt;/h3>
&lt;p>When defining a Jenkins job in a sub-folder, the path contains forward slashes. By enabling this feature, Armory CD will be
able to trigger Jenkins jobs located in sub-folders, correctly matching the job path.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">echo&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.31.3-changelog/">Spinnaker v1.31.3&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: cb7a25cc5d610afc67346cf25af98082566e38f6
version: 2.31.1
deck:
commit: 1dd95e4ef5ed631f24253bf917200c3cf52655af
version: 2.31.1
dinghy:
commit: 1bbb649f71d128d167229d72a1c94aa480f99684
version: 2.31.1
echo:
commit: abefa81c6eac597a0db45e33ebaebd464cfdc5df
version: 2.31.1
fiat:
commit: f1079f69f0184aae517680c48283cf9a52c9cf26
version: 2.31.1
front50:
commit: 13814c48944265261af52c3929a4b96fc6c45add
version: 2.31.1
gate:
commit: abfb0120ca617cb5806c7f2082ab4f8e9d7190b2
version: 2.31.1
igor:
commit: a66db7a9037a4ddec4e131ec0b0bb137956a9395
version: 2.31.1
kayenta:
commit: 18b22f0e9ca778f354ec5ac8255d0014ba6339ff
version: 2.31.1
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: e46aab32af0ec1031eb216fc3fa2cf00f957aea0
version: 2.31.1
rosco:
commit: 9812503db8271e32cd5d7960db12441fa8a39494
version: 2.31.1
terraformer:
commit: 50082463ccd180cb4763078671a105ab70dee5e6
version: 2.31.1
timestamp: "2024-03-14 18:17:56"
version: 2.31.1
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-orca---23102311">Armory Orca - 2.31.0&amp;hellip;2.31.1&lt;/h4>
&lt;ul>
&lt;li>Adding aws mysql jdbc drivers (#816)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.4 (#832)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.5 (#835)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.03.11.15.12.53.release-1.31.x (#843)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.03.14.15.56.51.release-1.31.x (#848)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.03.14.16.21.01.release-1.31.x (#849)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---23102311">Terraformer™ - 2.31.0&amp;hellip;2.31.1&lt;/h4>
&lt;h4 id="armory-fiat---23102311">Armory Fiat - 2.31.0&amp;hellip;2.31.1&lt;/h4>
&lt;h4 id="armory-igor---23102311">Armory Igor - 2.31.0&amp;hellip;2.31.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to igor:2024.01.22.15.24.57.release-1.31.x (#555)&lt;/li>
&lt;li>chore: OS Updates (#516) (#567)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.4 (#578)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.5 (#580)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.03.14.15.50.26.release-1.31.x (#589)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---23102311">Armory Deck - 2.31.0&amp;hellip;2.31.1&lt;/h4>
&lt;h4 id="armory-echo---23102311">Armory Echo - 2.31.0&amp;hellip;2.31.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.14.4 (#691)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.5 (#693)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.03.14.14.32.38.release-1.31.x (#701)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.03.14.16.01.06.release-1.31.x (#702)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---23102311">Armory Rosco - 2.31.0&amp;hellip;2.31.1&lt;/h4>
&lt;ul>
&lt;li>fix(ci): Removing integration tests as not stable (backport #627) (#629)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.4 (#645)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.5 (#646)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---23102311">Armory Kayenta - 2.31.0&amp;hellip;2.31.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to kayenta:2023.11.21.08.03.27.release-1.31.x (#499)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.4 (#521)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.5 (#522)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---23102311">Armory Front50 - 2.31.0&amp;hellip;2.31.1&lt;/h4>
&lt;ul>
&lt;li>chore: Front50 OS upgrade (#604) (#640)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.4 (#657)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.5 (#658)&lt;/li>
&lt;li>Updating force dependency on com.google.cloud:google-cloud-storage:1.108.0 (#663) (#664)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---23102311">Armory Clouddriver - 2.31.0&amp;hellip;2.31.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.14.4 (#1081)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.02.27.14.37.01.release-1.31.x (#1082)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.5 (#1085)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---23102311">Armory Gate - 2.31.0&amp;hellip;2.31.1&lt;/h4>
&lt;ul>
&lt;li>chore(gate): Removing Instance registration from Gate (backport #677) (#679)&lt;/li>
&lt;li>fix(header): Fixing header plugin reference in config (backport #684) (#686)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.4 (#701)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.5 (#702)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---23102311">Dinghy™ - 2.31.0&amp;hellip;2.31.1&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): v0.0.0-20240213103436-d0dc889db2c6 (backport #529) (#531)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-orca---1313">Spinnaker Orca - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>feat(servergroup): Allow users to opt-out of the target desired size check when verifying if the instances scaled up or down successfully (#4649) (#4652)&lt;/li>
&lt;li>feat(jenkins): Enable Jenkins job triggers for jobs in sub-folders (#4618) (#4633)&lt;/li>
&lt;li>fix(jenkins): Enable properties and artifacts with job name as query parameter (#4661) (#4677)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1313">Spinnaker Fiat - 1.31.3&lt;/h4>
&lt;h4 id="spinnaker-igor---1313">Spinnaker Igor - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>feat(jenkins): Enable Jenkins job triggers for jobs in sub-folders (#1204) (#1215)&lt;/li>
&lt;li>fix(jenkins): Enable properties and artifacts with job name as query parameter (#1230) (#1240)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1313">Spinnaker Deck - 1.31.3&lt;/h4>
&lt;h4 id="spinnaker-echo---1313">Spinnaker Echo - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>feat(jenkins): Enable Jenkins job triggers for jobs in sub-folders (#1373) (#1380)&lt;/li>
&lt;li>fix(jenkins): Enable properties and artifacts with job name as query parameter (#1393) (#1403)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1313">Spinnaker Rosco - 1.31.3&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1313">Spinnaker Kayenta - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump orcaVersion (#1001)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-front50---1313">Spinnaker Front50 - 1.31.3&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1313">Spinnaker Clouddriver - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>fix: Change the agent type name to not include the account name since this would generate LOTS of tables and cause problems long term (#6158) (#6164)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1313">Spinnaker Gate - 1.31.3&lt;/h4></description></item><item><title>Continuous-Deployment: v2.32.1 Armory Continuous Deployment Release (Spinnaker™ v1.32.4)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-32-1/</link><pubDate>Thu, 14 Mar 2024 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-32-1/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="20240314-release-notes">2024/03/14 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.32.1, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="retrofiterror-thrown-on-login">RetrofitError thrown on login&lt;/h3>
&lt;p>In versions 2.32.0 and 2.32.1 of Spinnaker, there is an issue with x509 authentication that affects certificates without roles. Certificates lacking roles will fail to authenticate in these versions. However, certificates with roles are not affected and will continue to function properly. Users relying on x509 authentication are advised to exercise caution when upgrading to versions 2.32.0 and 2.32.1. It&amp;rsquo;s recommended to wait for version 2.32.2 or a later release, which includes a fix for this issue. Testing the upgrade in a non-production environment is advisable to ensure smooth operation.&lt;/p>
&lt;h3 id="aws-lambda-plugin-migrated-to-oss">AWS Lambda plugin migrated to OSS&lt;/h3>
&lt;p>Starting from Armory version 2.32.0 (OSS version 1.32.0), the AWS Lambda plugin has been migrated to OSS codebase.
If you are using the AWS Lambda plugin, you will need to disable/remove it when upgrading to Armory version 2.32.0+ to
avoid compatibility issues.&lt;/p>
&lt;p>Additionally, the AWS Lambda stages are now enabled using the Deck feature flag &lt;code>feature.lambdaAdditionalStages = true;&lt;/code>
as shown in the configuration block below.
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">42
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">43
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">44
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">45
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">46
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">47
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.functions = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> // Enable the AWS Lambda pipeline stages in Deck using the feature flag
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.lambdaAdditionalStages = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">features&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">lambda&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">## Remove the AWS Lambda plugin from the Armory CD configuration.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">#gate:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># spinnaker:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensibility:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># deck-proxy:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># plugins:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentPlugin:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># version: &amp;lt;version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># repositories:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># awsLambdaDeploymentPluginRepo:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># url: https://raw.githubusercontent.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/master/plugins.json &lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">#orca:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># spinnaker:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensibility:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># plugins:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentPlugin:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># version: &amp;lt;version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensions:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentStage:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># repositories:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># awsLambdaDeploymentPluginRepo:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># id: awsLambdaDeploymentPluginRepo&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># url: https://raw.githubusercontent.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/master/plugins.json&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>Related OSS PRs:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/spinnaker/orca/pull/4449">https://github.com/spinnaker/orca/pull/4449&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/spinnaker/deck/pull/9988">https://github.com/spinnaker/deck/pull/9988&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="retrofiterror-thrown-on-login-1">RetrofitError thrown on login&lt;/h3>
&lt;p>In versions 2.32.0 and 2.32.1 of Spinnaker, there is an issue with x509 authentication that affects certificates without roles.
Certificates lacking roles will fail to authenticate in these versions. However, certificates with roles are not affected and will continue to function properly.
Users relying on x509 authentication are advised to exercise caution when upgrading to versions 2.32.0 and 2.32.1.
It&amp;rsquo;s recommended to update on version 2.32.2 or a later release, which includes a fix for this issue.
Testing the upgrade in a non-production environment is advisable to ensure smooth operation.&lt;/p>
&lt;h3 id="terraform-show-stage-failures">Terraform Show stage failures&lt;/h3>
&lt;p>In Armory version 2.32.0 and 2.32.1, the Terraform Show stage fails with Buffer errors during execution.
It&amp;rsquo;s recommended to update on version 2.32.2 or a later release, which includes a fix for this issue.&lt;/p>
&lt;h3 id="aws-lambda-stages-are-not-visible-in-the-ui">AWS Lambda Stages are not visible in the UI&lt;/h3>
&lt;p>In Armory version 2.32.0 and 2.32.1, the AWS Lambda stages are not visible in the UI due to an issue with the Deck feature flag.
It&amp;rsquo;s recommended to update on version 2.32.2 or a later release, which includes a fix for this issue.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="terraformer-support-for-aws-s3-artifact-store">Terraformer support for AWS S3 Artifact Store&lt;/h3>
&lt;p>OSS Spinnaker 1.32.0 introduced support for &lt;a href="https://spinnaker.io/changelogs/1.32.0-changelog/#artifact-store">artifact storage&lt;/a>
with AWS S3. This feature compresses &lt;code>embdedded/base64&lt;/code> artifacts to &lt;code>remote/base64&lt;/code> and uploads them to an AWS S3 bucket significantly
reducing the artifact size in the execution context.&lt;/p>
&lt;p>Armory version 2.32.0 adds support for the same feature for the Terraform Integration stage.&lt;/p>
&lt;blockquote>
&lt;p>Note: The artifact-store feature is disabled by default. To enable the artifact-store feature the following configuration is required:&lt;/p>
&lt;/blockquote>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-store&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;S3Bucket Region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;S3Bucket Name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When enabling the artifact-store feature it is recommended to deploy the services in this order:&lt;/p>
&lt;ol>
&lt;li>Clouddriver service&lt;/li>
&lt;li>Terraformer service&lt;/li>
&lt;li>Orca service&lt;/li>
&lt;li>Rosco service&lt;/li>
&lt;/ol>
&lt;h3 id="enable-jenkins-job-triggers-for-jobs-located-sub-folders">Enable Jenkins job triggers for jobs located sub-folders&lt;/h3>
&lt;p>When defining a Jenkins job in a sub-folder, the path contains forward slashes. By enabling this feature, Armory CD will be
able to trigger Jenkins jobs located in sub-folders, correctly matching the job path.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">echo&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="pipeline-as-code-bitbucket-fallback-support-for-default-branch">Pipeline As Code: Bitbucket fallback support for default branch&lt;/h3>
&lt;p>By default, Dinghy uses the &lt;code>master&lt;/code> branch in your repository and fallbacks to &lt;code>main&lt;/code> if &lt;code>master&lt;/code> doesn’t exist.
If you wish to use a different branch in your repository, you can configure that using the &lt;code>repoConfig&lt;/code> tag in your YAML configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">dinghy&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repoConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">branch&lt;/span>: some_branch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">provider&lt;/span>: bitbucket-server
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repo&lt;/span>: my-bitbucket-repository
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.32.4-changelog/">Spinnaker v1.32.4&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: b29acea67a40b4145431137ba96454c1d1bf0d73
version: 2.32.1
deck:
commit: e7c8c0982afe9a49ab6c3d230f3aaa38e874eb30
version: 2.32.1
dinghy:
commit: f5b14ffba75721322ada662f2325e80ec86347de
version: 2.32.1
echo:
commit: 9d2abeeea4341e5ba94654925ba6488a9038af3f
version: 2.32.1
fiat:
commit: 3f3fe6bf09708847a0f853bc74f6755920a4312b
version: 2.32.1
front50:
commit: ba318cd2c445f14e5d6c3db87fa1658549385403
version: 2.32.1
gate:
commit: dd64887668a2e2212667ca942e0bfd303aa34c60
version: 2.32.1
igor:
commit: 9339ab63ab3d85ebcb00131033d19f26ad436f05
version: 2.32.1
kayenta:
commit: bccd150fcc8a7cb7df537ec6269bce5d2843c703
version: 2.32.1
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 9d45d87956abd9aad29ef8f9858e602e72d78c3c
version: 2.32.1
rosco:
commit: dfe611ffdd2cf9ae7c524fb9970af47350ca5e96
version: 2.32.1
terraformer:
commit: 6dbdb8b4c277cca4285b4d29d10f6cf3765f7590
version: 2.32.1
timestamp: "2024-03-12 14:53:28"
version: 2.32.1
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-front50---23202321">Armory Front50 - 2.32.0&amp;hellip;2.32.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.15.3 (#659)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.4 (#660)&lt;/li>
&lt;li>Fixing gcs dependencies (#662)&lt;/li>
&lt;li>chore(armory-commons): Update armory-commons to 3.15.4 (#665)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.03.08.16.52.13.release-1.32.x (#666)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2024.03.08.19.18.53.release-1.32.x (#667)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---23202321">Armory Clouddriver - 2.32.0&amp;hellip;2.32.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2024.02.27.14.37.13.release-1.32.x (#1083)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.3 (#1086)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.4 (#1088)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2024.03.08.19.52.28.release-1.32.x (#1091)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---23202321">Armory Deck - 2.32.0&amp;hellip;2.32.1&lt;/h4>
&lt;h4 id="armory-orca---23202321">Armory Orca - 2.32.0&amp;hellip;2.32.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2024.02.27.15.33.36.release-1.32.x (#833)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.3 (#836)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.4 (#837)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.03.08.16.54.30.release-1.32.x (#840)&lt;/li>
&lt;li>chore(cd): update base orca version to 2024.03.08.19.21.42.release-1.32.x (#841)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---23202321">Dinghy™ - 2.32.0&amp;hellip;2.32.1&lt;/h4>
&lt;h4 id="armory-gate---23202321">Armory Gate - 2.32.0&amp;hellip;2.32.1&lt;/h4>
&lt;ul>
&lt;li>fix: esapi CVE scan report (#602) (#700)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.4 (#704)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.03.08.19.17.43.release-1.32.x (#707)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---23202321">Armory Rosco - 2.32.0&amp;hellip;2.32.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.15.3 (#647)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.4 (#648)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2024.03.08.16.49.31.release-1.32.x (#650)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---23202321">Armory Echo - 2.32.0&amp;hellip;2.32.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to echo:2024.02.27.15.33.43.release-1.32.x (#692)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.3 (#694)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.4 (#695)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.03.08.16.50.19.release-1.32.x (#697)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.03.08.19.17.18.release-1.32.x (#698)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---23202321">Terraformer™ - 2.32.0&amp;hellip;2.32.1&lt;/h4>
&lt;ul>
&lt;li>fix(remote/artifacts): Passing user to clouddriver when using remote store (#548) (#549)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---23202321">Armory Fiat - 2.32.0&amp;hellip;2.32.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.15.4 (#587)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2024.03.08.16.48.59.release-1.32.x (#590)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---23202321">Armory Kayenta - 2.32.0&amp;hellip;2.32.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.15.4 (#524)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2024.03.08.20.48.11.release-1.32.x (#525)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---23202321">Armory Igor - 2.32.0&amp;hellip;2.32.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to igor:2024.02.27.15.32.19.release-1.32.x (#579)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.3 (#581)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.4 (#582)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.03.08.16.52.17.release-1.32.x (#584)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.03.08.19.18.39.release-1.32.x (#585)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-front50---1324">Spinnaker Front50 - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1439)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1440)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-clouddriver---1324">Spinnaker Clouddriver - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix: Change the agent type name to not include the account name since this would generate LOTS of tables and cause problems long term (#6158) (#6165)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6169)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#6170)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1324">Spinnaker Deck - 1.32.4&lt;/h4>
&lt;h4 id="spinnaker-orca---1324">Spinnaker Orca - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix(jenkins): Enable properties and artifacts with job name as query parameter (#4661) (#4664)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4667)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4668)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1324">Spinnaker Gate - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1773)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1774)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1324">Spinnaker Rosco - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1077)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1324">Spinnaker Echo - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix(jenkins): Enable properties and artifacts with job name as query parameter (#1393) (#1396)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1398)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1399)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1324">Spinnaker Fiat - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1145)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1324">Spinnaker Kayenta - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump orcaVersion (#1023)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1324">Spinnaker Igor - 1.32.4&lt;/h4>
&lt;ul>
&lt;li>fix(jenkins): Enable properties and artifacts with job name as query parameter (#1230) (#1233)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1235)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1236)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.32.0 Armory Continuous Deployment Feature Release (Spinnaker™ v1.32.3)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-32-0/</link><pubDate>Fri, 09 Feb 2024 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-32-0/</guid><description>
&lt;!--
MAKE SURE TO ADD 'LTS' OR 'FEATURE' TO THE TITLE TO INDICATE RELEASE CATEGORY.
FOR EXAMPLE, "Armory Continuous Deployment Release LTS" or "Armory Continuous Deployment Release Feature" so users know release category and support time period
-->
&lt;h2 id="20240209-release-notes">2024/02/09 release notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you experience production issues after upgrading Armory Continuous Deployment, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory CD 2.32.0, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="retrofiterror-thrown-on-login">RetrofitError thrown on login&lt;/h3>
&lt;p>In versions 2.32.0 and 2.32.1 of Spinnaker, there is an issue with x509 authentication that affects certificates without roles. Certificates lacking roles will fail to authenticate in these versions. However, certificates with roles are not affected and will continue to function properly. Users relying on x509 authentication are advised to exercise caution when upgrading to versions 2.32.0 and 2.32.1. It&amp;rsquo;s recommended to wait for version 2.32.2 or a later release, which includes a fix for this issue. Testing the upgrade in a non-production environment is advisable to ensure smooth operation.&lt;/p>
&lt;h3 id="aws-lambda-plugin-migrated-to-oss">AWS Lambda plugin migrated to OSS&lt;/h3>
&lt;p>Starting from Armory version 2.32.0 (OSS version 1.32.0), the AWS Lambda plugin has been migrated to OSS codebase.
If you are using the AWS Lambda plugin, you will need to disable/remove it when upgrading to Armory version 2.32.0+ to
avoid compatibility issues.&lt;/p>
&lt;p>Additionally, the AWS Lambda stages are now enabled using the Deck feature flag &lt;code>feature.lambdaAdditionalStages = true;&lt;/code>
as shown in the configuration block below.
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="background-color:#3d3f4a">&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">42
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">43
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">44
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">45
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">46
&lt;/span>&lt;span style="white-space:pre;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">47
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">deck&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">settings-local.js&lt;/span>: |&lt;span style="color:#f1fa8c">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.functions = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3d3f4a">&lt;span>&lt;span style="color:#f1fa8c"> // Enable the AWS Lambda pipeline stages in Deck using the feature flag
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> window.spinnakerSettings.feature.lambdaAdditionalStages = true;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c"> ...&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">features&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">lambda&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">## Remove the AWS Lambda plugin from the Armory CD configuration.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">#gate:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># spinnaker:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensibility:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># deck-proxy:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># plugins:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentPlugin:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># version: &amp;lt;version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># repositories:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># awsLambdaDeploymentPluginRepo:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># url: https://raw.githubusercontent.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/master/plugins.json &lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4">#orca:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># spinnaker:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensibility:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># plugins:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentPlugin:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># version: &amp;lt;version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># extensions:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># Aws.LambdaDeploymentStage:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># enabled: true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># repositories:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># awsLambdaDeploymentPluginRepo:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># id: awsLambdaDeploymentPluginRepo&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#6272a4"># url: https://raw.githubusercontent.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/master/plugins.json&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/p>
&lt;p>Related OSS PRs:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/spinnaker/orca/pull/4449">https://github.com/spinnaker/orca/pull/4449&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/spinnaker/deck/pull/9988">https://github.com/spinnaker/deck/pull/9988&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="with-s3-artifact-storage-enabled-terraformer-stages-break-when-authentication-is-set-on-applications">With S3 artifact storage enabled Terraformer stages break when authentication is set on applications&lt;/h3>
&lt;p>The Terraform Integration stage does not support Applications that have RBAC rules enabled (Application roles) with the AWS S3 Artifact Store feature enabled.
Customers that enable the AWS S3 Artifact Store feature and have Application level RBAC rules will experience issues with
the Terraform Integration stage leading to pipeline failures with &lt;code>Failed to fetch artifact&lt;/code> errors, similar to:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>level=error msg=&amp;#34;Error executing job c5b8edb5-7944-49ac-adb4-26875e999030: failed to stage directory for terraform execution:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>There was a problem downloading an artifact type: remote/base64, reference: ref://myapp/c01487060c05cc2c31301c41c5811ca4ea02310e03bd02e879f13f87ec43c221 - failed to fetch artifact.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This will be resolved in 2.32.1 release of Armory CD. Customers are advised to contact Armory Support for assistance on working around this issue on 2.32.0&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="terraformer-support-for-aws-s3-artifact-store">Terraformer support for AWS S3 Artifact Store&lt;/h3>
&lt;p>OSS Spinnaker 1.32.0 introduced support for &lt;a href="https://spinnaker.io/changelogs/1.32.0-changelog/#artifact-store">artifact storage&lt;/a>
with AWS S3. This feature compresses &lt;code>embdedded/base64&lt;/code> artifacts to &lt;code>remote/base64&lt;/code> and uploads them to an AWS S3 bucket significantly
reducing the artifact size in the execution context.&lt;/p>
&lt;p>Armory version 2.32.0 adds support for the same feature for the Terraform Integration stage.&lt;/p>
&lt;blockquote>
&lt;p>Note: The artifact-store feature is disabled by default. To enable the artifact-store feature the following configuration is required:&lt;/p>
&lt;/blockquote>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnaker&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-store&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">s3&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">region&lt;/span>: &amp;lt;S3Bucket Region&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">bucket&lt;/span>: &amp;lt;S3Bucket Name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When enabling the artifact-store feature it is recommended to deploy the services in this order:&lt;/p>
&lt;ol>
&lt;li>Clouddriver service&lt;/li>
&lt;li>Terraformer service&lt;/li>
&lt;li>Orca service&lt;/li>
&lt;li>Rosco service&lt;/li>
&lt;/ol>
&lt;h3 id="enable-jenkins-job-triggers-for-jobs-located-sub-folders">Enable Jenkins job triggers for jobs located sub-folders&lt;/h3>
&lt;p>When defining a Jenkins job in a sub-folder, the path contains forward slashes. By enabling this feature, Armory CD will be
able to trigger Jenkins jobs located in sub-folders, correctly matching the job path.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">echo&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">feature&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">igor&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jobNameAsQueryParameter&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="pipeline-as-code-bitbucket-fallback-support-for-default-branch">Pipeline As Code: Bitbucket fallback support for default branch&lt;/h3>
&lt;p>By default, Dinghy uses the &lt;code>master&lt;/code> branch in your repository and fallbacks to &lt;code>main&lt;/code> if &lt;code>master&lt;/code> doesn’t exist.
If you wish to use a different branch in your repository, you can configure that using the &lt;code>repoConfig&lt;/code> tag in your YAML configuration.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: spinnaker.armory.io/v1alpha2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: SpinnakerService
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: spinnaker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">dinghy&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repoConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">branch&lt;/span>: some_branch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">provider&lt;/span>: bitbucket-server
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">repo&lt;/span>: my-bitbucket-repository
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.32.3-changelog/">Spinnaker v1.32.3&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;details>&lt;summary>Expand to see the BOM&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 27d2b5f64b07ae03a49edac6f3e937b06f15d1bf
version: 2.32.0
deck:
commit: e7c8c0982afe9a49ab6c3d230f3aaa38e874eb30
version: 2.32.0
dinghy:
commit: f5b14ffba75721322ada662f2325e80ec86347de
version: 2.32.0
echo:
commit: d7483b6acd82b7b7a8053a1ec66aa9897930dbea
version: 2.32.0
fiat:
commit: 2c0d010ce00d9519b316e15af734a05835df1048
version: 2.32.0
front50:
commit: c68b97b642a6d9168d361d74dad373e565850f5d
version: 2.32.0
gate:
commit: 1f96d4f238c63798cf34e818760ffb25b3a4b009
version: 2.32.0
igor:
commit: fe40091df01e89e9abc4b6b761002397c4022298
version: 2.32.0
kayenta:
commit: af68e872b806eb49f4f0071187f998f18f04c3c2
version: 2.32.0
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 538b577c932e3c67af7db78f28fa3ee0209e934b
version: 2.32.0
rosco:
commit: 776c66208dd16ad41defad3d0b6d8bcc3dbba24d
version: 2.32.0
terraformer:
commit: 58c3386295676fccf44aa9d38c69e1e0482109ca
version: 2.32.0
timestamp: "2024-02-13 16:21:59"
version: 2.32.0
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-deck---23102320">Armory Deck - 2.31.0&amp;hellip;2.32.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231018060056.release-1.31.x (#1361)&lt;/li>
&lt;li>fix(action): upgrade node version to match OSS (#1356) (#1357)&lt;/li>
&lt;li>chore(alpine): Fix Deck to support ARM processor - SAAS-1953 (backport #1341) (#1355)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#1340) (#1344)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230403112432.master (#1325)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#1340) (#1387)&lt;/li>
&lt;li>chore: OS updates (#1354) (#1388)&lt;/li>
&lt;li>chore(alpine): Fix Deck to support ARM processor - SAAS-1953 (backport #1341) (#1386)&lt;/li>
&lt;li>fix(action): upgrade node version to match OSS (#1356) (#1385)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231024141913.release-1.32.x (#1380)&lt;/li>
&lt;li>chore(oss): Sync oss with release-2.32-x (#1389)&lt;/li>
&lt;li>build(action): pass version to fix build (#1390) (#1391)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231024141913.release-1.32.x (#1395)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---23102320">Armory Fiat - 2.31.0&amp;hellip;2.32.0&lt;/h4>
&lt;ul>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (#540) (#541)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#523) (#525)&lt;/li>
&lt;li>fix(okhttp): Decrypt properties before creating client. (#501) (#504)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#500)&lt;/li>
&lt;li>chore(armory-commons): upgrading armory-commons to 3.14.0-rc.3 (#497)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#523) (#569)&lt;/li>
&lt;li>chore: OS Updates (#532) (#568)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #540) (#567)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.2 (#572)&lt;/li>
&lt;li>chore(cd): update base service version to 2023.08.24.21.54.55.master (#573)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---23102320">Armory Clouddriver - 2.31.0&amp;hellip;2.32.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.20.21.43.26.release-1.31.x (#1030)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #999) (#1004)&lt;/li>
&lt;li>fix: CVE-2023-37920 (#977) (#993)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#971) (#982)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.09.20.19.42.06.release-1.31.x (#981)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.09.08.18.30.47.release-1.31.x (#968)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.08.29.05.45.59.release-1.31.x (#942)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.08.28.17.52.39.release-1.31.x (#941)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.08.28.14.14.40.release-1.31.x (#939)&lt;/li>
&lt;li>fix: AWS CLI pip installation (#918) (#924)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.07.21.18.25.26.release-1.31.x (#915)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#911)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.06.05.20.51.02.master (#885)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.22.08.49.43.release-1.32.x (#1053)&lt;/li>
&lt;li>fix: Enable bootstrap mechanism disabled and deprecated starting with spring cloud 2020.0.0 (#888) (#1061)&lt;/li>
&lt;li>fix: CVE-2023-37920 (#977) (#1062)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #999) (#1064)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.2 (#1068)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---23102320">Armory Front50 - 2.31.0&amp;hellip;2.32.0&lt;/h4>
&lt;ul>
&lt;li>chore(ci): removed aquasec scan action (#590) (#593)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.09.05.18.25.32.release-1.31.x (#584)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.08.29.04.59.48.release-1.31.x (#581)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.08.28.17.17.25.release-1.31.x (#580)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#567)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.07.18.21.40.31.master (#563)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.09.05.18.32.03.release-1.32.x (#633)&lt;/li>
&lt;li>chore: Front50 OS upgrade (#604) (#639)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #612) (#642)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.2 (#645)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---23102320">Armory Orca - 2.31.0&amp;hellip;2.32.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2023.11.07.16.19.53.release-1.31.x (#765)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.06.18.16.18.release-1.31.x (#763)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.10.18.06.01.58.release-1.31.x (#751)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #704) (#746)&lt;/li>
&lt;li>fix(ci): added release.version to docker build (#745)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.10.10.16.08.51.release-1.31.x (#743)&lt;/li>
&lt;li>fix(terraformer): Ignoring logs from the Terraformer stage context (#740) (#742)&lt;/li>
&lt;li>chore(ci): removing docker build and aquasec scans (#715)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.09.22.18.05.39.release-1.31.x (#714)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.09.22.14.30.27.release-1.31.x (#711)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#695) (#705)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.08.29.05.07.45.release-1.31.x (#688)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.08.28.20.04.29.release-1.31.x (#687)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.07.21.15.43.04.release-1.31.x (#675)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#671)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.01.22.15.58.master (#459)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.07.00.08.45.release-1.32.x (#791)&lt;/li>
&lt;li>fix(terraformer): Ignoring logs from the Terraformer stage context (#740) (#802)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #704) (#801)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.2 (#805)&lt;/li>
&lt;li>chore(build): pull latest changes from master (#806)&lt;/li>
&lt;li>fix(terraformer): Fixing NPE for artifact binding (#810)&lt;/li>
&lt;li>Update RunTerraformTask.java&lt;/li>
&lt;li>feat(jenkins): Enable Jenkins job triggers for jobs in sub-folders (#822)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---23102320">Armory Kayenta - 2.31.0&amp;hellip;2.32.0&lt;/h4>
&lt;ul>
&lt;li>Update buildx for build gradle and action workflow (#484) (#485)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#469) (#470)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#456)&lt;/li>
&lt;li>fix: Remove whitespace when defining spring properties (#437)&lt;/li>
&lt;li>chore: OS Updates (#476) (#508)&lt;/li>
&lt;li>fix(dev): renaming package of main class to run kayenta locally (#452) (#509)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.11.22.03.11.43.master (#493) (#510)&lt;/li>
&lt;li>chore(feat): Support ARM arch - SAAS-1953 (backport #484) (#507)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.2 (#513)&lt;/li>
&lt;li>Update gradle.properties (#514)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---23102320">Armory Echo - 2.31.0&amp;hellip;2.32.0&lt;/h4>
&lt;ul>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #637) (#640)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.08.29.05.00.24.release-1.31.x (#612)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#618) (#621)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#601)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.02.20.21.09.15.master (#539)&lt;/li>
&lt;li>fix: Upgrade grpc-netty-shaded to address the service initialization failure issue. (#647) (#649) (#672)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #637) (#674)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.09.27.02.27.14.master (backport #630) (#673)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.2 (#677)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.08.29.18.12.32.master (#678)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2024.02.13.00.21.09.release-1.32.x (#684)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---23102320">Armory Gate - 2.31.0&amp;hellip;2.32.0&lt;/h4>
&lt;ul>
&lt;li>chore(ci): removed aquasec scan action (#616) (#621)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.09.01.15.43.46.release-1.31.x (#607)&lt;/li>
&lt;li>fix: esapi CVE scan report (#602) (#605)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.08.29.05.01.02.release-1.31.x (#604)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.08.28.17.15.40.release-1.31.x (#600)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#586)&lt;/li>
&lt;li>chore(armory-commons): upgrading armory-commons to 3.14.0-rc.3 (#583)&lt;/li>
&lt;li>Updating Banner plugin to 0.2.0 (#630) (#672)&lt;/li>
&lt;li>chore: OS Upgrades (#629) (#671)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #640) (#670)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.09.01.15.44.50.release-1.32.x (#664)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.2 (#676)&lt;/li>
&lt;li>Removing Instance registration from Gate (#677) (#678)&lt;/li>
&lt;li>Fixnig armory header plugin (#681)&lt;/li>
&lt;li>fix(header): Fix local repo for Armory.Header (#682)&lt;/li>
&lt;li>Fixing header plugin reference (#684) (#685)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2024.02.01.16.29.20.release-1.32.x (#689)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---23102320">Terraformer™ - 2.31.0&amp;hellip;2.32.0&lt;/h4>
&lt;ul>
&lt;li>fix(cd): Fix terraform build fail (#529) (#530)&lt;/li>
&lt;li>Minor changes for Terraform tag name (#527) (#528)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #525) (#526)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#510) (#511)&lt;/li>
&lt;li>chore(ci): removing aquasec scans on push (#517) (#518)&lt;/li>
&lt;li>chore(alpine): Update alpine version (#497)&lt;/li>
&lt;li>chore(cd): Merge master to release-2.32.x branch (#540)&lt;/li>
&lt;li>fix(remote/artifacts): Adding support to fetch remote artifacts from clouddriver (#543) (#544)&lt;/li>
&lt;li>fixes for planfile (#545) (#546)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---23102320">Armory Igor - 2.31.0&amp;hellip;2.32.0&lt;/h4>
&lt;ul>
&lt;li>fix: NoSuchMethodError exception in JenkinsClient. (#377) (#529)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (#524) (#525)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#495) (#507)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#475)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.09.14.15.59.58.master (#368)&lt;/li>
&lt;li>fix: NoSuchMethodError exception in JenkinsClient. (#377) (#558)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #524) (#557)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2024.01.22.15.24.36.release-1.32.x (#554)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.2 (#562)&lt;/li>
&lt;li>chore: OS Updates (#516) (#566)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---23102320">Dinghy™ - 2.31.0&amp;hellip;2.32.0&lt;/h4>
&lt;ul>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #504) (#511)&lt;/li>
&lt;li>chore(ci): removing aquasec scans for any push (#497) (#498)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#489) (#491)&lt;/li>
&lt;li>chore(alpine): Upgrade alpine version (#481)&lt;/li>
&lt;li>chore(ci): removing aquasec scans for any push (#497) (#519)&lt;/li>
&lt;li>fix: Builds (backport #512) (#521)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #504) (#520)&lt;/li>
&lt;li>feat(stash): bumped oss dinghy version to introduce upgraded downloaded logic for BitBucket/Stash (#524)&lt;/li>
&lt;li>chore(dependencies): updated oss dinghy version (backport #525) (#527)&lt;/li>
&lt;li>chore(dependencies): v0.0.0-20240213103436-d0dc889db2c6 (backport #529) (#532)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---23102320">Armory Rosco - 2.31.0&amp;hellip;2.32.0&lt;/h4>
&lt;ul>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #584) (#587)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.08.28.17.15.52.release-1.31.x (#562)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#565) (#567)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#552)&lt;/li>
&lt;li>chore(armory-commons): upgrading armory-commons to 3.14.0-rc.3 (#549)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.15.2 (#626)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #584) (#622)&lt;/li>
&lt;li>fix(ci): Removing integration tests as not stable (#627) (#628)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.10.18.06.02.52.release-1.32.x (#616)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-deck---1323">Spinnaker Deck - 1.32.3&lt;/h4>
&lt;ul>
&lt;li>feat(helm/bake): Add additional input fields where we can fill in details of the APIs versions (#10036) (#10047)&lt;/li>
&lt;li>fix: Scaling bounds should parse float not int (#10026) (#10032)&lt;/li>
&lt;li>Revert &amp;ldquo;fix(core): conditionally hide expression evaluation warning messages (#9771)&amp;rdquo; (#10021) (#10023)&lt;/li>
&lt;li>Publish packages to NPM (#10000)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#10002)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#10004)&lt;/li>
&lt;li>feat(lambda): Migrate Lambda plugin to OSS (#9988)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#10006)&lt;/li>
&lt;li>chore(build): upgrade to Gradle 7.6.1 (#10008)&lt;/li>
&lt;li>fix(core/pipeline): Resolved issue getting during pipeline save with spaces in pipeline name. (#10009)&lt;/li>
&lt;li>feat(cdevents-webhooks) : CDEvents Webhook type in Automated Triggers type (#9977)&lt;/li>
&lt;li>fix(security): don&amp;rsquo;t expose server information on error pages (#10010)&lt;/li>
&lt;li>feat(artifacts): Add support for artifact store views and calls (#10011)&lt;/li>
&lt;li>feat(kubernetes): Add Deck stage for Rolling Restart (#10012)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#10013)&lt;/li>
&lt;li>feat(stages/bakeManifests): add helmfile support (#9998)&lt;/li>
&lt;li>Publish packages to NPM (#10005)&lt;/li>
&lt;li>feat(core): set Cancellation Reason to be expanded by default (#10018)&lt;/li>
&lt;li>Revert &amp;ldquo;fix(core): conditionally hide expression evaluation warning messages (#9771)&amp;rdquo; (#10021) (#10022)&lt;/li>
&lt;li>fix: Scaling bounds should parse float not int (#10026) (#10033)&lt;/li>
&lt;li>fix(kubernetes): export rollout restart stage so it&amp;rsquo;s actually available for use (#10037) (#10043)&lt;/li>
&lt;li>feat(helm/bake): Add additional input fields where we can fill in details of the APIs versions (#10036) (#10048)&lt;/li>
&lt;li>fix(lambda): available Runtimes shared between Deploy stage and Functions tab (#10050) (#10054)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1323">Spinnaker Fiat - 1.32.3&lt;/h4>
&lt;ul>
&lt;li>fix(ssl): Removed unused deprecated okHttpClientConfig from retrofitConfig. (#1082) (#1092)&lt;/li>
&lt;li>fix(roles-sync): fix CallableCache&amp;rsquo;s NPE exception for caching synchronization strategy (#1077) (#1081)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1057)&lt;/li>
&lt;li>feat(fiat): Suppress application details when updating permissions (#1060)&lt;/li>
&lt;li>feat(ldap): Support for handling DN based multiloaded roles (#1058)&lt;/li>
&lt;li>chore(build): upgrade gradle to 7.6.1 (#1059)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1061)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1062)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1063)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1064)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1065)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1067)&lt;/li>
&lt;li>chore(preview): remove preview feature of version ordering (VERSION_ORDERING_V2) for gradle dependencies (#1068)&lt;/li>
&lt;li>feat(fiat) - Cache fetched LDAP roles to speed up role syncs. (#1066)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1070)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1071)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1072)&lt;/li>
&lt;li>refactor(tests): convert junit4 based testcases to junit5 and clean up in fiat (#1073)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1074)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1075)&lt;/li>
&lt;li>fix(ldap): fixed sporadic occurrence of InvalidCacheLoadException (#1076)&lt;/li>
&lt;li>fix(roles-sync): fix CallableCache&amp;rsquo;s NPE exception for caching synchronization strategy (#1077)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1078)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1083)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1084)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1085)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1086)&lt;/li>
&lt;li>fix(ssl): Removed unused deprecated okHttpClientConfig from retrofitConfig. (#1082)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1093)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1094)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-clouddriver---1323">Spinnaker Clouddriver - 1.32.3&lt;/h4>
&lt;ul>
&lt;li>fix(cats): passing incorrect redis config into interval provider (#6105) (#6108)&lt;/li>
&lt;li>fix(lambda): Lambda is leaking threads on agent refreshes. remove the custom threadpool (#6048) (#6049)&lt;/li>
&lt;li>fix: Fix docker build in GHA by removing some of the GHA tools (#6033) (#6036)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#6011)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6010)&lt;/li>
&lt;li>fix(builds): Backport flag for installing aws cli (#6009)&lt;/li>
&lt;li>fix(gce): remove the duplicate cache attribute &amp;ldquo;subnet&amp;rdquo; and update the test (#5977) (#5984)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5962)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5964)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#5965)&lt;/li>
&lt;li>chore(build): upgrade gradle to 7.6.1 (#5966)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5967)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5968)&lt;/li>
&lt;li>feat: Add the possibility to update the default handler for the Global Resource Property Registry. (#5963)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#5969)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#5970)&lt;/li>
&lt;li>chore(preview): remove preview feature of version ordering (VERSION_ORDERING_V2) for gradle dependencies (#5974)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5975)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5978)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5979)&lt;/li>
&lt;li>feat(artifacts): Adds ArtifactStore logic to clouddriver (#5976)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5980)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5981)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#5983)&lt;/li>
&lt;li>perf(cache): Optimise heap usage in SqlCache (#5982)&lt;/li>
&lt;li>fix(gce): remove the duplicate cache attribute &amp;ldquo;subnet&amp;rdquo; and update the test (#5977)&lt;/li>
&lt;li>refactor(tests): convert junit4 based testcases to junit5 and clean up in clouddriver (#5987)&lt;/li>
&lt;li>feat(integration-tests): increase kubernetes integration test coverage (#5990)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5991)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5992)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5993)&lt;/li>
&lt;li>chore(kubectl): upgrade kubectl version from 1.20.6 to 1.22.17 (#5953)&lt;/li>
&lt;li>chore(upgrades): Upgrade Ubuntu to latest release and fixes aws cli i… (#5996)&lt;/li>
&lt;li>chore(awscli): Bump AWS CLI and fix install of AWS CLI (#5995)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5994)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6005)&lt;/li>
&lt;li>chore(os): Update download location and get the kubectl the same between ubuntu and slim (#6003)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#6012)&lt;/li>
&lt;li>fix: Fix docker build in GHA by removing some of the GHA tools (#6033) (#6037)&lt;/li>
&lt;li>fix(lambda): Lambda is leaking threads on agent refreshes. remove the custom threadpool (#6048) (#6050)&lt;/li>
&lt;li>fix(cats): passing incorrect redis config into interval provider (#6105) (#6109)&lt;/li>
&lt;li>feat(gcp): provide a configurable option to bypass gcp account health check. (backport #6093) (#6096)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-front50---1323">Spinnaker Front50 - 1.32.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#1300)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1299)&lt;/li>
&lt;li>fix(core): skip existing items with null ids in StorageServiceSupport.fetchAllItemsOptimized (#1279) (#1281)&lt;/li>
&lt;li>fix(core): tolerate items with null ids (#1276) (#1280)&lt;/li>
&lt;li>fix(web): check trigger.getType() for null before invoking equals method (#1277) (#1278)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1264)&lt;/li>
&lt;li>chore(build): upgrade gradle to 7.6.1 (#1265)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1266)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1267)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1268)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1269)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1270)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1271)&lt;/li>
&lt;li>chore(preview): remove preview feature of version ordering (VERSION_ORDERING_V2) for gradle dependencies (#1272)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1273)&lt;/li>
&lt;li>feat(sql): add configuration property sql.healthIntervalMillis (#1275)&lt;/li>
&lt;li>fix(core): tolerate items with null ids (#1276)&lt;/li>
&lt;li>fix(web): check trigger.getType() for null before invoking equals method (#1277)&lt;/li>
&lt;li>fix(core): skip existing items with null ids in StorageServiceSupport.fetchAllItemsOptimized (#1279)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1282)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1283)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1284)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1285)&lt;/li>
&lt;li>chore(build): update default containers to JRE 17 (#1274)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1286)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1287)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1288)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1289)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1290)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1297)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1298)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1301)&lt;/li>
&lt;li>fix(dependency): fix dependency version leak of google-api-services-storage from kork in front50-web (#1302) (#1385)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1323">Spinnaker Orca - 1.32.3&lt;/h4>
&lt;ul>
&lt;li>fix(artifacts): Parent and child pipeline artifact resolution (backport #4575) (#4582)&lt;/li>
&lt;li>feat(helm/bake): Add additional input fields where we can fill in details of the APIs versions (#4546) (#4564)&lt;/li>
&lt;li>fix(front50): teach MonitorPipelineTask to handle missing/null execution ids (#4555) (#4561)&lt;/li>
&lt;li>fix(vpc): add data annotation to vpc (#4534) (#4537)&lt;/li>
&lt;li>fix: duplicate entry exception for correlation_ids table. (#4521) (#4531)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4514)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4513)&lt;/li>
&lt;li>fix(artifacts): consider requiredArtifactIds in expected artifacts when trigger is pipeline type (#4489) (#4491)&lt;/li>
&lt;li>fix(queue): fix ability to cancel a zombied execution (#4473) (#4477)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4464)&lt;/li>
&lt;li>feat(mpt-v1): Support for jinja expressions in stages (#4462)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4465)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#4466)&lt;/li>
&lt;li>chore(build): upgrade gradle to 7.6.1 (#4463)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4467)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#4468)&lt;/li>
&lt;li>feat(lambda): migrate stages from AWS Lambda plugin to OSS (#4449)&lt;/li>
&lt;li>fix(queue): Manual Judgment propagation (#4469)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#4472)&lt;/li>
&lt;li>fix(queue): fix ability to cancel a zombied execution (#4473)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4480)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4482)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4483)&lt;/li>
&lt;li>feat(artifacts): Add ArtifactStore to orca (#4481)&lt;/li>
&lt;li>refactor(tests): convert junit4 based test cases to junit5, clean up and unpin mockito in orca (#4484)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4485)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4486)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#4488)&lt;/li>
&lt;li>feat(orca-bakery/manfests): add helmfile support (#4460)&lt;/li>
&lt;li>fix(artifacts): consider requiredArtifactIds in expected artifacts when trigger is pipeline type (#4489)&lt;/li>
&lt;li>feat(provider/google): Added cloudrun manifest functionality in orca. (#4396)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4499)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4500)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4501)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4502)&lt;/li>
&lt;li>fix(expressions): fetch labels from actually deployed manfiest (#4508)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4511)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4512)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4515)&lt;/li>
&lt;li>fix: duplicate entry exception for correlation_ids table. (#4521) (#4530)&lt;/li>
&lt;li>fix(vpc): add data annotation to vpc (#4534) (#4538)&lt;/li>
&lt;li>fix(front50): teach MonitorPipelineTask to handle missing/null execution ids (#4555) (#4559)&lt;/li>
&lt;li>feat(helm/bake): Add additional input fields where we can fill in details of the APIs versions (#4546) (#4565)&lt;/li>
&lt;li>fix(artifacts): Parent and child pipeline artifact resolution (backport #4575) (#4583)&lt;/li>
&lt;li>fix(artifacts): Automated triggers with artifact constraints are broken if you have 2 or more of the same type (backport #4579) (#4588)&lt;/li>
&lt;li>feat(jenkins): Enable Jenkins job triggers for jobs in sub-folders (#4618) (#4634)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1323">Spinnaker Kayenta - 1.32.3&lt;/h4>
&lt;ul>
&lt;li>fix(orca): Fix orca contributors status. (backport #977) (#980)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#966)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#968)&lt;/li>
&lt;li>chore(build): upgrade gradle to 7.6.1 (#967)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#969)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#970)&lt;/li>
&lt;li>chore(preview): remove preview feature of version ordering (VERSION_ORDERING_V2) for gradle dependencies (#971)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#973)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#974)&lt;/li>
&lt;li>feat(exceptions): Add SpinnakerRetrofitErrorHandler and replace RetrofitError catch blocks (#972)&lt;/li>
&lt;li>fix(orca): Fix orca contributors status. (#977)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#984)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#1002)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1323">Spinnaker Echo - 1.32.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1333)&lt;/li>
&lt;li>fix(gha): Fix github status log and add tests (#1316) (#1318)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1299)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1301)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1302)&lt;/li>
&lt;li>chore(build): upgrade gradle to 7.6.1 (#1300)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1303)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1304)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1305)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1306)&lt;/li>
&lt;li>chore(preview): remove preview feature of version ordering (VERSION_ORDERING_V2) for gradle dependencies (#1307)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1308)&lt;/li>
&lt;li>feat(cdevents-webhooks) : Consume CDEvents webhook API implementation (#1290)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1309)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1310)&lt;/li>
&lt;li>refactor(tests): convert junit4 based testcases to junit5 and clean up in echo (#1311)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1312)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1313)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1314)&lt;/li>
&lt;li>fix(gha): Fix github status log and add tests (#1316)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1321)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1322)&lt;/li>
&lt;li>feat(rest/circuit-breaker): Optimize Circuit Breaker in Rest Events (#1315)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1323)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1324)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1331)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1332)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1335)&lt;/li>
&lt;li>feat(jenkins): Enable Jenkins job triggers for jobs in sub-folders (#1373) (#1381)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1323">Spinnaker Gate - 1.32.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#1697)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1695)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1662)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1664)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1665)&lt;/li>
&lt;li>chore(build): upgrade gradle to 7.6.1 (#1660)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1666)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1667)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1668)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1669)&lt;/li>
&lt;li>cleanup(preview): remove preview feature of version ordering (VERSION_ORDERING_V2) for gradle dependencies (#1670)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1672)&lt;/li>
&lt;li>fix(retrofit): use OkHttpClient from Kork (#1673)&lt;/li>
&lt;li>Migration of various Groovy classes to Java (#1663)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1675)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1676)&lt;/li>
&lt;li>feat(artifacts): Add new ArtifactStore endpoints (#1674)&lt;/li>
&lt;li>refactor(tests): convert junit4 based test cases to junit5 and clean up in gate (#1677)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1678)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1679)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1680)&lt;/li>
&lt;li>chore(cleanup): Removing un-implemented dead code (#1681)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1682)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1683)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1684)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1685)&lt;/li>
&lt;li>feat(cdevents-webhooks) : Consume CDEvents webhook API implementation (#1651)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1692)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1693)&lt;/li>
&lt;li>fix(md): update env model to have post deploy (#1576)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1698)&lt;/li>
&lt;li>fix(cachingFilter: Allow disabling the content caching filter (#1699) (#1702)&lt;/li>
&lt;li>fix: Fix git trigger issue caused by a misconfig of the object mapper when creating the echo retrofit service (#1756) (#1757)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1323">Spinnaker Igor - 1.32.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1162)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1134)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1137)&lt;/li>
&lt;li>chore(build): upgrade gradle to 7.6.1 (#1135)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1136)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1138)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1139)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1140)&lt;/li>
&lt;li>chore(preview): remove preview feature of version ordering (VERSION_ORDERING_V2) for gradle dependencies (#1141)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1142)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1144)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1145)&lt;/li>
&lt;li>refactor(tests): convert junit4 based testcases to junit5 and clean up in igor (#1146)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1147)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1148)&lt;/li>
&lt;li>chore(build): default containers to JRE 17 (#1143)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1149)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1150)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1151)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1152)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1153)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1160)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1161)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1164)&lt;/li>
&lt;li>fix(java17): remove long-deprecated import that doesn&amp;rsquo;t work with JRE17 (#1170) (#1171)&lt;/li>
&lt;li>fix(java17): add Jackson converter to RestAdapters to avoid Gson (#1174) (#1176)&lt;/li>
&lt;li>fix(java17): stop accessing private fields, run tests using JRE17 (#1173) (#1175)&lt;/li>
&lt;li>feat(jenkins): Enable Jenkins job triggers for jobs in sub-folders (#1204) (#1216)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1323">Spinnaker Rosco - 1.32.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1014)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#988)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#990)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#991)&lt;/li>
&lt;li>chore(build): upgrade gradle to 7.6.1 (#989)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#992)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#993)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#994)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#995)&lt;/li>
&lt;li>chore(preview): remove preview feature of version ordering (VERSION_ORDERING_V2) for gradle dependencies (#996)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#997)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#999)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1000)&lt;/li>
&lt;li>feat(artifacts): Add ArtifactStore to rosco (#998)&lt;/li>
&lt;li>refactor(tests): convert junit4 based testcases to junit5 and clean up in rosco (#1001)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1002)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1003)&lt;/li>
&lt;li>feat(manifests/helmfile): add helmfile templating engine (#986)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1004)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1005)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1006)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1007)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1008)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1012)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1013)&lt;/li>
&lt;li>feat(helm/bake): Add additional input fields where we can fill in details of the APIs versions (#1020) (#1031)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.31.0 Armory Continuous Deployment Feature Release (Spinnaker™ v1.31.3)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-31-0/</link><pubDate>Mon, 11 Dec 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-31-0/</guid><description>
&lt;h2 id="20231205-release-notes">2023/12/05 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Armory CD, roll back to a previous working version and report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.31.0, use Armory Operator 1.8.6 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="plugin-compatibility">Plugin compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.30.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="/plugins/plugin-k8s-custom-resource-status/">Kubernetes Custom Resource Status&lt;/a>&lt;/td>
&lt;td>3.0.x&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="clouddriver-and-spring-cloud">Clouddriver and Spring Cloud&lt;/h3>
&lt;p>The Spring Boot version has been upgraded, introducing a backwards incompatible change to the way configuration is loaded in Spinnaker. Users will need to set the &lt;em>&lt;strong>spring.cloud.config.enabled&lt;/strong>&lt;/em> property to &lt;em>&lt;strong>true&lt;/strong>&lt;/em> in the service settings of Clouddriver to preserve existing behavior. All of the other configuration blocks remain the same.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0 and later&lt;/p>
&lt;h2 id="deprecations">Deprecations&lt;/h2>
&lt;p>Reference &lt;a href="/continuous-deployment/feature-status/deprecations/">Feature Deprecations and end of support&lt;/a>&lt;/p>
&lt;h2 id="early-access-features-enabled-by-default">Early access features enabled by default&lt;/h2>
&lt;h3 id="new-donoteval-spel-expression">&lt;strong>New&lt;/strong>: doNotEval SPeL expression&lt;/h3>
&lt;ul>
&lt;li>This feature introduces a new SpEL &lt;code>doNotEval&lt;/code> method that includes the received JSON object with the &lt;code>NotEvaluableExpression&lt;/code> class.&lt;/li>
&lt;li>The &lt;code>toJson&lt;/code> method (and others in the future) do not evaluate expressions and do not throw exceptions for instances of the &lt;code>NotEvaluableExpression&lt;/code> class.&lt;/li>
&lt;li>See the Spinnaker doc&amp;rsquo;s &lt;a href="https://spinnaker.io/changelogs/1.30.0-changelog/#donoteval-spel-helper">doNotEval SPeL expression changelog note&lt;/a> for more details regarding this feature flag.&lt;/li>
&lt;/ul>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically cancel Jenkins jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">Spinnaker changelog&lt;/a>.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a> in the Spinnaker docs for details&lt;/p>
&lt;h2 id="early-access-features-enabled-manually">Early access features enabled manually&lt;/h2>
&lt;h3 id="new-pipeline-triggers-only-cache-enabled-pipelines-with-enabled-triggers-of-specific-types">&lt;strong>New&lt;/strong>: Pipeline Triggers: only cache enabled pipelines with enabled triggers of specific types&lt;/h3>
&lt;p>Enabling this flag may allow Echo to better utilize its cache, improving overall pipeline trigger performance for frequently used pipelines. See the &lt;a href="https://github.com/spinnaker/echo/pull/1292">pull request&lt;/a> for more information regarding this feature flag.&lt;/p>
&lt;h3 id="new-option-to-disable-healthcheck-for-google-provider">&lt;strong>New&lt;/strong>: Option to disable healthcheck for Google provider&lt;/h3>
&lt;p>Added the option to disable the healthcheck for Google provider similar to AWS and Kubernetes.&lt;/p>
&lt;h3 id="helm-parameters">Helm parameters&lt;/h3>
&lt;p>Spinnaker users baking Helm charts can now use SpEL expression parameters for &lt;strong>API Version&lt;/strong> and &lt;strong>Kubernetes Version&lt;/strong> in the Bake Manifest stage so that they can conditionally deploy different versions of artifacts depending on the target cluster API and Kubernetes versions. To learn more about this exciting new feature, see &lt;a href="https://spinnaker.io/docs/guides/user/kubernetes-v2/deploy-helm/#configure-api-versions-and-a-kubernetes-version">Helm Parameters&lt;/a> in the Spinnaker docs.&lt;/p>
&lt;h3 id="dynamic-rollback-timeout">Dynamic rollback timeout&lt;/h3>
&lt;p>To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck. Add this block to  your &lt;code>orca.yml&lt;/code> file if you want to enable the dynamic rollback timeout feature:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">rollback&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">timeout&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>In Orca, the feature flag overrides the default value rollback timeout - 5 min - with a UI input from the user.&lt;/p>
&lt;p>In Deck, the feature flag enhances the Rollback Cluster stage UI with timeout input.&lt;/p>
&lt;p>&lt;code>window.spinnakerSettings.feature.dynamicRollbackTimeout = true;&lt;/code>&lt;/p>
&lt;p>The default is used if there is no value set in the UI.&lt;/p>
&lt;h3 id="run-pipelines-as-code-with-permissions-scoped-to-a-specific-service-account">Run Pipelines-as-Code with permissions scoped to a specific service account&lt;/h3>
&lt;p>Enhancing Pipelines-as-Code to upsert a pipeline using an Orca call instead of a Front50 call, to mimic the calls from Deck. By default, it is disabled. To enable, set the following in &lt;code>dinghy.yml&lt;/code>:&lt;/p>
&lt;p>&lt;code>upsertPipelineUsingOrcaTaskEnabled: true&lt;/code>&lt;/p>
&lt;h3 id="pipelines-as-code-pr-checks">Pipelines-as-Code PR checks&lt;/h3>
&lt;p>This feature, when enabled, verifies if the author of a commit that changed app parameters has sufficient WRITE permission for that app. You can specify a list of authors whose permissions are not valid. This option’s purpose is to skip permissions checks for bots and tools.&lt;/p>
&lt;p>See &lt;a href="/plugins/pipelines-as-code/install/configure/#permissions-check-for-a-commit">Permissions check for a commit&lt;/a> for details.&lt;/p>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipeline-as-Code to pull Pipelines-as-Code files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos. Use a single repo for application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you are able to use the Terraform template file provider. Open a support ticket if you need this fix.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spring-boot">Spring Boot&lt;/h3>
&lt;p>As part of the modernization effort, Spring Boot has been updated to 2.5. Note that there is no expected change for end users due to this change. Plugin developers may need to update their projects to work with 2.31.0+.&lt;/p>
&lt;h3 id="clouddriver">Clouddriver&lt;/h3>
&lt;ul>
&lt;li>Changed the validation Clouddriver runs before performing operations for the Kubernetes provider. The &lt;em>kinds&lt;/em> and &lt;em>omitKinds&lt;/em> fields on a Kubernetes account definition no longer restrict what Kubernetes kinds can be deployed by Clouddriver; instead, these fields now only control what kinds Clouddriver caches. Armory CD operators should ensure that Kubernetes RBAC controls are used to restrict what kinds Armory CD can deploy.&lt;/li>
&lt;li>Bumped aws-cli to 1.22 to enable FIPS compliance configuration options.&lt;/li>
&lt;/ul>
&lt;h3 id="deck">Deck&lt;/h3>
&lt;ul>
&lt;li>Added Cloud Run manifest functionality in Deck.&lt;/li>
&lt;li>Made the &lt;em>StageFailureMessage&lt;/em> component overridable, which enables the ability to override the red error box in the component of a plugin.&lt;/li>
&lt;li>Added the ability to allow plugins to provide custom icon components.
&lt;ul>
&lt;li>Enables plugins to use the Icon component with a custom icon. Currently the Icon component is limited to only icons defined in &lt;em>iconsByName.&lt;/em>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>For the Helm bake feature, added additional input fields where the user can fill in details of the API&amp;rsquo;s versions. These input fields are not be pre-populated with versions of the target cluster available in the environment. They become part of the bake result. Added &lt;em>API_VERSIONS_ENABLED&lt;/em> env variable flag.&lt;/li>
&lt;/ul>
&lt;h3 id="echo">Echo&lt;/h3>
&lt;ul>
&lt;li>Added a new configuration flag: &lt;em>pipelineCache.filterFront50Pipelines&lt;/em> that defaults to false. When false, Echo caches all pipelines Front50. When true, it only caches enabled pipelines with enabled triggers of specific types. – The types that Echo knows how to trigger, along with some changes to the logic for handling manual executions so they continue to function. This is typically a very small subset of all pipelines.&lt;/li>
&lt;/ul>
&lt;h3 id="fiat">Fiat&lt;/h3>
&lt;ul>
&lt;li>Added the ability to register &lt;em>SpinnakerRetrofitErrorHandler&lt;/em> with each Retrofit.RestAdapter and replaces each RetrofitError catch block with a catch-block using SpinnakerServerException or the appropriate subclass. This change does not alter any of this service&amp;rsquo;s behavior, it merely allows error messages to surface even when the error was thrown in a microservice more than one network call from the service in which the request originated. This is part of an effort to consume &lt;em>SpinnakerRetrofitErrorHandler&lt;/em> in each Spinnaker microservice, as detailed in &lt;a href="https://github.com/spinnaker/spinnaker/issues/5473">this Github issue&lt;/a>.&lt;/li>
&lt;/ul>
&lt;h3 id="front50">Front50&lt;/h3>
&lt;ul>
&lt;li>Added optional query params to the GET /pipelines endpoint.&lt;/li>
&lt;li>Return all pipelines triggered when the given pipeline configuration ID completes with the given status. Initially used in this &lt;a href="https://github.com/spinnaker/orca/pull/4448">PR&lt;/a>.&lt;/li>
&lt;li>Added three new config flags to each object type under service-storage.
&lt;ul>
&lt;li>Two of the three are performance improvements which you can read about in the Spinnaker 1.31.0 &lt;a href="https://spinnaker.io/changelogs/1.31.0-changelog/#front50">changelog&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="kayenta">Kayenta&lt;/h3>
&lt;ul>
&lt;li>Added a storage service migrator.
&lt;ul>
&lt;li>Added the ability to migrate account credentials and account configurations data from S3/GCS to MySQL/PostgreSQL and vice versa&lt;/li>
&lt;li>See the &lt;a href="https://github.com/spinnaker/kayenta/pull/940#issue-1639273840">PR comment&lt;/a> for instructions on how to use these properties (in kayenta-local.yml) to enable the data migration and MySQL or PostgreSQL data source.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="orca">Orca&lt;/h3>
&lt;ul>
&lt;li>Added a new configuration flag: &lt;em>front50.useTriggeredByEndpoint&lt;/em> that defaults to false. When false, Orca queries Front50 for all pipelines each time a pipeline execution completes. When true, Orca only queries for pipelines triggered when a specific pipeline completes which is potentially a very small subset of all pipelines.&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.31.3-changelog/">Spinnaker v1.31.3&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 1db66b13244c3d25b48e767992c5bb7730772271
version: 2.31.0
deck:
commit: 1dd95e4ef5ed631f24253bf917200c3cf52655af
version: 2.31.0
dinghy:
commit: 362913af0c5d00eee5ea3b157274cabbef920c43
version: 2.31.0
echo:
commit: a700e1233d1eca8642b54413c87860737662d4c2
version: 2.31.0
fiat:
commit: f1079f69f0184aae517680c48283cf9a52c9cf26
version: 2.31.0
front50:
commit: 5db553c003950174757e6438ba024b6a4b51c9ed
version: 2.31.0
gate:
commit: 1a4fc24d3d4870c375f6bc10fe6892c6b39a789e
version: 2.31.0
igor:
commit: e94591b4172e7d75ce94db23ebed5deb756af92d
version: 2.31.0
kayenta:
commit: 4a528f19b704cc0f25295daef56d27b78a84a25e
version: 2.31.0
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: b1a6fe2247ef18f6239b3ab90b101197c57314c4
version: 2.31.0
rosco:
commit: a30386ed64ae490e4788fe80b453528731a923bd
version: 2.31.0
terraformer:
commit: 50082463ccd180cb4763078671a105ab70dee5e6
version: 2.31.0
timestamp: "2023-11-23 15:13:30"
version: 2.31.0
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-gate---23002310">Armory Gate - 2.30.0&amp;hellip;2.31.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#559)&lt;/li>
&lt;li>fix(tests): Fix JUnit tests (#558)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.04.07.01.27.28.release-1.30.x (#553)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#554)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#537)&lt;/li>
&lt;li>revert(header): update plugins.json with newest header version (#484)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.04.17.18.59.00.master (#557)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.05.02.16.41.37.master (#560)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.05.02.16.49.52.master (#561)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.05.12.14.58.29.master (#562)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.05.18.17.05.02.master (#564)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.05.25.21.38.35.master (#565)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.06.02.20.01.30.master (#566)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.06.05.20.11.44.master (#567)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.06.12.23.37.52.master (#568)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.06.13.05.17.05.master (#569)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.06.16.09.48.18.master (#570)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.06.17.10.05.03.master (#571)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.06.26.17.12.12.master (#572)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.06.28.20.06.44.master (#573)&lt;/li>
&lt;li>chore(armory-commons): upgrading armory-commons to 3.14.0-rc.3 (#583)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#586)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.08.28.17.15.40.release-1.31.x (#600)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.08.29.05.01.02.release-1.31.x (#604)&lt;/li>
&lt;li>fix: esapi CVE scan report (#602) (#605)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.09.01.15.43.46.release-1.31.x (#607)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#616) (#621)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (#640) (#641)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---23002310">Armory Front50 - 2.30.0&amp;hellip;2.31.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to front50:2023.05.22.19.11.48.release-1.30.x (#548)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#538)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.04.27.18.45.08.release-1.30.x (#541)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#533)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#514)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.04.07.01.28.32.release-1.30.x (#532)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#434)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.04.05.11.05.16.master (#529)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.04.21.14.37.41.master (#540)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.05.02.05.06.08.master (#542)&lt;/li>
&lt;li>chore(armory-commons): upgrading armory-commons to 3.14.0-rc.3 (#564)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.07.18.21.40.31.master (#563)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#567)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.08.28.17.17.25.release-1.31.x (#580)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.08.29.04.59.48.release-1.31.x (#581)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.09.05.18.25.32.release-1.31.x (#584)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#590) (#593)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (#612) (#613)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---23002310">Armory Rosco - 2.30.0&amp;hellip;2.31.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#528)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.04.05.11.40.04.release-1.30.x (#523)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#508)&lt;/li>
&lt;li>feat(dockerfile): add Kustomize 4 to Dockerfiles (#434)&lt;/li>
&lt;li>fix(rosco): added missing rosco-core dependency and upgrading embedded redis for tests (#456)&lt;/li>
&lt;li>chore(packer): copied templates and config from oss (#457)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.11.10.16.54.39.master (#458)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.11.15.19.33.07.master (#459)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.11.16.17.50.30.master (#460)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.11.17.15.34.54.master (#461)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.11.18.18.20.19.master (#462)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.11.19.01.16.08.master (#463)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.11.19.16.30.34.master (#464)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.11.22.14.31.01.master (#466)&lt;/li>
&lt;li>chore(azure): copying config from oss, upgrading centos (#465)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.11.24.15.56.54.master (#469)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.12.08.14.30.19.master (#472)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.12.08.20.50.39.master (#473)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.12.09.00.48.23.master (#476)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.12.09.02.57.42.master (#477)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.12.09.06.01.36.master (#478)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.12.09.17.27.05.master (#479)&lt;/li>
&lt;li>fix(build): Add javax.validation dependency (#480)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.12.15.16.52.34.master (#481)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.12.22.04.48.59.master (#482)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.01.12.21.47.32.master (#485)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.01.23.17.14.17.master (#487)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.01.27.00.40.58.master (#488)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.01.30.16.28.07.master (#489)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.02.08.19.46.54.master (#490)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.02.08.22.19.58.master (#491)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.02.08.23.30.28.master (#492)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.02.09.00.57.01.master (#493)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.02.09.06.34.37.master (#494)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.02.16.16.48.52.master (#495)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.02.20.19.50.47.master (#496)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.9.5 (#505)&lt;/li>
&lt;li>chore(armory-commons): upgrading armory-commons to 3.14.0-rc.3 (#549)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#552)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#565) (#567)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.08.28.17.15.52.release-1.31.x (#562)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #584) (#587)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.10.18.06.02.57.release-1.31.x (#590)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---23002310">Terraformer™ - 2.30.0&amp;hellip;2.31.0&lt;/h4>
&lt;ul>
&lt;li>chore(alpine): Update alpine version (#497)&lt;/li>
&lt;li>chore(ci): removing aquasec scans on push (#517) (#518)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#510) (#511)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #525) (#526)&lt;/li>
&lt;li>Minor changes for Terraform tag name (#527) (#528)&lt;/li>
&lt;li>fix(cd): Fix terraform build fail (#529) (#530)&lt;/li>
&lt;li>Fix build cd artifact erro, no space lef on the device (#531) (#532)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---23002310">Armory Clouddriver - 2.30.0&amp;hellip;2.31.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2023.05.30.19.45.40.release-1.30.x (#882)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#874)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.4 (#869)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#867)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#861)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.07.02.16.05.release-1.30.x (#860)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.06.10.03.44.release-1.30.x (#859)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.05.14.02.06.release-1.30.x (#856)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.24.23.48.26.release-1.30.x (#839)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#837)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.18.00.04.47.master (#818)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.21.00.31.33.master (#819)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.21.19.49.36.master (#820)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.22.20.00.03.master (#824)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.23.21.01.03.master (#827)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.24.23.48.26.master (#828)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.29.20.10.21.master (#834)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.30.15.20.14.master (#835)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.30.16.52.08.master (#838)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.31.19.56.29.master (#840)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.31.22.03.23.master (#841)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.31.22.50.54.master (#842)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.01.00.13.01.master (#843)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.01.03.32.05.master (#845)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.01.04.39.47.master (#846)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.01.05.26.14.master (#847)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.01.06.46.40.master (#848)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.02.04.27.18.master (#849)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.02.05.24.21.master (#850)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.02.06.10.44.master (#851)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.03.15.54.26.master (#852)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.03.17.05.33.master (#853)&lt;/li>
&lt;li>Bumped aws-cli to 1.22 for FIPS compliance (#854)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.05.11.43.53.master (#855)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.05.21.36.10.master (#857)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.17.19.36.00.master (#865)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.05.02.05.46.22.master (#871)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.05.04.00.42.22.master (#872)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.05.11.19.04.48.master (#873)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.05.18.17.41.51.master (#875)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.05.19.23.07.09.master (#876)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.05.25.22.18.08.master (#877)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.05.30.17.49.03.master (#879)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.06.02.19.20.42.master (#884)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.06.05.20.51.02.master (#885)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#911)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.07.21.18.25.26.release-1.31.x (#915)&lt;/li>
&lt;li>fix: AWS CLI pip installation (#918) (#924)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.08.28.14.14.40.release-1.31.x (#939)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.08.28.17.52.39.release-1.31.x (#941)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.08.29.05.45.59.release-1.31.x (#942)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.09.08.18.30.47.release-1.31.x (#968)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.09.20.19.42.06.release-1.31.x (#981)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#971) (#982)&lt;/li>
&lt;li>fix: CVE-2023-37920 (#977) (#993)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #999) (#1004)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.20.21.43.26.release-1.31.x (#1030)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.11.22.08.49.50.release-1.31.x (#1037)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---23002310">Dinghy™ - 2.30.0&amp;hellip;2.31.0&lt;/h4>
&lt;ul>
&lt;li>chore(ci): removed aquasec scan action (#489) (#491)&lt;/li>
&lt;li>chore(ci): removing aquasec scans for any push (#497) (#498)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #504) (#511)&lt;/li>
&lt;li>fix: Builds (#512) (#515)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---23002310">Armory Fiat - 2.30.0&amp;hellip;2.31.0&lt;/h4>
&lt;ul>
&lt;li>fix(okhttp): Decrypt properties before creating client. (#501)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.07.21.15.45.35.release-1.30.x (#496)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#478)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#475)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#471)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.04.05.11.36.40.release-1.30.x (#470)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#456)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.02.20.19.50.58.master (#437)&lt;/li>
&lt;li>chore(armory-commons): upgrading armory-commons to 3.14.0-rc.3 (#497)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#500)&lt;/li>
&lt;li>fix(okhttp): Decrypt properties before creating client. (#501) (#504)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#523) (#525)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (#540) (#541)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.08.28.17.11.42.release-1.31.x (#519)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---23002310">Armory Igor - 2.30.0&amp;hellip;2.31.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#452)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#449)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.04.07.01.27.38.release-1.30.x (#448)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#431)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.09.14.15.59.58.master (#368)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#475)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#495) (#507)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (#524) (#525)&lt;/li>
&lt;li>fix: NoSuchMethodError exception in JenkinsClient. (#377) (#529)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.08.29.04.59.43.release-1.31.x (#488)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---23002310">Armory Echo - 2.30.0&amp;hellip;2.31.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#583)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.4 (#580)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#578)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#575)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.04.07.01.30.15.release-1.30.x (#573)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.04.05.11.38.02.release-1.30.x (#572)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#558)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.02.20.21.09.15.master (#539)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#601)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#618) (#621)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.08.29.05.00.24.release-1.31.x (#612)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #637) (#640)&lt;/li>
&lt;li>fix: Upgrade grpc-netty-shaded to address the service initialization failure issue. (#647) (#648)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---23002310">Armory Kayenta - 2.30.0&amp;hellip;2.31.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#439)&lt;/li>
&lt;li>fix: Remove whitespace when defining spring properties (#437) (#438)&lt;/li>
&lt;li>fix(config): add missing exclude spring config (#435) (#436)&lt;/li>
&lt;li>fix: Update path of main class. (#432)&lt;/li>
&lt;li>chore(refactoring): refactored setting default system properties (#429)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#428)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.04.13.23.42.23.release-1.30.x (#427)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#424)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.01.24.16.10.35.master (#387)&lt;/li>
&lt;li>fix: Update path of main class. (#432) (#433)&lt;/li>
&lt;li>fix(config): add missing exclude spring config (#435)&lt;/li>
&lt;li>fix: Remove whitespace when defining spring properties (#437)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#456)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#469) (#470)&lt;/li>
&lt;li>Update buildx for build gradle and action workflow (#484) (#485)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.08.29.15.29.59.release-1.31.x (#464)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---23002310">Armory Deck - 2.30.0&amp;hellip;2.31.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230621174859.release-1.30.x (#1335)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230321144223.release-1.30.x (#1331)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230220132814.master (#1300)&lt;/li>
&lt;li>chore(alpine): Upgrade alpine version (#1302)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230308202716.master (#1305)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230309231023.master (#1306)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230310120132.master (#1307)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230315120430.master (#1308)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230321144223.master (#1309)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230329194405.master (#1310)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230330162636.master (#1311)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230331215046.master (#1312)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230331223352.master (#1313)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230331235900.master (#1317)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230401002322.master (#1318)&lt;/li>
&lt;li>chore(build): only run security scans on PR merge (#1319)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230401030506.master (#1320)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230402044748.master (#1322)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230402051752.master (#1323)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230402053723.master (#1324)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230403112432.master (#1325)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#1340) (#1344)&lt;/li>
&lt;li>chore(alpine): Fix Deck to support ARM processor - SAAS-1953 (backport #1341) (#1355)&lt;/li>
&lt;li>fix(action): upgrade node version to match OSS (#1356) (#1357)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231018060056.release-1.31.x (#1361)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231024154256.release-1.31.x (#1363)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---23002310">Armory Orca - 2.30.0&amp;hellip;2.31.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2023.06.29.14.44.25.release-1.30.x (#658)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.06.20.15.55.26.release-1.30.x (#656)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.05.18.14.27.05.release-1.30.x (#644)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#642)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.4 (#637)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#635)&lt;/li>
&lt;li>chore(build): Backport missing build changes (#634)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#630)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.04.07.01.52.33.release-1.30.x (#629)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#613)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.01.22.15.58.master (#459)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.14.2 (#671)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.07.21.15.43.04.release-1.31.x (#675)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.08.28.20.04.29.release-1.31.x (#687)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.08.29.05.07.45.release-1.31.x (#688)&lt;/li>
&lt;li>chore(ci): removed aquasec scan action (#695) (#705)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.09.22.14.30.27.release-1.31.x (#711)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.09.22.18.05.39.release-1.31.x (#714)&lt;/li>
&lt;li>chore(ci): removing docker build and aquasec scans (#715)&lt;/li>
&lt;li>fix(terraformer): Ignoring logs from the Terraformer stage context (#740) (#742)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.10.10.16.08.51.release-1.31.x (#743)&lt;/li>
&lt;li>fix(ci): added release.version to docker build (#745)&lt;/li>
&lt;li>chore(feat): Support ARM with docker buildx - SAAS-1953 (backport #704) (#746)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.10.18.06.01.58.release-1.31.x (#751)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.06.18.16.18.release-1.31.x (#763)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.07.16.19.53.release-1.31.x (#765)&lt;/li>
&lt;li>chore(build): trigger 2.31.x build (#777)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-gate---1313">Spinnaker Gate - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1649)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1630)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1634)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1635)&lt;/li>
&lt;li>chore(gha): update to docker/login-action@v2 to stay up to date (#1636)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1637)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1638)&lt;/li>
&lt;li>feat(gha): configure dependabot to keep github actions up to date (#1639)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/auth from 0 to 1 (#1641)&lt;/li>
&lt;li>chore(deps): bump actions/checkout from 2 to 3 (#1642)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/upload-cloud-storage from 0 to 1 (#1644)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 3 to 4 (#1640)&lt;/li>
&lt;li>chore(deps): bump actions/setup-java from 2 to 3 (#1643)&lt;/li>
&lt;li>chore(gha): replace action for creating github releases (#1645)&lt;/li>
&lt;li>chore(gha): replace deprecated set-output commands with environment files (#1646)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1647)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1648)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1652)&lt;/li>
&lt;li>fix(web/test): move GateConfigAuthenticatedRequestFilterTest out of the com.netflix.spinnaker.gate.config package (#1655)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1654)&lt;/li>
&lt;li>fix(web/test): remove race in FunctionalSpec (#1657)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1658)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1659)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1661)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1662)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1695)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1697)&lt;/li>
&lt;li>fix(cachingFilter: Allow disabling the content caching filter (#1699) (#1701)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-front50---1313">Spinnaker Front50 - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>fix(validator): Fix NPE when traffic management is not defined in a deployment manifest (#1253) (#1254)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1248)&lt;/li>
&lt;li>chore(dependencies): don&amp;rsquo;t create an autobump PR for halyard on a front50 release branch (#1115) (#1247)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1246)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1225)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1229)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1230)&lt;/li>
&lt;li>chore(gha): update to docker/login-action@v2 to stay up to date (#1231)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1232)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1233)&lt;/li>
&lt;li>feat(gha): configure dependabot to keep github actions up to date (#1234)&lt;/li>
&lt;li>chore(deps): bump actions/checkout from 2 to 3 (#1235)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/upload-cloud-storage from 0 to 1 (#1238)&lt;/li>
&lt;li>chore(deps): bump peter-evans/repository-dispatch from 1 to 2 (#1236)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 3 to 4 (#1237)&lt;/li>
&lt;li>chore(deps): bump actions/setup-java from 2 to 3 (#1239)&lt;/li>
&lt;li>chore(gha): replace action for creating github releases (#1240)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/auth from 0 to 1 (#1242)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1243)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1244)&lt;/li>
&lt;li>chore(gha): replace deprecated set-output commands with environment files (#1241)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1245)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1250)&lt;/li>
&lt;li>feat(core + sql): Optimize cache refresh (#1249)&lt;/li>
&lt;li>feat(pipelines): add new GET /pipelines/triggeredBy/{id:.+}/{status} endpoint (#1251)&lt;/li>
&lt;li>feat(web): add optional query params to the GET /pipelines endpoint (#1252)&lt;/li>
&lt;li>fix(validator): Fix NPE when traffic management is not defined in a deployment manifest (#1253)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1255)&lt;/li>
&lt;li>perf(sql): add index on last_modified_at (#1256)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1258)&lt;/li>
&lt;li>refactor(deprecation): remove deprecated gradle constructs/features from front50 in order to upgrade gradle 7 (#1257)&lt;/li>
&lt;li>fix(migrations): do not migrate redblack pipelines without stages (#1259)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1262)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1263)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1264)&lt;/li>
&lt;li>fix(web): check trigger.getType() for null before invoking equals method (#1277) (#1278)&lt;/li>
&lt;li>fix(core): tolerate items with null ids (#1276) (#1280)&lt;/li>
&lt;li>fix(core): skip existing items with null ids in StorageServiceSupport.fetchAllItemsOptimized (#1279) (#1281)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1299)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1300)&lt;/li>
&lt;li>fix(dependency): fix dependency version leak of google-api-services-storage from kork in front50-web (#1302) (#1384)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1313">Spinnaker Rosco - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>fix(manifests/test): add org.junit.jupiter:junit-jupiter-engine as a test runtime dependency (#963)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#964)&lt;/li>
&lt;li>chore(gha): update to docker/login-action@v2 to stay up to date (#965)&lt;/li>
&lt;li>chore(gha): replace action for creating github releases (#966)&lt;/li>
&lt;li>fix(gha): remove empty env block (#967)&lt;/li>
&lt;li>fix(gha): remove refs/tags from github release names (#968)&lt;/li>
&lt;li>chore(gha): use checkout@v3 to stay up to date (#969)&lt;/li>
&lt;li>feat(gha): configure dependabot to keep github actions up to date (#970)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/auth from 0 to 1 (#972)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 3 to 4 (#973)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/upload-cloud-storage from 0 to 1 (#971)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#974)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#975)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#976)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#977)&lt;/li>
&lt;li>refactor(retrofit2): Use retrofit2.x client instead of retrofit1.9 for artifact fetch from clouddriver (#953)&lt;/li>
&lt;li>refactor(web/test): V2BakeryControllerWithClouddriverServiceTest cleanup (#979)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#981)&lt;/li>
&lt;li>refactor(retrofit2): use retrofit2 client to clouddriver API calls instead of retrofit1.9 (#980)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#982)&lt;/li>
&lt;li>refactor(manifests): use new methods in manifest exception handling (#983)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#985)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#987)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#988)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1014)&lt;/li>
&lt;li>feat(helm/bake): Add additional input fields where we can fill in details of the APIs versions (#1020) (#1030)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-clouddriver---1313">Spinnaker Clouddriver - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#5943)&lt;/li>
&lt;li>fix(metrics): revert metric names to pre-Java (#5936) (#5942)&lt;/li>
&lt;li>chore(dependencies): don&amp;rsquo;t create an autobump PR for halyard on a clouddriver release branch (#5677) (#5939)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5938)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5912)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#5918)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5919)&lt;/li>
&lt;li>chore(gha): update to docker/login-action@v2 to stay up to date (#5920)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5921)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5922)&lt;/li>
&lt;li>feat(gha): configure dependabot to keep github actions up to date (#5923)&lt;/li>
&lt;li>chore(deps): bump actions/cache from 2 to 3 (#5926)&lt;/li>
&lt;li>chore(deps): bump actions/checkout from 2 to 3 (#5924)&lt;/li>
&lt;li>chore(gha): replace action for creating github releases (#5929)&lt;/li>
&lt;li>chore(deps): bump peter-evans/repository-dispatch from 1 to 2 (#5925)&lt;/li>
&lt;li>chore(deps): bump actions/setup-java from 2 to 3 (#5928)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 3 to 4 (#5927)&lt;/li>
&lt;li>chore(gha): replace deprecated set-output commands with environment files (#5930)&lt;/li>
&lt;li>chore(deps): bump github/codeql-action from 1 to 2 (#5932)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/upload-cloud-storage from 0 to 1 (#5931)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/auth from 0 to 1 (#5933)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5934)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5935)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5937)&lt;/li>
&lt;li>fix(metrics): revert metric names to pre-Java (#5936)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5944)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5946)&lt;/li>
&lt;li>fix(aws): standardize retry logic in LocalFileUserDataProvider.isLegacyUdf (#5947)&lt;/li>
&lt;li>feat(kubernetes): skip checking and allow operations on all kinds (#5949)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#5951)&lt;/li>
&lt;li>refactor(deprecation): remove deprecated gradle constructs/features from clouddriver in order to upgrade gradle 7 (#5950)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5952)&lt;/li>
&lt;li>fix(aws): ECS Service Tagging broken (#5954)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5961)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5962)&lt;/li>
&lt;li>fix(gce): remove the duplicate cache attribute &amp;ldquo;subnet&amp;rdquo; and update the test (#5977) (#5984)&lt;/li>
&lt;li>fix(builds): Backport flag for installing aws cli (#6009)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6010)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#6011)&lt;/li>
&lt;li>fix: Fix docker build in GHA by removing some of the GHA tools (#6033) (#6036)&lt;/li>
&lt;li>fix(lambda): Lambda is leaking threads on agent refreshes. remove the custom threadpool (#6048) (#6049)&lt;/li>
&lt;li>fix(cats): passing incorrect redis config into interval provider (#6105) (#6108)&lt;/li>
&lt;li>feat(gcp): provide a configurable option to bypass gcp account health check. (backport #6093) (#6097)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1313">Spinnaker Fiat - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1050)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1033)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1035)&lt;/li>
&lt;li>feat(exceptions): Add SpinnakerRetrofitErrorHandler and replace RetrofitError catch blocks (#1034)&lt;/li>
&lt;li>chore(gha): update to docker/login-action@v2 to stay up to date (#1036)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1037)&lt;/li>
&lt;li>feat(gha): configure dependabot to keep github actions up to date (#1038)&lt;/li>
&lt;li>chore(deps): bump actions/setup-java from 2 to 3 (#1039)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/upload-cloud-storage from 0 to 1 (#1040)&lt;/li>
&lt;li>chore(deps): bump actions/checkout from 2 to 3 (#1043)&lt;/li>
&lt;li>chore(deps): bump peter-evans/repository-dispatch from 1 to 2 (#1041)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/auth from 0 to 1 (#1042)&lt;/li>
&lt;li>chore(gha): replace action for creating github releases (#1044)&lt;/li>
&lt;li>chore(gha): replace deprecated set-output commands with environment files (#1045)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 3 to 4 (#1046)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1047)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1048)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1049)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1051)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1052)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1054)&lt;/li>
&lt;li>refactor(test): prefix redis:5-alpine images with library/ (#1055)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1056)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1057)&lt;/li>
&lt;li>fix(roles-sync): fix CallableCache&amp;rsquo;s NPE exception for caching synchronization strategy (#1077) (#1081)&lt;/li>
&lt;li>fix(ssl): Removed unused deprecated okHttpClientConfig from retrofitConfig. (#1082) (#1092)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1095)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1313">Spinnaker Igor - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1120)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1099)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1103)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1105)&lt;/li>
&lt;li>chore(gha): update to docker/login-action@v2 to stay up to date (#1106)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1107)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1108)&lt;/li>
&lt;li>feat(gha): configure dependabot to keep github actions up to date (#1109)&lt;/li>
&lt;li>chore(deps): bump actions/setup-java from 2 to 3 (#1111)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/upload-cloud-storage from 0 to 1 (#1110)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/auth from 0 to 1 (#1112)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 2 to 4 (#1114)&lt;/li>
&lt;li>chore(deps): bump actions/checkout from 2 to 3 (#1113)&lt;/li>
&lt;li>chore(gha): replace action for creating github releases (#1115)&lt;/li>
&lt;li>chore(gha): replace deprecated set-output commands with environment files (#1116)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1117)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1118)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1119)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1122)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1123)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1127)&lt;/li>
&lt;li>feat(travis): Add another Travis termination string (#1131)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1132)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1133)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1134)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1162)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1163)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1313">Spinnaker Echo - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1288)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1268)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1272)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1273)&lt;/li>
&lt;li>chore(gha): update to docker/login-action@v2 to stay up to date (#1274)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1275)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1276)&lt;/li>
&lt;li>feat(gha): configure dependabot to keep github actions up to date (#1277)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 2 to 4 (#1279)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/auth from 0 to 1 (#1280)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/upload-cloud-storage from 0 to 1 (#1278)&lt;/li>
&lt;li>chore(deps): bump actions/setup-java from 2 to 3 (#1282)&lt;/li>
&lt;li>chore(deps): bump actions/checkout from 2 to 3 (#1281)&lt;/li>
&lt;li>chore(gha): replace action for creating github releases (#1283)&lt;/li>
&lt;li>chore(gha): replace deprecated set-output commands with environment files (#1284)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1285)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1286)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1287)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1291)&lt;/li>
&lt;li>feat(pipelinetriggers): only cache enabled pipelines with enabled triggers of specific types (#1292)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1293)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1296)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1297)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1298)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1299)&lt;/li>
&lt;li>fix(gha): Fix github status log and add tests (#1316) (#1318)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1333)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1334)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1313">Spinnaker Kayenta - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>fix(signalfx): Fixed metric type missing due to duplicated field from parent class (#957) (#958)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#956)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#941)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#945)&lt;/li>
&lt;li>chore(gha): update to docker/login-action@v2 to stay up to date (#946)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#947)&lt;/li>
&lt;li>feat(gha): configure dependabot to keep github actions up to date (#948)&lt;/li>
&lt;li>chore(deps): bump actions/checkout from 2 to 3 (#949)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/upload-cloud-storage from 0 to 1 (#950)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/auth from 0 to 1 (#953)&lt;/li>
&lt;li>chore(deps): bump actions/setup-java from 2 to 3 (#951)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 3 to 4 (#952)&lt;/li>
&lt;li>chore(gha): replace action for creating github releases (#954)&lt;/li>
&lt;li>chore(gha): replace deprecated set-output commands with environment files (#955)&lt;/li>
&lt;li>feat: SPLAT-582: Add a storage data migrator. (#940)&lt;/li>
&lt;li>fix(signalfx): Fixed metric type missing due to duplicated field from parent class (#957)&lt;/li>
&lt;li>feat: Add API endpoint to remove account credentials by account name(id) (#939)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#960)&lt;/li>
&lt;li>refactor(deprecation): remove deprecated gradle constructs/features from kayenta in order to upgrade gradle 7 (#961)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#966)&lt;/li>
&lt;li>fix(orca): Fix orca contributors status. (backport #977) (#980)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#983)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1313">Spinnaker Deck - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>Publish packages to NPM (#9955)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#9957)&lt;/li>
&lt;li>chore(gha): update to docker/login-action@v2 to stay up to date (#9958)&lt;/li>
&lt;li>chore(gha): replace deprecated set-output commands (#9952)&lt;/li>
&lt;li>feat(gha): configure dependabot to keep github actions up to date (#9959)&lt;/li>
&lt;li>chore(deps): bump actions/github-script from 0.9.0 to 6.4.0 (#9962)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/upload-cloud-storage from 0 to 1 (#9966)&lt;/li>
&lt;li>chore(deps): bump peter-evans/create-pull-request from 3 to 4 (#9964)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 3 to 4 (#9963)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/auth from 0 to 1 (#9965)&lt;/li>
&lt;li>chore(gha): replace action for creating github releases (#9961)&lt;/li>
&lt;li>chore(deps): bump actions/setup-node from 1 to 3 (#9967)&lt;/li>
&lt;li>chore(deps): bump actions/cache from 1 to 3 (#9970)&lt;/li>
&lt;li>chore(deps): bump actions/setup-java from 2 to 3 (#9969)&lt;/li>
&lt;li>chore(deps): bump actions/checkout from 2 to 3 (#9968)&lt;/li>
&lt;li>fix: UI crashes when running pipeline(s) with many stages. (#9960)&lt;/li>
&lt;li>Publish packages to NPM (#9972)&lt;/li>
&lt;li>chore(build): update to Node 14 and es2019 (#9981)&lt;/li>
&lt;li>chore(build): fix typo in GHA (#9982)&lt;/li>
&lt;li>Node 14 fix (#9983)&lt;/li>
&lt;li>feat(provider/google): Added Cloud Run manifest functionality in Deck. (#9971)&lt;/li>
&lt;li>chore(deps): bump peter-evans/create-pull-request from 4 to 5 (#9985)&lt;/li>
&lt;li>chore(deps): bump actions/github-script from 6.4.0 to 6.4.1 (#9986)&lt;/li>
&lt;li>Publish packages to NPM (#9984)&lt;/li>
&lt;li>update(rolling red/black) remove experimental label (#9987)&lt;/li>
&lt;li>fix(angular): fix missed AngularJS bindings (#9989)&lt;/li>
&lt;li>Publish packages to NPM (#9990)&lt;/li>
&lt;li>fix(ecs): VPC Subnet dropdown fix in ecs server group creation.&lt;/li>
&lt;li>feat(deck): make StageFailureMessage component overridable (#9994)&lt;/li>
&lt;li>chore(build): fix package bump PR action (#9995)&lt;/li>
&lt;li>Publish packages to NPM (#9993)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#9996)&lt;/li>
&lt;li>fix(core/pipeline): Pipeline builder-pipeline action dropdown closing not properly (#9999)&lt;/li>
&lt;li>feat(icons): allow plugins to provide custom icon components (#10001)&lt;/li>
&lt;li>Publish packages to NPM (#10000)&lt;/li>
&lt;li>Revert &amp;ldquo;fix(core): conditionally hide expression evaluation warning messages (#9771)&amp;rdquo; (#10021) (#10023)&lt;/li>
&lt;li>fix: Scaling bounds should parse float not int (#10026) (#10032)&lt;/li>
&lt;li>feat(helm/bake): Add additional input fields where we can fill in details of the APIs versions (#10036) (#10047)&lt;/li>
&lt;li>fix: Updating Lambda functions available Runtimes (#10055)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1313">Spinnaker Orca - 1.31.3&lt;/h4>
&lt;ul>
&lt;li>fix(queue): fix ability to cancel a zombied execution (#4473) (#4478)&lt;/li>
&lt;li>fix(queue): Manual Judgment propagation (#4474)&lt;/li>
&lt;li>fix(deployment): fixed missing namespace while fetching manifest details from clouddriver (#4453) (#4457)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4444) (#4446)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4444)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4417)&lt;/li>
&lt;li>Fix/manual judgment concurrent execution (#4410)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#4427)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4428)&lt;/li>
&lt;li>chore(gha): update to docker/login-action@v2 to stay up to date (#4429)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4430)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4431)&lt;/li>
&lt;li>feat(gha): configure dependabot to keep github actions up to date (#4432)&lt;/li>
&lt;li>chore(deps): bump peter-evans/create-pull-request from 3 to 4 (#4433)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/upload-cloud-storage from 0 to 1 (#4436)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 3 to 4 (#4435)&lt;/li>
&lt;li>chore(deps): bump google-github-actions/auth from 0 to 1 (#4437)&lt;/li>
&lt;li>chore(deps): bump actions/setup-java from 2 to 3 (#4434)&lt;/li>
&lt;li>chore(gha): replace action for creating github releases (#4438)&lt;/li>
&lt;li>chore(deps): bump peter-evans/repository-dispatch from 1 to 2 (#4440)&lt;/li>
&lt;li>chore(deps): bump actions/checkout from 2 to 3 (#4441)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4442)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4443)&lt;/li>
&lt;li>chore(gha): replace deprecated set-output commands with environment files (#4439)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4447)&lt;/li>
&lt;li>feat(front50): call front50&amp;rsquo;s GET /pipelines/triggeredBy/{pipelineId}/{status} endpoint (#4448)&lt;/li>
&lt;li>chore(deps): bump peter-evans/create-pull-request from 4 to 5 (#4450)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4451)&lt;/li>
&lt;li>fix(waiting-executions) : concurrent waiting executions doesn&amp;rsquo;t follow FIFO (#4415)&lt;/li>
&lt;li>fix(deployment): fixed missing namespace while fetching manifest details from clouddriver (#4453)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#4458)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4459)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4461)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4464)&lt;/li>
&lt;li>fix(queue): fix ability to cancel a zombied execution (#4473) (#4477)&lt;/li>
&lt;li>fix(artifacts): consider requiredArtifactIds in expected artifacts when trigger is pipeline type (#4489) (#4491)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4513)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4514)&lt;/li>
&lt;li>fix: duplicate entry exception for correlation_ids table. (#4521) (#4531)&lt;/li>
&lt;li>fix(vpc): add data annotation to vpc (#4534) (#4537)&lt;/li>
&lt;li>fix(front50): teach MonitorPipelineTask to handle missing/null execution ids (#4555) (#4561)&lt;/li>
&lt;li>feat(helm/bake): Add additional input fields where we can fill in details of the APIs versions (#4546) (#4564)&lt;/li>
&lt;li>fix(artifacts): Parent and child pipeline artifact resolution (backport #4575) (#4582)&lt;/li>
&lt;li>fix(artifacts): Automated triggers with artifact constraints are broken if you have 2 or more of the same type (backport #4579) (#4587)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.30.5 Armory Continuous Deployment LTS Release (Spinnaker™ v1.30.4)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-30-5/</link><pubDate>Fri, 10 Nov 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-30-5/</guid><description>
&lt;h2 id="20231110-release-notes">2023/11/10 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.30.5, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="orca-requires-rdbms-configured-for-utf-8-encoding">Orca requires RDBMS configured for UTF-8 encoding&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>2.28.6 migrates to the AWS MySQL driver from the OSS MySQL drivers. This change is mostly seamless, but we’ve identified one breaking change. If your database was created without utf8mb4 you will see failures after this upgrade. utf8mb4 is the recommended DB format for any Spinnaker database, and we don’t anticipate most users who’ve followed setup instructions to encounter this failure. However, we’re calling out this change as a safeguard.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.6&lt;/p>
&lt;p>&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.30.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="/plugins/plugin-k8s-custom-resource-status/">Kubernetes Custom Resource Status&lt;/a>&lt;/td>
&lt;td>3.0.x&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="pipelines-as-code-multiplebranchesenabled-false-not-working-as-expected">Pipelines-as-Code &lt;code>multipleBranchesEnabled: false&lt;/code> not working as expected&lt;/h3>
&lt;p>When &lt;code>multipleBranchesEnabled: false&lt;/code>, you may notice that the configuration &lt;code>multipleBranchesEnabled&lt;/code> is never set to even though it is set to false under the Dinghy profiles settings. This may cause &lt;code>dinghyfile&lt;/code> changes on the master/main branch to be pushed unexpectedly.&lt;/p>
&lt;p>You can read more about this issue in the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010817">KB article&lt;/a>.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.3, 2.30.4, 2.30.5&lt;/p>
&lt;h3 id="clouddriver-and-spring-cloud">Clouddriver and Spring Cloud&lt;/h3>
&lt;p>The Spring Boot version has been upgraded, introducing a backwards incompatible change to the way configuration is loaded in Spinnaker. Users will need to set the &lt;em>&lt;strong>spring.cloud.config.enabled&lt;/strong>&lt;/em> property to &lt;em>&lt;strong>true&lt;/strong>&lt;/em> in the service settings of Clouddriver to preserve existing behavior. All of the other configuration blocks remain the same.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0 and later&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>. This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.27.x and later&lt;/p>
&lt;h2 id="deprecations">Deprecations&lt;/h2>
&lt;p>Reference &lt;a href="/continuous-deployment/feature-status/deprecations/">Feature Deprecations and end of support&lt;/a>&lt;/p>
&lt;h2 id="early-access-features-enabled-by-default">Early access features enabled by default&lt;/h2>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically cancel Jenkins jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a Spinnaker pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more about Jenkins + Spinnaker in this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">Spinnaker changelog&lt;/a>.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger Spinnaker pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a> in the Spinnaker docs for details&lt;/p>
&lt;h2 id="early-access-features-enabled-manually">Early access features enabled manually&lt;/h2>
&lt;h3 id="helm-parameters">Helm Parameters&lt;/h3>
&lt;p>Spinnaker users baking Helm charts can now use SpEL expression parameters for API Version and Kubernetes Version in the Bake Manifest stage so that they can conditionally deploy different versions of artifacts depending on the target cluster API and K8s versions. To learn more about this exciting new feature, visit &lt;a href="https://spinnaker.io/docs/guides/user/kubernetes-v2/deploy-helm/">Helm Parameters&lt;/a>.&lt;/p>
&lt;h3 id="dynamic-rollback-timeout">Dynamic rollback timeout&lt;/h3>
&lt;p>To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck. You need to add this block to &lt;code>orca.yml&lt;/code> file if you want to enable the dynamic rollback timeout feature:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">rollback&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">timeout&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>On the Orca side, the feature flag overrides the default value rollback timeout - 5 min - with a UI input from the user.&lt;/p>
&lt;p>On the Deck side, the feature flag enhances the Rollback Cluster stage UI with timeout input.&lt;/p>
&lt;p>&lt;code>window.spinnakerSettings.feature.dynamicRollbackTimeout = true;&lt;/code>&lt;/p>
&lt;p>The default is used if there is no value set in the UI.&lt;/p>
&lt;h3 id="run-pipelines-as-code-with-permissions-scoped-to-a-specific-service-account">Run Pipelines-as-Code with permissions scoped to a specific service account&lt;/h3>
&lt;p>Enhancing Pipelines-as-Code to upsert pipeline using an Orca call instead of a Front50 call, to mimic the calls from Deck. By default, it is disabled. Enabling can be achieved by setting the following in &lt;code>dinghy.yml&lt;/code>:&lt;/p>
&lt;p>&lt;code>upsertPipelineUsingOrcaTaskEnabled: true&lt;/code>&lt;/p>
&lt;h3 id="pipelines-as-code-pr-checks">Pipelines-as-Code PR checks&lt;/h3>
&lt;p>This feature, when enabled, verifies if the author of a commit that changed app parameters has sufficient WRITE permission for that app. You can specify a list of authors whose permissions are not valid. This option’s purpose is to skip permissions checks for bots and tools.&lt;/p>
&lt;p>See &lt;a href="/plugins/pipelines-as-code/install/configure/#permissions-check-for-a-commit">Permissions check for a commit&lt;/a> for details.&lt;/p>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipeline-as-Code to pull Pipelines-as-Code files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you are able to use the Terraform template file provider. Open a support ticket if you need this fix.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="echo">Echo&lt;/h3>
&lt;ul>
&lt;li>Fixed an issue where Echo didn&amp;rsquo;t start in GKE.&lt;/li>
&lt;/ul>
&lt;h3 id="orca">Orca&lt;/h3>
&lt;ul>
&lt;li>Addressed an issue where artifacts between parent/child pipeline executions were binding incorrectly.&lt;/li>
&lt;/ul>
&lt;h3 id="deck">Deck&lt;/h3>
&lt;ul>
&lt;li>Updated Lambda Function runtime options.&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.30.4-changelog/">Spinnaker v1.30.4&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 767aa739e9c38d2ec7822e9e9a1838b69a56d4c0
version: 2.30.5
deck:
commit: b14f5660fbe9cde883dfaf25442a1e8cfe0c27b0
version: 2.30.5
dinghy:
commit: a3b59d9e4b810cc968d0f5e8e8370e1670574768
version: 2.30.5
echo:
commit: ea2081903be070da4b217a4c54d070f1503e6d00
version: 2.30.5
fiat:
commit: 5d44e1f53d2f33b17f8decfb057a18cfe4b6fa08
version: 2.30.5
front50:
commit: 5d9bb31f65f96087be30ce96cea1b6d481a6bef4
version: 2.30.5
gate:
commit: 5758316afba1260d2012730c471fd461819e7f39
version: 2.30.5
igor:
commit: 3123451525458f96548859b9bf2b15c89810f577
version: 2.30.5
kayenta:
commit: 1d2f5193ec681b5122fe7c34da6bbd569da8e0b8
version: 2.30.5
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: fdac510ea4f54b33abafbc840d7380100c6ab689
version: 2.30.5
rosco:
commit: 7907c80fd9ca1d956d5927a3e190617671b7e012
version: 2.30.5
terraformer:
commit: 249e7be18074af100212ddd554d9fb35afd65873
version: 2.30.5
timestamp: "2023-11-08 19:09:49"
version: 2.30.5
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-clouddriver---23042305">Armory Clouddriver - 2.30.4&amp;hellip;2.30.5&lt;/h4>
&lt;h4 id="armory-orca---23042305">Armory Orca - 2.30.4&amp;hellip;2.30.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2023.11.06.18.16.22.release-1.30.x (#762)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.11.07.00.08.28.release-1.30.x (#764)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---23042305">Armory Igor - 2.30.4&amp;hellip;2.30.5&lt;/h4>
&lt;h4 id="armory-rosco---23042305">Armory Rosco - 2.30.4&amp;hellip;2.30.5&lt;/h4>
&lt;h4 id="armory-gate---23042305">Armory Gate - 2.30.4&amp;hellip;2.30.5&lt;/h4>
&lt;h4 id="armory-front50---23042305">Armory Front50 - 2.30.4&amp;hellip;2.30.5&lt;/h4>
&lt;h4 id="armory-fiat---23042305">Armory Fiat - 2.30.4&amp;hellip;2.30.5&lt;/h4>
&lt;h4 id="armory-kayenta---23042305">Armory Kayenta - 2.30.4&amp;hellip;2.30.5&lt;/h4>
&lt;h4 id="terraformer---23042305">Terraformer™ - 2.30.4&amp;hellip;2.30.5&lt;/h4>
&lt;h4 id="armory-echo---23042305">Armory Echo - 2.30.4&amp;hellip;2.30.5&lt;/h4>
&lt;ul>
&lt;li>fix: Upgrade grpc-netty-shaded to address the service initialization failure issue. (#647)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---23042305">Dinghy™ - 2.30.4&amp;hellip;2.30.5&lt;/h4>
&lt;h4 id="armory-deck---23042305">Armory Deck - 2.30.4&amp;hellip;2.30.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231024161913.release-1.30.x (#1364)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-clouddriver---1304">Spinnaker Clouddriver - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-orca---1304">Spinnaker Orca - 1.30.4&lt;/h4>
&lt;ul>
&lt;li>fix(artifacts): Parent and child pipeline artifact resolution (backport #4575) (#4581)&lt;/li>
&lt;li>fix(artifacts): Automated triggers with artifact constraints are broken if you have 2 or more of the same type (backport #4579) (#4586)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1304">Spinnaker Igor - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-rosco---1304">Spinnaker Rosco - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-gate---1304">Spinnaker Gate - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-front50---1304">Spinnaker Front50 - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-fiat---1304">Spinnaker Fiat - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1304">Spinnaker Kayenta - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-echo---1304">Spinnaker Echo - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-deck---1304">Spinnaker Deck - 1.30.4&lt;/h4>
&lt;ul>
&lt;li>fix: Updating Lambda functions available Runtimes (#10055) (#10056)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.30.4 Armory Continuous Deployment Release (Spinnaker™ v1.30.4)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-30-4/</link><pubDate>Mon, 06 Nov 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-30-4/</guid><description>
&lt;h2 id="20231106-release-notes">2023/11/06 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker or Armory CD, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.30.4+, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="orca-requires-rdbms-configured-for-utf-8-encoding">Orca requires RDBMS configured for UTF-8 encoding&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>2.28.6 migrates to the AWS MySQL driver from the OSS MySQL drivers. This change is mostly seamless, but we’ve identified one breaking change. If your database was created without utf8mb4 you will see failures after this upgrade. utf8mb4 is the recommended DB format for any Spinnaker database, and we don’t anticipate most users who’ve followed setup instructions to encounter this failure. However, we’re calling out this change as a safeguard.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.6&lt;/p>
&lt;p>&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.30.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="/plugins/plugin-k8s-custom-resource-status/">Kubernetes Custom Resource Status&lt;/a>&lt;/td>
&lt;td>3.0.x&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="pipelines-as-code-multiplebranchesenabled-false-not-working-as-expected">Pipelines-as-Code &lt;code>multipleBranchesEnabled: false&lt;/code> not working as expected&lt;/h3>
&lt;p>When &lt;code>multipleBranchesEnabled: false&lt;/code>, you may notice that the configuration &lt;code>multipleBranchesEnabled&lt;/code> is never set to even though it is set to false under the Dinghy profiles settings. This may cause &lt;code>dinghyfile&lt;/code> changes on the master/main branch to be pushed unexpectedly.&lt;/p>
&lt;p>You can read more about this issue in the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010817">KB article&lt;/a>.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.3, 2.30.4&lt;/p>
&lt;h3 id="artifact-binding">Artifact Binding&lt;/h3>
&lt;p>Customers who utilize parent pipelines to provide artifacts to child pipelines may encounter unexpected errors or results in 2.30+ as child pipelines may not resolve those artifacts correctly.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0 and later&lt;/p>
&lt;h3 id="130-required-artifacts-to-bind-breaks-pipelines">1.30+ “required artifacts to bind” breaks pipelines&lt;/h3>
&lt;p>Expected artifacts can be used in automated triggers and stages, and OSS &lt;a href="https://spinnaker.io/changelogs/1.30.0-changelog/#changes-to-the-way-artifact-constraints-on-triggers-work">1.30&lt;/a> changed the way artifact constraints work on triggers. Unfortunately those changes broke the previous behavior when triggering a pipeline from a stage, and this fix restores the previous behavior.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0 and later&lt;/p>
&lt;h3 id="clouddriver-and-spring-cloud">Clouddriver and Spring Cloud&lt;/h3>
&lt;p>The Spring Boot version has been upgraded, introducing a backwards incompatible change to the way configuration is loaded in Spinnaker. Users will need to set the &lt;em>&lt;strong>spring.cloud.config.enabled&lt;/strong>&lt;/em> property to &lt;em>&lt;strong>true&lt;/strong>&lt;/em> in the service settings of Clouddriver to preserve existing behavior. All of the other configuration blocks remain the same.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0 and later&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>. This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.27.x and later&lt;/p>
&lt;h2 id="deprecations">Deprecations&lt;/h2>
&lt;p>Reference &lt;a href="/continuous-deployment/feature-status/deprecations/">Feature Deprecations and end of support&lt;/a>&lt;/p>
&lt;h2 id="early-access-features-enabled-by-default">Early access features enabled by default&lt;/h2>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically cancel Jenkins jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a Spinnaker pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more about Jenkins + Spinnaker in this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">Spinnaker changelog&lt;/a>.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger Spinnaker pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a> in the Spinnaker docs for details&lt;/p>
&lt;h2 id="early-access-features-enabled-manually">Early access features enabled manually&lt;/h2>
&lt;h3 id="new-in-this-release---helm-parameters">NEW in this release - Helm Parameters&lt;/h3>
&lt;p>Spinnaker users baking Helm charts can now use SpEL expression parameters for API Version and Kubernetes Version in the Bake Manifest stage so that they can conditionally deploy different versions of artifacts depending on the target cluster API and K8s versions. To learn more about this exciting new feature, visit &lt;a href="https://spinnaker.io/docs/guides/user/kubernetes-v2/deploy-helm/">Helm Parameters&lt;/a>.&lt;/p>
&lt;h3 id="dynamic-rollback-timeout">Dynamic rollback timeout&lt;/h3>
&lt;p>To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck. You need to add this block to &lt;code>orca.yml&lt;/code> file if you want to enable the dynamic rollback timeout feature:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">rollback&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">timeout&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>On the Orca side, the feature flag overrides the default value rollback timeout - 5 min - with a UI input from the user.&lt;/p>
&lt;p>On the Deck side, the feature flag enhances the Rollback Cluster stage UI with timeout input.&lt;/p>
&lt;p>&lt;code>window.spinnakerSettings.feature.dynamicRollbackTimeout = true;&lt;/code>&lt;/p>
&lt;p>The default is used if there is no value set in the UI.&lt;/p>
&lt;h3 id="run-pipelines-as-code-with-permissions-scoped-to-a-specific-service-account">Run Pipelines-as-Code with permissions scoped to a specific service account&lt;/h3>
&lt;p>Enhancing Pipelines-as-Code to upsert pipeline using an Orca call instead of a Front50 call, to mimic the calls from Deck. By default, it is disabled. Enabling can be achieved by setting the following in &lt;code>dinghy.yml&lt;/code>:&lt;/p>
&lt;p>&lt;code>upsertPipelineUsingOrcaTaskEnabled: true&lt;/code>&lt;/p>
&lt;h3 id="pipelines-as-code-pr-checks">Pipelines-as-Code PR checks&lt;/h3>
&lt;p>This feature, when enabled, verifies if the author of a commit that changed app parameters has sufficient WRITE permission for that app. You can specify a list of authors whose permissions are not valid. This option’s purpose is to skip permissions checks for bots and tools.&lt;/p>
&lt;p>See &lt;a href="/plugins/pipelines-as-code/install/configure/#permissions-check-for-a-commit">Permissions check for a commit&lt;/a> for details.&lt;/p>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipeline-as-Code to pull Pipelines-as-Code files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you are able to use the Terraform template file provider. Open a support ticket if you need this fix.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="igor">Igor&lt;/h3>
&lt;p>Fixed an issue that involved Jenkins backlinks being enabled in Orca. Igor was encountering an issue while attempting to invoke the JenkinsClient.submitDescription method.&lt;/p>
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.30.4-changelog/">Spinnaker v1.30.4&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 767aa739e9c38d2ec7822e9e9a1838b69a56d4c0
version: 2.30.4
deck:
commit: 305d4e3ccdd7ad009c14a0093cd64bdb0ad9aeaa
version: 2.30.4
dinghy:
commit: a3b59d9e4b810cc968d0f5e8e8370e1670574768
version: 2.30.4
echo:
commit: 2ef241fd3da29fb70cdb05432d022f0edd752d51
version: 2.30.4
fiat:
commit: 5d44e1f53d2f33b17f8decfb057a18cfe4b6fa08
version: 2.30.4
front50:
commit: 5d9bb31f65f96087be30ce96cea1b6d481a6bef4
version: 2.30.4
gate:
commit: 5758316afba1260d2012730c471fd461819e7f39
version: 2.30.4
igor:
commit: 3123451525458f96548859b9bf2b15c89810f577
version: 2.30.4
kayenta:
commit: 1d2f5193ec681b5122fe7c34da6bbd569da8e0b8
version: 2.30.4
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: abf688128f3557e53d8873b5f2fe623b1ad478f9
version: 2.30.4
rosco:
commit: 7907c80fd9ca1d956d5927a3e190617671b7e012
version: 2.30.4
terraformer:
commit: 249e7be18074af100212ddd554d9fb35afd65873
version: 2.30.4
timestamp: "2023-10-19 13:42:07"
version: 2.30.4
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="dinghy---23032304">Dinghy™ - 2.30.3&amp;hellip;2.30.4&lt;/h4>
&lt;h4 id="armory-echo---23032304">Armory Echo - 2.30.3&amp;hellip;2.30.4&lt;/h4>
&lt;h4 id="armory-clouddriver---23032304">Armory Clouddriver - 2.30.3&amp;hellip;2.30.4&lt;/h4>
&lt;h4 id="armory-kayenta---23032304">Armory Kayenta - 2.30.3&amp;hellip;2.30.4&lt;/h4>
&lt;h4 id="armory-gate---23032304">Armory Gate - 2.30.3&amp;hellip;2.30.4&lt;/h4>
&lt;ul>
&lt;li>Updating Banner plugin to 0.2.0 (#630) (#631)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---23032304">Terraformer™ - 2.30.3&amp;hellip;2.30.4&lt;/h4>
&lt;h4 id="armory-rosco---23032304">Armory Rosco - 2.30.3&amp;hellip;2.30.4&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to rosco:2023.10.18.06.02.34.release-1.30.x (#591)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---23032304">Armory Deck - 2.30.3&amp;hellip;2.30.4&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2023.0.0-20231018060032.release-1.30.x (#1359)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---23032304">Armory Igor - 2.30.3&amp;hellip;2.30.4&lt;/h4>
&lt;ul>
&lt;li>fix: NoSuchMethodError exception in JenkinsClient. (#377) (#528)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---23032304">Armory Orca - 2.30.3&amp;hellip;2.30.4&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2023.10.09.23.59.23.release-1.30.x (#738)&lt;/li>
&lt;li>fix(terraformer): Ignoring logs from the Terraformer stage context (#740) (#741)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.10.18.06.01.45.release-1.30.x (#752)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---23032304">Armory Fiat - 2.30.3&amp;hellip;2.30.4&lt;/h4>
&lt;h4 id="armory-front50---23032304">Armory Front50 - 2.30.3&amp;hellip;2.30.4&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-echo---1304">Spinnaker Echo - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1304">Spinnaker Clouddriver - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1304">Spinnaker Kayenta - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-gate---1304">Spinnaker Gate - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-rosco---1304">Spinnaker Rosco - 1.30.4&lt;/h4>
&lt;ul>
&lt;li>feat(helm/bake): Add additional input fields where we can fill in details of the APIs versions (#1020) (#1029)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1304">Spinnaker Deck - 1.30.4&lt;/h4>
&lt;ul>
&lt;li>feat(helm/bake): Add additional input fields where we can fill in details of the APIs versions (#10036) (#10046)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1304">Spinnaker Igor - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-orca---1304">Spinnaker Orca - 1.30.4&lt;/h4>
&lt;ul>
&lt;li>fix(front50): teach MonitorPipelineTask to handle missing/null execution ids (#4555) (#4558)&lt;/li>
&lt;li>feat(helm/bake): Add additional input fields where we can fill in details of the APIs versions (#4546) (#4563)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1304">Spinnaker Fiat - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-front50---1304">Spinnaker Front50 - 1.30.4&lt;/h4></description></item><item><title>Continuous-Deployment: v2.30.3 Armory Continuous Deployment Release (Spinnaker™ v1.30.4)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-30-3/</link><pubDate>Mon, 09 Oct 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-30-3/</guid><description>
&lt;h2 id="20231009-release-notes">2023/10/09 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.30.3, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&amp;gt;&lt;/p>
&lt;/blockquote>
&lt;h3 id="orca-requires-rdbms-configured-for-utf-8-encoding">Orca requires RDBMS configured for UTF-8 encoding&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>2.28.6 migrates to the AWS MySQL driver from the OSS MySQL drivers. This change is mostly seamless, but we’ve identified one breaking change. If your database was created without utf8mb4 you will see failures after this upgrade. utf8mb4 is the recommended DB format for any Spinnaker database, and we don’t anticipate most users who’ve followed setup instructions to encounter this failure. However, we’re calling out this change as a safeguard.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.6&lt;/p>
&lt;p>&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.30.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="/plugins/plugin-k8s-custom-resource-status/">Kubernetes Custom Resource Status&lt;/a>&lt;/td>
&lt;td>3.0.x&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="pipelines-as-code-multiplebranchesenabled-false-not-working-as-expected">Pipelines-as-Code &lt;code>multipleBranchesEnabled: false&lt;/code> not working as expected&lt;/h3>
&lt;p>When &lt;code>multipleBranchesEnabled: false&lt;/code>, you may notice that the configuration &lt;code>multipleBranchesEnabled&lt;/code> is never set to even though it is set to false under the Dinghy profiles settings. This may cause &lt;code>dinghyfile&lt;/code> changes on the master/main branch to be pushed unexpectedly.&lt;/p>
&lt;p>You can read more about this issue in the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010817">KB article&lt;/a>.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.3&lt;/p>
&lt;h3 id="artifact-binding">Artifact Binding&lt;/h3>
&lt;p>Customers who utilize parent pipelines to provide artifacts to child pipelines may encounter unexpected errors or results in 2.30+ as child pipelines may not resolve those artifacts correctly.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0 and later&lt;/p>
&lt;h3 id="130-required-artifacts-to-bind-breaks-pipelines">1.30+ “required artifacts to bind” breaks pipelines&lt;/h3>
&lt;p>Expected artifacts can be used in automated triggers and stages, and OSS &lt;a href="https://spinnaker.io/changelogs/1.30.0-changelog/#changes-to-the-way-artifact-constraints-on-triggers-work">1.30&lt;/a> changed the way artifact constraints work on triggers. Unfortunately those changes broke the previous behavior when triggering a pipeline from a stage, and this fix restores the previous behavior.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0 and later&lt;/p>
&lt;h3 id="clouddriver-and-spring-cloud">Clouddriver and Spring Cloud&lt;/h3>
&lt;p>The Spring Boot version has been upgraded, introducing a backwards incompatible change to the way configuration is loaded in Spinnaker. Users will need to set the &lt;em>&lt;strong>spring.cloud.config.enabled&lt;/strong>&lt;/em> property to &lt;em>&lt;strong>true&lt;/strong>&lt;/em> in the service settings of Clouddriver to preserve existing behavior. All of the other configuration blocks remain the same.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0 and later&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>. This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.27.x and later&lt;/p>
&lt;h2 id="deprecations">Deprecations&lt;/h2>
&lt;p>Reference &lt;a href="/continuous-deployment/feature-status/deprecations/">Feature Deprecations and end of support&lt;/a>&lt;/p>
&lt;h2 id="early-access-features-enabled-by-default">Early access features enabled by default&lt;/h2>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically cancel Jenkins jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a Spinnaker pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more about Jenkins + Spinnaker in this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">Spinnaker changelog&lt;/a>.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger Spinnaker pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a> in the Spinnaker docs for details&lt;/p>
&lt;h2 id="early-access-features-enabled-manually">Early access features enabled manually&lt;/h2>
&lt;h3 id="dynamic-rollback-timeout">Dynamic rollback timeout&lt;/h3>
&lt;p>To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck. You need to add this block to &lt;code>orca.yml&lt;/code> file if you want to enable the dynamic rollback timeout feature:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">rollback&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">timeout&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>On the Orca side, the feature flag overrides the default value rollback timeout - 5 min - with a UI input from the user.&lt;/p>
&lt;p>On the Deck side, the feature flag enhances the Rollback Cluster stage UI with timeout input.&lt;/p>
&lt;p>&lt;code>window.spinnakerSettings.feature.dynamicRollbackTimeout = true;&lt;/code>&lt;/p>
&lt;p>The default is used if there is no value set in the UI.&lt;/p>
&lt;h3 id="run-pipelines-as-code-with-permissions-scoped-to-a-specific-service-account">Run Pipelines-as-Code with permissions scoped to a specific service account&lt;/h3>
&lt;p>Enhancing Pipelines-as-Code to upsert pipeline using an Orca call instead of a Front50 call, to mimic the calls from Deck. By default, it is disabled. Enabling can be achieved by setting the following in &lt;code>dinghy.yml&lt;/code>:&lt;/p>
&lt;p>&lt;code>upsertPipelineUsingOrcaTaskEnabled: true&lt;/code>&lt;/p>
&lt;h3 id="pipelines-as-code-pr-checks">Pipelines-as-Code PR checks&lt;/h3>
&lt;p>This feature, when enabled, verifies if the author of a commit that changed app parameters has sufficient WRITE permission for that app. You can specify a list of authors whose permissions are not valid. This option’s purpose is to skip permissions checks for bots and tools.&lt;/p>
&lt;p>See &lt;a href="/plugins/pipelines-as-code/install/configure/#permissions-check-for-a-commit">Permissions check for a commit&lt;/a> for details.&lt;/p>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipeline-as-Code to pull Pipelines-as-Code files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you are able to use the Terraform template file provider. Open a support ticket if you need this fix.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="front50">Front50&lt;/h3>
&lt;ul>
&lt;li>Rectified an issue related to incorrect versions of Google authentication dependencies.&lt;/li>
&lt;/ul>
&lt;h3 id="clouddriver">Clouddriver&lt;/h3>
&lt;ul>
&lt;li>Addressed on issue where Lambda was leaking threads and eventually causing failures.&lt;/li>
&lt;li>Added configurable timeouts for Lambda invocations.&lt;/li>
&lt;/ul>
&lt;h3 id="deck">Deck&lt;/h3>
&lt;ul>
&lt;li>Added decimal support for upper/lower bound ASG tests.&lt;/li>
&lt;/ul>
&lt;h3 id="gate">Gate&lt;/h3>
&lt;ul>
&lt;li>Added the ability to disable the caching filter. By default it is set to on.&lt;/li>
&lt;/ul>
&lt;h3 id="orca">Orca&lt;/h3>
&lt;ul>
&lt;li>Addressed an issue where errors were being generated when deploying an ECSService.&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.30.4-changelog/">Spinnaker v1.30.4&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 767aa739e9c38d2ec7822e9e9a1838b69a56d4c0
version: 2.30.3
deck:
commit: 18e1727665cc52111760bf8e7f41cbf23da3b1a9
version: 2.30.3
dinghy:
commit: a3b59d9e4b810cc968d0f5e8e8370e1670574768
version: 2.30.3
echo:
commit: 2ef241fd3da29fb70cdb05432d022f0edd752d51
version: 2.30.3
fiat:
commit: 5d44e1f53d2f33b17f8decfb057a18cfe4b6fa08
version: 2.30.3
front50:
commit: 5d9bb31f65f96087be30ce96cea1b6d481a6bef4
version: 2.30.3
gate:
commit: 04598366642300d6f028df33b6206b5ce75f1038
version: 2.30.3
igor:
commit: f3d890427c79b7db6cf5fcb681e30542df97ff7c
version: 2.30.3
kayenta:
commit: 1d2f5193ec681b5122fe7c34da6bbd569da8e0b8
version: 2.30.3
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: ba62a86ef3af0007506b589a4272e3c2e03de00b
version: 2.30.3
rosco:
commit: a2b4662a40281e553de2182b680d5fd7e6bc3955
version: 2.30.3
terraformer:
commit: 249e7be18074af100212ddd554d9fb35afd65873
version: 2.30.3
timestamp: "2023-09-29 15:15:45"
version: 2.30.3
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-gate---23022303">Armory Gate - 2.30.2&amp;hellip;2.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to gate:2023.09.01.01.26.23.release-1.30.x (#608)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.09.07.17.47.28.release-1.30.x (#612)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---23022303">Armory Rosco - 2.30.2&amp;hellip;2.30.3&lt;/h4>
&lt;h4 id="armory-orca---23022303">Armory Orca - 2.30.2&amp;hellip;2.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2023.09.07.17.59.31.release-1.30.x (#693)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.09.26.15.03.20.release-1.30.x (#721)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---23022303">Armory Fiat - 2.30.2&amp;hellip;2.30.3&lt;/h4>
&lt;h4 id="armory-echo---23022303">Armory Echo - 2.30.2&amp;hellip;2.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to echo:2023.09.07.17.49.13.release-1.30.x (#616)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---23022303">Dinghy™ - 2.30.2&amp;hellip;2.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(log): Bumped up dinghy and plank versions. (backport #490) (#505)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---23022303">Armory Kayenta - 2.30.2&amp;hellip;2.30.3&lt;/h4>
&lt;h4 id="armory-clouddriver---23022303">Armory Clouddriver - 2.30.2&amp;hellip;2.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2023.08.29.09.35.30.release-1.30.x (#945)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.09.07.19.02.07.release-1.30.x (#953)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.09.07.22.04.28.release-1.30.x (#955)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.09.08.02.48.03.release-1.30.x (#958)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.09.08.03.51.25.release-1.30.x (#959)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.09.08.04.42.03.release-1.30.x (#962)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.09.08.05.40.38.release-1.30.x (#963)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.09.08.14.33.30.release-1.30.x (#965)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.09.16.22.42.11.release-1.30.x (#976)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.09.20.19.03.35.release-1.30.x (#980)&lt;/li>
&lt;li>fix: CVE-2023-37920 (#977) (#992)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---23022303">Armory Front50 - 2.30.2&amp;hellip;2.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to front50:2023.09.07.17.50.48.release-1.30.x (#588)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.09.25.18.58.31.release-1.30.x (#601)&lt;/li>
&lt;li>fix(dependencies): match google cloud storage version to this set in OSS, and bump OSS front50 version. (#602)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---23022303">Terraformer™ - 2.30.2&amp;hellip;2.30.3&lt;/h4>
&lt;h4 id="armory-deck---23022303">Armory Deck - 2.30.2&amp;hellip;2.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230918174859.release-1.30.x (#1342)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230920215154.release-1.30.x (#1343)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---23022303">Armory Igor - 2.30.2&amp;hellip;2.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to igor:2023.09.07.17.50.00.release-1.30.x (#491)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-gate---1304">Spinnaker Gate - 1.30.4&lt;/h4>
&lt;ul>
&lt;li>fix(cachingFilter: Allow disabling the content caching filter (#1699) (#1700)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1708)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1304">Spinnaker Rosco - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-orca---1304">Spinnaker Orca - 1.30.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#4520)&lt;/li>
&lt;li>fix(vpc): add data annotation to vpc (#4534) (#4536)&lt;/li>
&lt;li>fix: duplicate entry exception for correlation_ids table. (#4521) (#4532)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1304">Spinnaker Fiat - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-echo---1304">Spinnaker Echo - 1.30.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#1338)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1304">Spinnaker Kayenta - 1.30.4&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1304">Spinnaker Clouddriver - 1.30.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#6017)&lt;/li>
&lt;li>chore(gha): update to docker/login-action@v2 to stay up to date (#5920) (#6020)&lt;/li>
&lt;li>chore(deps): bump actions/cache from 2 to 3 (#5926) (#6022)&lt;/li>
&lt;li>chore(deps): bump actions/checkout from 2 to 3 (#5924) (#6024)&lt;/li>
&lt;li>chore(gha): replace action for creating github releases (backport #5929) (#6026)&lt;/li>
&lt;li>chore(deps): bump actions/setup-java from 2 to 3 (#5928) (#6029)&lt;/li>
&lt;li>chore(deps): bump docker/build-push-action from 3 to 4 (#5927) (#6030)&lt;/li>
&lt;li>chore(gha): replace deprecated set-output commands with environment files (#5930) (#6032)&lt;/li>
&lt;li>fix: Fix docker build in GHA by removing some of the GHA tools (#6033) (#6035)&lt;/li>
&lt;li>feat(lambda): Lambda calls default timeout after 50 seconds causing longer running lambdas to fail. This adds configurable timeouts for lambda invocations (#6041) (#6044)&lt;/li>
&lt;li>fix(lambda): Lambda is leaking threads on agent refreshes. remove the custom threadpool (#6048) (#6051)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-front50---1304">Spinnaker Front50 - 1.30.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#1388)&lt;/li>
&lt;li>fix(dependency): fix dependency version leak of google-api-services-storage from kork in front50-web (#1302) (#1393)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1304">Spinnaker Deck - 1.30.4&lt;/h4>
&lt;ul>
&lt;li>Revert &amp;ldquo;fix(core): conditionally hide expression evaluation warning messages (#9771)&amp;rdquo; (#10021) (#10024)&lt;/li>
&lt;li>fix: Scaling bounds should parse float not int (#10026) (#10031)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1304">Spinnaker Igor - 1.30.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#1167)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.28.7 Armory Continuous Deployment LTS Release (Spinnaker™ v1.28.0)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-7/</link><pubDate>Wed, 13 Sep 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-7/</guid><description>
&lt;h2 id="20230913-release-notes">2023/09/13 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.28.7, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="orca-requires-rdbms-configured-with-utf-8-encoding">Orca requires RDBMS configured with UTF-8 encoding&lt;/h3>
&lt;p>This release includes a change from MySQL JDBC drivers to AWS drivers. We have seen this cause issues when the database is NOT in a utf8mb4 format.&lt;/p>
&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin Compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.28.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="application-attributes-section-displays-this-application-has-not-been-configured">&lt;strong>Application Attributes&lt;/strong> section displays &amp;ldquo;This Application has not been configured&amp;rdquo;&lt;/h3>
&lt;p>There is a known issue that relates to the &lt;strong>Application Attributes&lt;/strong> section under the &lt;strong>Config&lt;/strong> menu. An application that was already created and configured in Spinnaker displays the message, “This application has not been configured.” While the information is missing, there is no functional impact.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;h3 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h3>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;h2 id="early-access-features-enabled-by-default">Early access features enabled by default&lt;/h2>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically cancel Jenkins jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a Spinnaker pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more about Jenkins + Spinnaker in this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">Spinnaker changelog&lt;/a>.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger Spinnaker pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a> in the Spinnaker docs for details&lt;/p>
&lt;h3 id="pipelines-adapt-to-sub-pipeline-with-manual-judgment-color">Pipelines adapt to sub pipeline with manual judgment color&lt;/h3>
&lt;p>When a child/sub pipeline is running and requires a manual judgment, the parent pipeline provides a visual representation that the child pipeline has an manual judgement waiting. This &lt;a href="https://github.com/spinnaker/deck/pull/9863">Github pull request&lt;/a> shows a visual representation of the feature in action.&lt;/p>
&lt;h2 id="early-access-features-enabled-manually">Early access features enabled manually&lt;/h2>
&lt;h3 id="dynamic-rollback-timeout">Dynamic rollback timeout&lt;/h3>
&lt;p>To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck. You need to add this block to &lt;code>orca.yml&lt;/code> file if you want to enable the dynamic rollback timeout feature:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">rollback&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">timeout&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>On the Orca side, the feature flag overrides the default value rollback timeout - 5 min - with a UI input from the user.&lt;/p>
&lt;p>On the Deck side, the feature flag enhances the Rollback Cluster stage UI with timeout input.&lt;/p>
&lt;p>&lt;code>window.spinnakerSettings.feature.dynamicRollbackTimeout = true;&lt;/code>&lt;/p>
&lt;p>The default is used if there is no value set in the UI.&lt;/p>
&lt;h3 id="pipelines-as-code-pr-checks">Pipelines-as-Code PR checks&lt;/h3>
&lt;p>This feature, when enabled, verifies if the author of a commit that changed app parameters has sufficient WRITE permission for that app. You can specify a list of authors whose permissions are not valid. This option’s purpose is to skip permissions checks for bots and tools.&lt;/p>
&lt;p>See &lt;a href="/plugins/pipelines-as-code/install/configure/#permissions-check-for-a-commit">Permissions check for a commit&lt;/a> for details.&lt;/p>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipeline-as-Code to pull Pipelines-as-Code files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you are able to use the Terraform template file provider. Open a support ticket if you need this fix.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="clouddriver">Clouddriver&lt;/h3>
&lt;ul>
&lt;li>Addressed an issue where deploying to an ECS cluster with tags was failing&lt;/li>
&lt;/ul>
&lt;h3 id="orca">Orca&lt;/h3>
&lt;ul>
&lt;li>Fixed an issue where Blue/Green(Red/Black) in the non-default namespace for kubernetes was failing&lt;/li>
&lt;li>Fixed an issue where a missing “namespace” attribute in a HTTP call was being sent while fetching manifest details from Clouddriver.&lt;/li>
&lt;/ul>
&lt;h3 id="deck">Deck&lt;/h3>
&lt;ul>
&lt;li>Fixed some bugs related to Clone CX when instance types are incompatible. For full details, visit the &lt;a href="https://github.com/spinnaker/deck/pull/9901#issue-1435271029">Github PR&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.28.0-changelog/">Spinnaker v1.28.0&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 50b4f4881597a374a9ba85aac90c0c0b9b22cee5
version: 2.28.7
deck:
commit: 5e7cef7a443e096cf8158c0c405c3ebbf8b97c35
version: 2.28.7
dinghy:
commit: 912007004f7720b418cd133301c7fb20207e1f2f
version: 2.28.7
echo:
commit: a602d9d5def0815cb52bdf6d695ca69cbf0abe3b
version: 2.28.7
fiat:
commit: d0874307a60cbc457616569be910f4142c152586
version: 2.28.7
front50:
commit: 3292cf2715a9e52bb4690601d4fd877407505ced
version: 2.28.7
gate:
commit: c8058f4362f3f4ad108fa146d628a162445c7579
version: 2.28.7
igor:
commit: 00998fa8b33acd6db5ffa8722e37593f608e9f64
version: 2.28.7
kayenta:
commit: 3da923fd822202425b90a181c9734910c5c4a609
version: 2.28.7
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 27a66c125270377772675b0e24d93566d878cfb9
version: 2.28.7
rosco:
commit: 27d4a2b4a1d5f099b68471303d4fd14af156d46d
version: 2.28.7
terraformer:
commit: ea9b0255b7d446bcbf0f0d4e03fc8699b7508431
version: 2.28.7
timestamp: "2023-06-01 05:41:58"
version: 2.28.7
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-echo---22862287">Armory Echo - 2.28.6&amp;hellip;2.28.7&lt;/h4>
&lt;h4 id="armory-kayenta---22862287">Armory Kayenta - 2.28.6&amp;hellip;2.28.7&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to kayenta:2023.06.01.03.10.17.release-1.28.x (#443)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---22862287">Armory Igor - 2.28.6&amp;hellip;2.28.7&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to igor:2023.03.27.19.09.31.release-1.28.x (#426)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.5 (#450)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.6 (#453)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22862287">Armory Gate - 2.28.6&amp;hellip;2.28.7&lt;/h4>
&lt;h4 id="armory-orca---22862287">Armory Orca - 2.28.6&amp;hellip;2.28.7&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2023.05.18.14.27.20.release-1.28.x (#645)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---22862287">Armory Deck - 2.28.6&amp;hellip;2.28.7&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230430115438.release-1.28.x (#1334)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---22862287">Armory Fiat - 2.28.6&amp;hellip;2.28.7&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.11.5 (#472)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.6 (#476)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22862287">Armory Rosco - 2.28.6&amp;hellip;2.28.7&lt;/h4>
&lt;h4 id="armory-front50---22862287">Armory Front50 - 2.28.6&amp;hellip;2.28.7&lt;/h4>
&lt;h4 id="terraformer---22862287">Terraformer™ - 2.28.6&amp;hellip;2.28.7&lt;/h4>
&lt;h4 id="armory-clouddriver---22862287">Armory Clouddriver - 2.28.6&amp;hellip;2.28.7&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2023.05.30.19.45.25.release-1.28.x (#880)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---22862287">Dinghy™ - 2.28.6&amp;hellip;2.28.7&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-echo---1280">Spinnaker Echo - 1.28.0&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1280">Spinnaker Kayenta - 1.28.0&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump orcaVersion (#963)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1280">Spinnaker Igor - 1.28.0&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#1101)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1280">Spinnaker Gate - 1.28.0&lt;/h4>
&lt;h4 id="spinnaker-orca---1280">Spinnaker Orca - 1.28.0&lt;/h4>
&lt;ul>
&lt;li>fix(deployment): fixed missing namespace while fetching manifest details from clouddriver (#4453) (#4455)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1280">Spinnaker Deck - 1.28.0&lt;/h4>
&lt;ul>
&lt;li>fix(aws): Fixing bugs related to clone CX when instance types are incompatible with image/region (backport #9901) (#9975)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1280">Spinnaker Fiat - 1.28.0&lt;/h4>
&lt;h4 id="spinnaker-rosco---1280">Spinnaker Rosco - 1.28.0&lt;/h4>
&lt;h4 id="spinnaker-front50---1280">Spinnaker Front50 - 1.28.0&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1280">Spinnaker Clouddriver - 1.28.0&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#5916)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.30.2 Armory Continuous Deployment Release (Spinnaker™ v1.30.3)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-30-2/</link><pubDate>Tue, 29 Aug 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-30-2/</guid><description>
&lt;h2 id="20230829-release-notes">2023/08/29 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.30.2, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="orca-requires-rdbms-configured-for-utf-8-encoding">Orca requires RDBMS configured for UTF-8 encoding&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>2.28.6 migrates to the AWS MySQL driver from the OSS MySQL drivers. This change is mostly seamless, but we’ve identified one breaking change. If your database was created without utf8mb4 you will see failures after this upgrade. utf8mb4 is the recommended DB format for any Spinnaker database, and we don’t anticipate most users who’ve followed setup instructions to encounter this failure. However, we’re calling out this change as a safeguard.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.6&lt;/p>
&lt;p>&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.30.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="/plugins/plugin-k8s-custom-resource-status/">Kubernetes Custom Resource Status&lt;/a>&lt;/td>
&lt;td>3.0.x&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="artifact-binding">Artifact Binding&lt;/h3>
&lt;p>Customers who utilize parent pipelines to provide artifacts to child pipelines may encounter unexpected errors or results in 2.30+ as child pipelines may not resolve those artifacts correctly.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0 and later&lt;/p>
&lt;h3 id="130-required-artifacts-to-bind-breaks-pipelines">1.30+ “required artifacts to bind” breaks pipelines&lt;/h3>
&lt;p>Expected artifacts can be used in automated triggers and stages, and OSS &lt;a href="https://spinnaker.io/changelogs/1.30.0-changelog/#changes-to-the-way-artifact-constraints-on-triggers-work">1.30&lt;/a> changed the way artifact constraints work on triggers. Unfortunately those changes broke the previous behavior when triggering a pipeline from a stage, and this fix restores the previous behavior.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0&lt;/p>
&lt;h3 id="clouddriver-and-spring-cloud">Clouddriver and Spring Cloud&lt;/h3>
&lt;p>The Spring Boot version has been upgraded, introducing a backwards incompatible change to the way configuration is loaded in Spinnaker. Users will need to set the &lt;em>&lt;strong>spring.cloud.config.enabled&lt;/strong>&lt;/em> property to &lt;em>&lt;strong>true&lt;/strong>&lt;/em> in the service settings of Clouddriver to preserve existing behavior. All of the other configuration blocks remain the same.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>. This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.27.x and later&lt;/p>
&lt;h2 id="deprecations">Deprecations&lt;/h2>
&lt;p>Reference &lt;a href="https://docs.armory.io/continuous-deployment/feature-status/deprecations/">Feature Deprecations and end of support&lt;/a>&lt;/p>
&lt;h2 id="early-access-features-enabled-by-default">Early access features enabled by default&lt;/h2>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically cancel Jenkins jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a Spinnaker pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more about Jenkins + Spinnaker in this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">Spinnaker changelog&lt;/a>.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger Spinnaker pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a> in the Spinnaker docs for details&lt;/p>
&lt;h2 id="early-access-features-enabled-manually">Early access features enabled manually&lt;/h2>
&lt;h3 id="dynamic-rollback-timeout">Dynamic rollback timeout&lt;/h3>
&lt;p>To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck. You need to add this block to &lt;code>orca.yml&lt;/code> file if you want to enable the dynamic rollback timeout feature:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">rollback&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">timeout&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>On the Orca side, the feature flag overrides the default value rollback timeout - 5 min - with a UI input from the user.&lt;/p>
&lt;p>On the Deck side, the feature flag enhances the Rollback Cluster stage UI with timeout input.&lt;/p>
&lt;p>&lt;code>window.spinnakerSettings.feature.dynamicRollbackTimeout = true;&lt;/code>&lt;/p>
&lt;p>The default is used if there is no value set in the UI.&lt;/p>
&lt;h3 id="pipelines-as-code-pr-checks">Pipelines-as-Code PR checks&lt;/h3>
&lt;p>This feature, when enabled, verifies if the author of a commit that changed app parameters has sufficient WRITE permission for that app. You can specify a list of authors whose permissions are not valid. This option’s purpose is to skip permissions checks for bots and tools.&lt;/p>
&lt;p>See &lt;a href="/plugins/pipelines-as-code/install/configure/#permissions-check-for-a-commit">Permissions check for a commit&lt;/a> for details.&lt;/p>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipeline-as-Code to pull Pipelines-as-Code files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you are able to use the Terraform template file provider. Open a support ticket if you need this fix.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="gate">Gate&lt;/h3>
&lt;ul>
&lt;li>fix: regression in saml configuration that prevented successful configuration of authn/z&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.30.3-changelog/">Spinnaker v1.30.3&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 9e69fcd6cd17f31e35eeb7d443cdbf9c2d9ac187
version: 2.30.2
deck:
commit: 7737669d9a68843f448cc4c93ac2a6ea3485f95e
version: 2.30.2
dinghy:
commit: 5250de80948732c8caac6ffc5293a8af80a63a0f
version: 2.30.2
echo:
commit: 56844c654cd1b3981686933a9d5bc68011ee2bae
version: 2.30.2
fiat:
commit: 30319b57d40a7e9fd61067b7e0d9fb73bf9a6c46
version: 2.30.2
front50:
commit: ec0919166ced870668d787708c249945e9291a01
version: 2.30.2
gate:
commit: df941ff5c34d14e794c8784c28a1b30b28754971
version: 2.30.2
igor:
commit: 67b4c66f33b8b97b89e6b052654bebfea460a41f
version: 2.30.2
kayenta:
commit: 4d82ef4a72129a715749005235ce0d6ba4778603
version: 2.30.2
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 638d81c8d3186b6deb8829574c6ac5b65c88c94a
version: 2.30.2
rosco:
commit: e74de6eaccbed6301505d9f3d2f6745b410211a7
version: 2.30.2
terraformer:
commit: 650746ae3f596f9c6458987487c81840c85dd2a0
version: 2.30.2
timestamp: "2023-08-29 01:03:06"
version: 2.30.2
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="terraformer---23012302">Terraformer™ - 2.30.1&amp;hellip;2.30.2&lt;/h4>
&lt;h4 id="armory-igor---23012302">Armory Igor - 2.30.1&amp;hellip;2.30.2&lt;/h4>
&lt;h4 id="armory-clouddriver---23012302">Armory Clouddriver - 2.30.1&amp;hellip;2.30.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2023.08.25.16.41.50.release-1.30.x (#933)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.08.28.14.14.14.release-1.30.x (#937)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---23012302">Armory Rosco - 2.30.1&amp;hellip;2.30.2&lt;/h4>
&lt;h4 id="armory-gate---23012302">Armory Gate - 2.30.1&amp;hellip;2.30.2&lt;/h4>
&lt;ul>
&lt;li>fix: esapi CVE scan report (#602) (#603)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---23012302">Armory Front50 - 2.30.1&amp;hellip;2.30.2&lt;/h4>
&lt;h4 id="armory-deck---23012302">Armory Deck - 2.30.1&amp;hellip;2.30.2&lt;/h4>
&lt;h4 id="armory-kayenta---23012302">Armory Kayenta - 2.30.1&amp;hellip;2.30.2&lt;/h4>
&lt;h4 id="dinghy---23012302">Dinghy™ - 2.30.1&amp;hellip;2.30.2&lt;/h4>
&lt;h4 id="armory-fiat---23012302">Armory Fiat - 2.30.1&amp;hellip;2.30.2&lt;/h4>
&lt;h4 id="armory-orca---23012302">Armory Orca - 2.30.1&amp;hellip;2.30.2&lt;/h4>
&lt;h4 id="armory-echo---23012302">Armory Echo - 2.30.1&amp;hellip;2.30.2&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-igor---1303">Spinnaker Igor - 1.30.3&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1303">Spinnaker Clouddriver - 1.30.3&lt;/h4>
&lt;ul>
&lt;li>fix(builds): Backport flag for installing aws cli (#6006)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1303">Spinnaker Rosco - 1.30.3&lt;/h4>
&lt;h4 id="spinnaker-gate---1303">Spinnaker Gate - 1.30.3&lt;/h4>
&lt;h4 id="spinnaker-front50---1303">Spinnaker Front50 - 1.30.3&lt;/h4>
&lt;h4 id="spinnaker-deck---1303">Spinnaker Deck - 1.30.3&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1303">Spinnaker Kayenta - 1.30.3&lt;/h4>
&lt;h4 id="spinnaker-fiat---1303">Spinnaker Fiat - 1.30.3&lt;/h4>
&lt;h4 id="spinnaker-orca---1303">Spinnaker Orca - 1.30.3&lt;/h4>
&lt;h4 id="spinnaker-echo---1303">Spinnaker Echo - 1.30.3&lt;/h4></description></item><item><title>Continuous-Deployment: v2.30.1 Armory Continuous Deployment Release (Spinnaker™ v1.30.3)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-30-1/</link><pubDate>Thu, 24 Aug 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-30-1/</guid><description>
&lt;h2 id="20230824-release-notes">2023/08/24 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.30.1, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="orca-requires-rdbms-configured-for-utf-8-encoding">Orca requires RDBMS configured for UTF-8 encoding&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>2.28.6 migrates to the AWS MySQL driver from the OSS MySQL drivers. This change is mostly seamless, but we’ve identified one breaking change. If your database was created without utf8mb4 you will see failures after this upgrade. utf8mb4 is the recommended DB format for any Spinnaker database, and we don’t anticipate most users who’ve followed setup instructions to encounter this failure. However, we’re calling out this change as a safeguard.&lt;/li>
&lt;/ul>
&lt;p>&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.30.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="/plugins/plugin-k8s-custom-resource-status/">Kubernetes Custom Resource Status&lt;/a>&lt;/td>
&lt;td>3.0.x&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.6&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="artifact-binding">Artifact Binding&lt;/h3>
&lt;p>Customers who utilize parent pipelines to provide artifacts to child pipelines may encounter unexpected errors or results in 2.30+ as child pipelines may not resolve those artifacts correctly.&lt;/p>
&lt;p>Affected versions: Armory CD 2.30.0 and later&lt;/p>
&lt;h3 id="using-custom-resource-status-plugin-and-scale-agent-generates-an-error">Using Custom Resource Status Plugin and Scale Agent generates an error&lt;/h3>
&lt;p>Armory customers that may be using the Custom Resource Status Plugin (2.0.3) may encounter an error “An attempt was made to call a method that does not exist.&amp;quot;
That error will prevent Armory CDSH from starting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0 and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>: Customers encountering this issue can downgrade to &lt;a href="https://docs.armory.io/plugins/plugin-k8s-custom-resource-status/">Custom Resource Status Plugin (2.0.2)&lt;/a> as an option until Armory CDSH versions 2.30.3+ or 2.28.7+ are available.&lt;/p>
&lt;h3 id="130-required-artifacts-to-bind-breaks-pipelines">1.30+ “required artifacts to bind” breaks pipelines&lt;/h3>
&lt;p>Expected artifacts can be used in automated triggers and stages, and OSS &lt;a href="https://spinnaker.io/changelogs/1.30.0-changelog/#changes-to-the-way-artifact-constraints-on-triggers-work">1.30&lt;/a> changed the way artifact constraints work on triggers. Unfortunately those changes broke the previous behavior when triggering a pipeline from a stage, and this fix restores the previous behavior.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0&lt;/p>
&lt;h3 id="clouddriver-and-spring-cloud">Clouddriver and Spring Cloud&lt;/h3>
&lt;p>The Spring Boot version has been upgraded, introducing a backwards incompatible change to the way configuration is loaded in Spinnaker. Users will need to set the &lt;em>&lt;strong>spring.cloud.config.enabled&lt;/strong>&lt;/em> property to &lt;em>&lt;strong>true&lt;/strong>&lt;/em> in the service settings of Clouddriver to preserve existing behavior. All of the other configuration blocks remain the same.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>. This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.27.x and later&lt;/p>
&lt;h2 id="deprecations">Deprecations&lt;/h2>
&lt;p>Reference &lt;a href="https://docs.armory.io/continuous-deployment/feature-status/deprecations/">Feature Deprecations and end of support&lt;/a>&lt;/p>
&lt;h2 id="early-access-features-enabled-by-default">Early access features enabled by default&lt;/h2>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically cancel Jenkins jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a Spinnaker pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more about Jenkins + Spinnaker in this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">Spinnaker changelog&lt;/a>.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger Spinnaker pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a> in the Spinnaker docs for details&lt;/p>
&lt;h2 id="early-access-features-enabled-manually">Early access features enabled manually&lt;/h2>
&lt;h3 id="dynamic-rollback-timeout">Dynamic Rollback Timeout&lt;/h3>
&lt;p>To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck. You need to add this block to &lt;code>orca.yml&lt;/code> file if you want to enable the dynamic rollback timeout feature:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">rollback&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">timeout&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>On the Orca side, the feature flag overrides the default value rollback timeout - 5 min - with a UI input from the user.&lt;/p>
&lt;p>On the Deck side, the feature flag enhances the Rollback Cluster stage UI with timeout input.&lt;/p>
&lt;p>&lt;code>window.spinnakerSettings.feature.dynamicRollbackTimeout = true;&lt;/code>&lt;/p>
&lt;p>The default is used if there is no value set in the UI.&lt;/p>
&lt;h3 id="pipelines-as-code-pr-checks">Pipelines-as-Code PR checks&lt;/h3>
&lt;p>This feature, when enabled, verifies if the author of a commit that changed app parameters has sufficient WRITE permission for that app. You can specify a list of authors whose permissions are not valid. This option’s purpose is to skip permissions checks for bots and tools.&lt;/p>
&lt;p>See &lt;a href="/plugins/pipelines-as-code/install/configure/#permissions-check-for-a-commit">Permissions check for a commit&lt;/a> for details.&lt;/p>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipeline-as-Code to pull Pipelines-as-Code files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you are able to use the Terraform template file provider. Open a support ticket if you need this fix.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="clouddriver">Clouddriver&lt;/h3>
&lt;ul>
&lt;li>Addressed an issue related to AWS CLI pip installation where users were unable to install aws-cli via pip because a package dependency broke&lt;/li>
&lt;li>Add the possibility to update the default handler for the Global Resource Property Registry. Due to the fact it is not possible to override the default handler behavior from a Spinnaker plugin code, we introduced a new setter function specifically designed to update the default handler for the Global Resource.&lt;/li>
&lt;/ul>
&lt;h3 id="orca">Orca&lt;/h3>
&lt;ul>
&lt;li>Waiting executions didn&amp;rsquo;t follow FIFO. The fix makes changes to push &lt;em>StartWaitingExecutions&lt;/em> to the queue only when execution status is not running and disabled concurrent executions, in all other cases no need to push &lt;em>StartWaitingExecutions&lt;/em> to the queue.&lt;/li>
&lt;/ul>
&lt;h3 id="terraformer">Terraformer&lt;/h3>
&lt;ul>
&lt;li>Session duration support on AWS roles&lt;/li>
&lt;/ul>
&lt;h3 id="kayenta">Kayenta&lt;/h3>
&lt;ul>
&lt;li>Addressed an issue related to verbose error messages in Kayenta logs&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.30.3-changelog/">Spinnaker v1.30.3&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: e83f27627c37921732db249ca823b2e6485a6f97
version: 2.30.1
deck:
commit: 7737669d9a68843f448cc4c93ac2a6ea3485f95e
version: 2.30.1
dinghy:
commit: 5250de80948732c8caac6ffc5293a8af80a63a0f
version: 2.30.1
echo:
commit: 56844c654cd1b3981686933a9d5bc68011ee2bae
version: 2.30.1
fiat:
commit: 30319b57d40a7e9fd61067b7e0d9fb73bf9a6c46
version: 2.30.1
front50:
commit: ec0919166ced870668d787708c249945e9291a01
version: 2.30.1
gate:
commit: 2dc9b4b767ab502faaa1b99c131eb7263cf519da
version: 2.30.1
igor:
commit: 67b4c66f33b8b97b89e6b052654bebfea460a41f
version: 2.30.1
kayenta:
commit: 4d82ef4a72129a715749005235ce0d6ba4778603
version: 2.30.1
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 638d81c8d3186b6deb8829574c6ac5b65c88c94a
version: 2.30.1
rosco:
commit: e74de6eaccbed6301505d9f3d2f6745b410211a7
version: 2.30.1
terraformer:
commit: 650746ae3f596f9c6458987487c81840c85dd2a0
version: 2.30.1
timestamp: "2023-08-23 17:49:50"
version: 2.30.1
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-clouddriver---23002301">Armory Clouddriver - 2.30.0&amp;hellip;2.30.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2023.07.19.19.07.34.release-1.30.x (#902)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.07.21.18.23.46.release-1.30.x (#905)&lt;/li>
&lt;li>chore(kubectl): upgrade kubectl version from 1.20.6 to 1.22.17 (backport #878) (#917)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.08.17.03.37.47.release-1.30.x (#920)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.08.17.06.57.33.release-1.30.x (#922)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.08.18.20.50.29.release-1.30.x (#923)&lt;/li>
&lt;li>fix: AWS CLI pip installation (#918) (#925)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.08.18.23.44.54.release-1.30.x (#926)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---23002301">Armory Igor - 2.30.0&amp;hellip;2.30.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to igor:2023.08.17.02.51.58.release-1.30.x (#480)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.08.17.04.46.32.release-1.30.x (#481)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.08.18.20.06.35.release-1.30.x (#483)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.08.18.23.01.56.release-1.30.x (#484)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---23002301">Terraformer™ - 2.30.0&amp;hellip;2.30.1&lt;/h4>
&lt;ul>
&lt;li>Session duration support on AWS roles (#500) (#503)&lt;/li>
&lt;li>fix: One more session timeout place (#501) (#505)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---23002301">Armory Rosco - 2.30.0&amp;hellip;2.30.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to rosco:2023.08.17.02.48.33.release-1.30.x (#558)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.08.18.20.06.48.release-1.30.x (#559)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---23002301">Armory Front50 - 2.30.0&amp;hellip;2.30.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to front50:2023.08.18.20.06.26.release-1.30.x (#576)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.08.18.23.02.05.release-1.30.x (#577)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---23002301">Armory Deck - 2.30.0&amp;hellip;2.30.1&lt;/h4>
&lt;h4 id="armory-kayenta---23002301">Armory Kayenta - 2.30.0&amp;hellip;2.30.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to kayenta:2023.08.17.05.53.17.release-1.30.x (#458)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.08.19.00.43.42.release-1.30.x (#461)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.08.22.17.00.47.release-1.30.x (#463)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---23002301">Dinghy™ - 2.30.0&amp;hellip;2.30.1&lt;/h4>
&lt;h4 id="armory-fiat---23002301">Armory Fiat - 2.30.0&amp;hellip;2.30.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to fiat:2023.08.17.02.48.22.release-1.30.x (#511)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.08.18.20.06.20.release-1.30.x (#512)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.08.22.18.06.01.release-1.30.x (#515)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---23002301">Armory Orca - 2.30.0&amp;hellip;2.30.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2023.08.15.19.18.48.release-1.30.x (#677)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.08.17.02.56.00.release-1.30.x (#679)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.08.17.04.55.06.release-1.30.x (#681)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.08.18.20.16.18.release-1.30.x (#683)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.08.18.23.14.04.release-1.30.x (#684)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---23002301">Armory Echo - 2.30.0&amp;hellip;2.30.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to echo:2023.08.17.02.52.47.release-1.30.x (#604)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.08.17.04.48.12.release-1.30.x (#606)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.08.18.20.06.15.release-1.30.x (#607)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.08.18.23.04.19.release-1.30.x (#608)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---23002301">Armory Gate - 2.30.0&amp;hellip;2.30.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to gate:2023.08.17.02.52.18.release-1.30.x (#592)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.08.17.04.50.02.release-1.30.x (#593)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.08.18.20.06.31.release-1.30.x (#595)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.08.18.23.02.38.release-1.30.x (#596)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-clouddriver---1303">Spinnaker Clouddriver - 1.30.3&lt;/h4>
&lt;ul>
&lt;li>feat: Add the possibility to update the default handler for the Global Resource Property Registry. (#5963) (#5973)&lt;/li>
&lt;li>fix(gce): remove the duplicate cache attribute &amp;ldquo;subnet&amp;rdquo; and update the test (#5977) (#5986)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5998)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5999)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#6001)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#6002)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1303">Spinnaker Igor - 1.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1155)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1156)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1158)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1159)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1303">Spinnaker Rosco - 1.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1010)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1011)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-front50---1303">Spinnaker Front50 - 1.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1292)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1293)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1295)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1296)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1303">Spinnaker Deck - 1.30.3&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1303">Spinnaker Kayenta - 1.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump orcaVersion (#978)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#982)&lt;/li>
&lt;li>fix(orca): Fix orca contributors status. (backport #977) (#981)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1303">Spinnaker Fiat - 1.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1088)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1089)&lt;/li>
&lt;li>fix(ssl): Removed unused deprecated okHttpClientConfig from retrofitConfig. (#1082) (#1091)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1303">Spinnaker Orca - 1.30.3&lt;/h4>
&lt;ul>
&lt;li>fix(waiting-executions) : concurrent waiting executions doesn&amp;rsquo;t follow FIFO (backport #4415) (#4503)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4505)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4506)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4509)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4510)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1303">Spinnaker Echo - 1.30.3&lt;/h4>
&lt;ul>
&lt;li>fix(gha): Fix github status log and add tests (#1316) (#1317)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1326)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1327)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1329)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1330)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1303">Spinnaker Gate - 1.30.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1687)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1688)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1690)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1691)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.30.0 Armory Continuous Deployment Release (Spinnaker™ v1.30.2)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-30-0/</link><pubDate>Wed, 09 Aug 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-30-0/</guid><description>
&lt;h2 id="20230809-release-notes">2023/08/09 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.30.0, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="armory-compatibility-matrix">Armory Compatibility Matrix&lt;/h2>
&lt;p>Please consult the &lt;a href="/continuous-deployment/feature-status/continuous-deployment-matrix/">Armory Compatibility Matrix&lt;/a> for information about support and compatibility for Armory Continuous Deployment as well as the products and platforms with which it integrates.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="orca-requires-rdbms-configured-for-utf-8-encoding">Orca requires RDBMS configured for UTF-8 encoding&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>2.28.6 migrates to the AWS MySQL driver from the OSS MySQL drivers. This change is mostly seamless, but we’ve identified one breaking change. If your database was created without utf8mb4 you will see failures after this upgrade. utf8mb4 is the recommended DB format for any Spinnaker database, and we don’t anticipate most users who’ve followed setup instructions to encounter this failure. However, we’re calling out this change as a safeguard.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.6&lt;/p>
&lt;p>&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.30.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="/plugins/plugin-k8s-custom-resource-status/">Kubernetes Custom Resource Status&lt;/a>&lt;/td>
&lt;td>3.0.x&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="artifact-binding">Artifact Binding&lt;/h3>
&lt;p>Customers who utilize parent pipelines to provide artifacts to child pipelines may encounter unexpected errors or results in 2.30+ as child pipelines may not resolve those artifacts correctly.&lt;/p>
&lt;p>Affected versions: Armory CD 2.30.0 and later&lt;/p>
&lt;h3 id="using-custom-resource-status-plugin-and-scale-agent-generates-an-error">Using Custom Resource Status Plugin and Scale Agent generates an error&lt;/h3>
&lt;p>Armory customers that may be using the Custom Resource Status Plugin (2.0.3) may encounter an error “An attempt was made to call a method that does not exist.&amp;quot;
That error will prevent Armory CDSH from starting.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>: Customers encountering this issue can downgrade to &lt;a href="https://docs.armory.io/plugins/plugin-k8s-custom-resource-status/">Custom Resource Status Plugin (2.0.2)&lt;/a> as an option until Armory CDSH versions 2.30.3+ or 2.28.7+ are available.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0&lt;/p>
&lt;h3 id="kayenta-errors-on-startup">Kayenta errors on startup&lt;/h3>
&lt;p>In some instances Kayenta will error because the &lt;em>DiscoveryCompositeHealthContributor&lt;/em> does not implement &lt;em>HealthIndicator.&lt;/em> There is a fix for this that should land in the next dot release.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0&lt;/p>
&lt;h3 id="130-required-artifacts-to-bind-breaks-pipelines">1.30+ “required artifacts to bind” breaks pipelines&lt;/h3>
&lt;p>Expected artifacts can be used in automated triggers and stages, and OSS &lt;a href="https://spinnaker.io/changelogs/1.30.0-changelog/#changes-to-the-way-artifact-constraints-on-triggers-work">1.30&lt;/a> changed the way artifact constraints work on triggers. Unfortunately those changes broke the previous behavior when triggering a pipeline from a stage, and this fix restores the previous behavior.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0&lt;/p>
&lt;h3 id="clouddriver-and-spring-cloud">Clouddriver and Spring Cloud&lt;/h3>
&lt;p>The Spring Boot version has been upgraded, introducing a backwards incompatible change to the way configuration is loaded in Spinnaker. Users will need to set the &lt;em>&lt;strong>spring.cloud.config.enabled&lt;/strong>&lt;/em> property to &lt;em>&lt;strong>true&lt;/strong>&lt;/em> in the service settings of Clouddriver to preserve existing behavior. All of the other configuration blocks remain the same.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.30.0&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:
2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.
This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.27.x and later&lt;/p>
&lt;h2 id="deprecations">Deprecations&lt;/h2>
&lt;p>Reference &lt;a href="https://docs.armory.io/continuous-deployment/feature-status/deprecations/">Feature Deprecations and end of support&lt;/a>&lt;/p>
&lt;h2 id="early-access-features-enabled-by-default">Early access features enabled by default&lt;/h2>
&lt;h3 id="pipelines-adapt-to-sub-pipeline-with-manual-judgment-color">Pipelines adapt to sub pipeline with manual judgment color&lt;/h3>
&lt;p>When a child/sub pipeline is running and requires a manual judgment, the parent pipeline provides a visual representation that the child pipeline has an manual judgement waiting. This &lt;a href="https://github.com/spinnaker/deck/pull/9863">Github pull request&lt;/a> shows a visual representation of the feature in action.&lt;/p>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically cancel Jenkins jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a Spinnaker pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more about Jenkins + Spinnaker in this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">Spinnaker changelog&lt;/a>.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger Spinnaker pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a> in the Spinnaker docs for details.&lt;/p>
&lt;h2 id="early-access-features-enabled-manually">Early access features enabled manually&lt;/h2>
&lt;h3 id="dynamic-rollback-timeout">Dynamic rollback timeout&lt;/h3>
&lt;p>To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck. You need to add this block to &lt;code>orca.yml&lt;/code> file if you want to enable the dynamic rollback timeout feature:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">rollback&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">timeout&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>On the Orca side, the feature flag overrides the default value rollback timeout - 5 min - with a UI input from the user.&lt;/p>
&lt;p>On the Deck side, the feature flag enhances the Rollback Cluster stage UI with timeout input.&lt;/p>
&lt;p>&lt;code>window.spinnakerSettings.feature.dynamicRollbackTimeout = true;&lt;/code>&lt;/p>
&lt;p>The default is used if there is no value set in the UI.&lt;/p>
&lt;h3 id="pipelines-as-code-pr-checks">Pipelines-as-Code PR checks&lt;/h3>
&lt;p>This feature, when enabled, verifies if the author of a commit that changed app parameters has sufficient WRITE permission for that app. You can specify a list of authors whose permissions are not valid. This option’s purpose is to skip permissions checks for bots and tools.&lt;/p>
&lt;p>See &lt;a href="/plugins/pipelines-as-code/install/configure/#permissions-check-for-a-commit">Permissions check for a commit&lt;/a> for details.&lt;/p>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipeline-as-Code to pull Pipelines-as-Code files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you are able to use the Terraform template file provider. Open a support ticket if you need this fix.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="cloudddriver">Cloudddriver&lt;/h3>
&lt;ul>
&lt;li>New mechanism to cache applications known to Front50. See &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#clouddriver">https://spinnaker.io/changelogs/1.29.0-changelog/#clouddriver&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="deck">Deck&lt;/h3>
&lt;ul>
&lt;li>Fixed an issue where the UI was crashing when running pipeline(s) with many stages. This change prevents iterating over child nodes as it has already been checked and as a result greatly reduces the number of interactions and increases speed.&lt;/li>
&lt;/ul>
&lt;h3 id="echo">Echo&lt;/h3>
&lt;ul>
&lt;li>Fixed an issue where Echo was failing to handle /webhooks/git/github requests&lt;/li>
&lt;/ul>
&lt;h3 id="fiat">Fiat&lt;/h3>
&lt;ul>
&lt;li>New way to control how Fiat queries Clouddriver during a role sync (performance improvement)
&lt;ul>
&lt;li>&lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#fiat">https://spinnaker.io/changelogs/1.29.0-changelog/#fiat&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Addressed an issue related to concurrent sync calls causing memory exceptions and lack of available SQL connections. The fix prevents a new synchronization from starting if one is already in progress.&lt;/li>
&lt;/ul>
&lt;h3 id="front50">Front50&lt;/h3>
&lt;ul>
&lt;li>Resolved a performance regression where Front50 cached all pipeline configs on every sync, causing unnecessarily high service load&lt;/li>
&lt;/ul>
&lt;h3 id="gate">Gate&lt;/h3>
&lt;p>&lt;a href="https://github.com/spinnaker/gate/pull/1610">https://github.com/spinnaker/gate/pull/1610&lt;/a> expands support for adding request headers to the response header. Previously limited to X-SPINNAKER-REQUEST-ID, it’s now possible to specify any fields with a X-SPINNAKER prefix via the new interceptors.responseHeader.fields configuration property. The default value is X-SPINNAKER-REQUEST-ID to preserve the previous functionality.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>#gate.yml
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>interceptors:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> responseHeader:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> fields:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - X-SPINNAKER-REQUEST-ID
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - X-SPINNAKER-USER
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="igor">Igor&lt;/h3>
&lt;ul>
&lt;li>New stop API endpoint
&lt;ul>
&lt;li>&lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#igor">https://spinnaker.io/changelogs/1.29.0-changelog/#igor&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="kayenta">Kayenta&lt;/h3>
&lt;ul>
&lt;li>Implemented a MySQL data source for storage&lt;/li>
&lt;/ul>
&lt;h3 id="azure-baking">Azure Baking&lt;/h3>
&lt;ul>
&lt;li>Visit &lt;a href="https://docs.armory.io/continuous-deployment/spinnaker-user-guides/azure-guides/bake-images/">Bake Azure Images in an Armory CD or Spinnaker pipeline&lt;/a> to learn more about this feature.&lt;/li>
&lt;/ul>
&lt;h3 id="aws-ec2-improvements-including-ui-changes">AWS EC2 improvements, including UI changes&lt;/h3>
&lt;ul>
&lt;li>Improvements to AWS EC2 instance types API integration: The integration previously used AWS EC2 pricing docs to retrieve EC2 instance types and information. It was replaced with &lt;a href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html">AWS EC2 describe-instance-types API instead&lt;/a>.&lt;/li>
&lt;li>Improvements to /instanceTypes API: Addition of instance type metadata/ information to API response. See before-after at (&lt;a href="https://github.com/spinnaker/clouddriver/pull/5609)">https://github.com/spinnaker/clouddriver/pull/5609)&lt;/a>.&lt;/li>
&lt;li>Changes to /images API:
◦ Addition of architecture type to images API (used to filter out incompatible instance types in Deck). 
◦ Images Caching agentType was modified to include the account information. Due to this change, your cache might still contain entries for the old cache keys &lt;a href="https://github.com/spinnaker/clouddriver/pull/5609#discussion_r951929849">as seen in Redis&lt;/a>. These old keys will need to be cleaned up manually after upgrading to v1.29, if they are set to never expire.
example:
&lt;ul>
&lt;li>&lt;em>old key: com.netflix.spinnaker.clouddriver.aws.provider.AwsInfrastructureProvider:AmazonInstanceTypeCachingAgent/eu-central-1:relationships&lt;/em>&lt;/li>
&lt;li>&lt;em>new key: com.netflix.spinnaker.clouddriver.aws.provider.AwsInfrastructureProvider:AmazonInstanceTypeCachingAgent/my-aws-devel-acct/eu-central-1:relationships&lt;/em>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>UI Changes&lt;/p>
&lt;ul>
&lt;li>Displaying instance type info in Custom instance type selector in 2 places:
&lt;ul>
&lt;li>As a tooltip for already selected instance types&lt;/li>
&lt;li>Enhanced drop down for list of available instance types&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Adding filtering capability to the drop down in custom instance type selector. Filters implemented:
&lt;ul>
&lt;li>instance family / size / type e.g. c3/ large/ c3.large&lt;/li>
&lt;li>min vcpu e.g. 16vcpu&lt;/li>
&lt;li>min memory e.g 32gib&lt;/li>
&lt;li>instance storage type e.g. ssd, hdd&lt;/li>
&lt;li>spot support&lt;/li>
&lt;li>ebs support&lt;/li>
&lt;li>gpu support&lt;/li>
&lt;li>current generation v/s old generation like *&amp;lsquo;currentGen&amp;rsquo; / &amp;lsquo;oldGen&amp;rsquo;&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="kubernetes">Kubernetes&lt;/h3>
&lt;p>Change &amp;lsquo;red/black&amp;rsquo; to &amp;lsquo;blue/green&amp;rsquo; in Spinnaker. Users coming to Spinnaker are now more familiar with Blue/Green industry terminology than the Netflix-specific phrasing Red/Black.&lt;/p>
&lt;ul>
&lt;li>The Red/Black rollout strategy is marked as deprecated in the UI.&lt;/li>
&lt;li>A Blue/Green rollout strategy is added that is functionally equivalent to the Red/Black rollout strategy. Changes made in Clouddriver and Orca.&lt;/li>
&lt;li>Introduce a pipeline validator in Front50 that validates if red/black is used when creating/updating a Kubernetes pipeline. For now, it is logging a warning, but it will fail when we remove the red/black Kubernetes traffic management strategy.&lt;/li>
&lt;/ul>
&lt;p>Red/Black to Blue/Green migration details:&lt;/p>
&lt;ul>
&lt;li>Front50 already supports migrations but you need to be enable it by adding migrations.enabled=true in your Front50 config. When Front50 starts, it automatically migrates existing pipelines using red/black to blue/green.&lt;/li>
&lt;li>&lt;em>If you do not enable migration&lt;/em>, red/black continues to work until the Spinnaker community decides to remove red/black.&lt;/li>
&lt;/ul>
&lt;h3 id="artifact-handling">Artifact handling&lt;/h3>
&lt;p>Changes to the way artifact constraints on triggers work
If you have a pipeline with multiple triggers using different artifact constraints/expected artifacts, these have for a while been evaluated in an unexpected matter. To learn more, visit
&lt;a href="https://spinnaker.io/changelogs/1.30.0-changelog/#changes-to-the-way-artifact-constraints-on-triggers-work">https://spinnaker.io/changelogs/1.30.0-changelog/#changes-to-the-way-artifact-constraints-on-triggers-work&lt;/a>.&lt;/p>
&lt;h3 id="spring-boot-24-changes">Spring Boot 2.4 changes&lt;/h3>
&lt;ul>
&lt;li>Read more about Spring boot in the &lt;a href="https://spinnaker.io/changelogs/1.30.0-changelog/#spring-boot-24">1.30 Release notes&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.30.2-changelog/">Spinnaker v1.30.2&lt;/a> changelog for details.&lt;/p>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 5dfa9fe9e2285a875f0f39cb29e46a6470f34665
version: 2.30.0
deck:
commit: a5ae63596f79df5c3dd4999253a9ed72dece7de3
version: 2.30.0
dinghy:
commit: 5250de80948732c8caac6ffc5293a8af80a63a0f
version: 2.30.0
echo:
commit: 86c586f7c523a4c320189eff00731271b8d31e32
version: 2.30.0
fiat:
commit: 0150c145b239568c294ab88251dc2fbb20ace279
version: 2.30.0
front50:
commit: bdbf36960c30b3599bdf0fa31620dfaf08927074
version: 2.30.0
gate:
commit: 679225a36b20fe39ecb175813929972c497d1a92
version: 2.30.0
igor:
commit: 020e01bbeaadf3d5eb745b33180bd1011c4b068f
version: 2.30.0
kayenta:
commit: 16aa401c453de95b670524b491cbaa682bcf2817
version: 2.30.0
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 25ccf32473a809846c1c3d4c967bb05ad9622549
version: 2.30.0
rosco:
commit: c72a24d8c560ea7b27fd8ecf45c9c11ca63682f4
version: 2.30.0
terraformer:
commit: 418546f57129380e383e62b6178ed582e6d64a93
version: 2.30.0
timestamp: "2023-05-31 22:11:31"
version: 2.30.0
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-clouddriver---22802300">Armory Clouddriver - 2.28.0&amp;hellip;2.30.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2022.07.07.23.26.37.release-1.28.x (#688)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.07.05.23.42.44.release-1.28.x (#685)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.14.19.25.36.release-1.28.x (#674)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.03.22.38.58.release-1.28.x (#667)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.4 (#655)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.18.17.04.07.release-1.28.x (#653)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.18.16.35.10.release-1.28.x (#652)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.17.21.10.01.release-1.28.x (#651)&lt;/li>
&lt;li>chore(gradle): removing spinnaker gradle fix version (#647) (#648)&lt;/li>
&lt;li>feat(iam): use aws-mysql-jdbc (#586) (#617)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.3 (#642)&lt;/li>
&lt;li>chore(build): upgrade armory settings (#640) (#641)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.2 (#638)&lt;/li>
&lt;li>fix(build): clean mergify conflict (#637)&lt;/li>
&lt;li>fix(build): pass version to nebula, remove publish devSnapshots (#630) (#636)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.27.05.22.30.release-1.28.x (#634)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.27.03.50.34.release-1.28.x (#631)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.26.15.47.37.release-1.28.x (#627)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.26.14.54.42.release-1.28.x (#625)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.1 (#624)&lt;/li>
&lt;li>Updating kubectl version to match OSS (#608) (#609)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.09.02.50.33.release-1.28.x (#604)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.09.00.37.02.release-1.28.x (#603)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.04.16.50.07.master (#600)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.04.21.25.36.master (#601)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.08.14.55.54.master (#602)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.11.10.08.50.master (#605)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.12.02.29.25.master (#606)&lt;/li>
&lt;li>Updating kubectl version to match OSS (#608)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.13.01.25.37.master (#612)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.13.19.21.38.master (#613)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.20.15.17.44.master (#620)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.21.16.12.01.master (#622)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.27.03.25.12.master (#629)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.27.04.54.32.master (#633)&lt;/li>
&lt;li>fix(build): pass version to nebula, remove publish devSnapshots (#630)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.30.11.45.33.master (#639)&lt;/li>
&lt;li>chore(build): upgrade armory settings (#640)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.12.00.27.53.master (#643)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.13.00.04.59.master (#644)&lt;/li>
&lt;li>chore(gradle): removing spinnaker gradle fix version (#647)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.16.18.23.27.master (#649)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.18.17.57.41.master (#654)&lt;/li>
&lt;li>fix(iam-auth): Fixes iam authenticator to dynamic check apis (#618)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.19.21.46.28.master (#657)&lt;/li>
&lt;li>chore(build): updating armory-commons (#656)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.20.17.04.12.master (#658)&lt;/li>
&lt;li>feat(iam): use aws-mysql-jdbc (backport #586) (#646)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.24.02.37.11.master (#661)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.27.00.24.49.master (#662)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.27.15.27.14.master (#663)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.27.17.07.39.master (#664)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.01.18.30.18.master (#665)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.03.19.48.46.master (#666)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.06.17.18.06.master (#668)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.07.17.42.23.master (#669)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.08.20.20.30.master (#670)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.11.16.26.30.master (#671)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.14.18.16.06.master (#672)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.14.18.57.25.master (#673)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.14.23.00.38.master (#675)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.15.23.35.34.master (#676)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.16.18.28.41.master (#677)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.16.22.59.43.master (#678)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.18.02.14.56.master (#679)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.21.14.10.58.master (#680)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.23.19.56.04.master (#681)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.06.24.01.25.13.master (#682)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.07.05.21.07.29.master (#683)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.07.05.23.42.48.master (#684)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#689)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.07.25.16.51.20.master (#693)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.07.27.23.51.58.master (#694)&lt;/li>
&lt;li>Updating aws-iam-authenticator to 0.5.9 due to CVE-2022-2385 (#692)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.01.21.36.35.master (#697)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.02.14.20.57.master (#698)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.03.02.29.38.master (#699)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.08.14.56.30.master (#702)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.15.19.16.42.master (#705)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.15.19.51.15.master (#706)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.16.15.50.05.master (#707)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.22.06.25.08.master (#710)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.24.14.21.39.master (#711)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.24.22.25.06.master (#712)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.25.19.55.27.master (#713)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.09.02.00.09.48.master (#714)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.09.02.01.00.53.master (#715)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.09.02.14.53.21.master (#716)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.09.02.18.17.14.master (#717)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.09.09.19.50.46.master (#718)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.09.12.18.59.36.master (#719)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.09.13.20.43.09.master (#720)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.09.14.16.30.11.master (#721)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.09.27.19.09.40.master (#722)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.10.06.16.45.47.master (#725)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.10.10.17.09.27.master (#726)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.10.10.18.27.46.master (#727)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.10.19.17.17.54.master (#730)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.10.21.21.59.52.master (#731)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.10.27.13.47.05.master (#732)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.01.17.45.19.master (#734)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.02.03.38.36.master (#735)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.02.15.17.26.master (#736)&lt;/li>
&lt;li>fix(azure): forcing reactor version for azure sdk (#737)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.16.18.17.39.master (#739)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.17.00.46.42.master (#740)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.17.17.33.46.master (#743)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.19.02.08.13.master (#745)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.19.17.07.08.master (#746)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.22.17.44.20.master (#747)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.24.16.35.57.master (#748)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.25.06.30.21.master (#749)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.12.02.21.49.55.master (#753)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.12.07.16.15.33.master (#754)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.12.07.21.56.34.master (#755)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.12.09.01.26.47.master (#756)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.12.09.02.30.30.master (#757)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.12.09.03.36.49.master (#758)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.12.09.06.40.08.master (#759)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.12.09.17.04.05.master (#760)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.12.15.17.02.20.master (#762)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.12.21.23.32.36.master (#763)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.12.22.05.26.04.master (#764)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.12.22.12.32.04.master (#765)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.01.01.17.38.55.master (#766)&lt;/li>
&lt;li>fix(cloudfoundry): upgrading armory-commons to use vault secrets (#767)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.01.04.21.11.15.master (#768)&lt;/li>
&lt;li>fix(sql): forcing liquibase version (#770)&lt;/li>
&lt;li>feat(google): Updated google cloud SDK to support GKE &amp;gt;1.26 (#769)&lt;/li>
&lt;li>update(docs): Updated docs on versions (#761)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.01.11.18.48.59.master (#775)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.01.12.22.30.21.master (#776)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.01.13.22.46.13.master (#777)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.01.27.00.21.34.master (#783)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.01.30.16.08.58.master (#785)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.01.30.17.21.25.master (#786)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.01.16.00.05.master (#788)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.08.20.35.59.master (#790)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.08.23.13.15.master (#791)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.09.00.22.48.master (#792)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.09.01.38.58.master (#793)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.09.05.02.13.master (#794)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.09.07.11.08.master (#795)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.14.05.08.28.master (#796)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.15.21.12.08.master (#798)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.16.16.45.16.master (#801)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.20.20.42.57.master (#802)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.20.21.51.30.master (#803)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.22.20.12.12.master (#806)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.23.17.25.27.master (#807)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.23.21.38.10.master (#808)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.02.12.13.06.master (#810)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.09.16.05.50.master (#816)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.13.22.28.44.master (#817)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.18.00.04.47.master (#818)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#837)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.24.23.48.26.release-1.30.x (#839)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.05.14.02.06.release-1.30.x (#856)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.06.10.03.44.release-1.30.x (#859)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.04.07.02.16.05.release-1.30.x (#860)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#861)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#867)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.4 (#869)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#874)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.05.30.19.45.40.release-1.30.x (#882)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---22802300">Armory Deck - 2.28.0&amp;hellip;2.30.0&lt;/h4>
&lt;ul>
&lt;li>fix(font): Switch font to Sans3 (backport #1239) (#1240)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20220713154638.release-1.28.x (#1237)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20220706232954.release-1.28.x (#1234)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20220705204056.release-1.28.x (#1233)&lt;/li>
&lt;li>fix(expandnav): Update recoil version to the same version as in oss project (backport #1224) (#1225)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20220606173439.release-1.28.x (#1223)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20220524093036.release-1.28.x (#1221)&lt;/li>
&lt;li>docs(tf): improve backend artifact help txt for the stage (#1113)&lt;/li>
&lt;li>fix(expandnav): Update recoil version to the same version as in oss project (#1224)&lt;/li>
&lt;li>fix(font): Switch font to Sans3 (#1239)&lt;/li>
&lt;li>feat(armory): Add quickspin feature flag (#1249)&lt;/li>
&lt;li>style(logo): Changed Armory logo (#1264)&lt;/li>
&lt;li>docs(yarn): added troubleshooting for yarn and github (#1275)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20221128231909.master (#1276)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20221130174048.master (#1281)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20221212162149.master (#1283)&lt;/li>
&lt;li>fix(runtime): There was an incompatibility between angular version (1.8.0) and angular sanitize version (#1284)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20221222045945.master (#1285)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230105160952.master (#1286)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230110154919.master (#1287)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230110161007.master (#1288)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230125224635.master (#1289)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230202120433.master (#1293)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230207090202.master (#1297)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230214090728.master (#1298)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230220114621.master (#1299)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230220132814.master (#1300)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230321144223.release-1.30.x (#1331)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---22802300">Dinghy™ - 2.28.0&amp;hellip;2.30.0&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Bump OSS Dinghy version (#461)&lt;/li>
&lt;li>chore(dependencies): update plank version (#464)&lt;/li>
&lt;li>chore(dependencies): updated oss dinghy version to v0.0.0-20221025163127-2d465e0cea94 (#470)&lt;/li>
&lt;li>chore(docs): added docs about backporting oss features (#474)&lt;/li>
&lt;li>feat(tls): Enables TLS redis URLs (#476)&lt;/li>
&lt;li>chore(dependencies): Updated oss dinghy version (#477)&lt;/li>
&lt;li>chore(alpine): Upgrade alpine version (#481)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---22802300">Armory Echo - 2.28.0&amp;hellip;2.30.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.11.4 (#472)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.3 (#471)&lt;/li>
&lt;li>chore(build): upgrade armory settings (#469) (#470)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.2 (#468)&lt;/li>
&lt;li>fix(build): use semver version from astrolabe variables (#464) (#465)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.27.04.44.17.release-1.28.x (#463)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.27.04.35.31.release-1.28.x (#462)&lt;/li>
&lt;li>fix(build): include version to artifactory/nebula plugin (backport #456) (#458)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.26.16.15.57.release-1.28.x (#455)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.1 (#453)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.09.02.36.00.release-1.28.x (#447)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.01.15.36.33.master (#443)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.04.21.06.21.master (#446)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.14.16.53.32.master (#448)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.20.15.17.48.master (#449)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.20.18.17.24.master (#450)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.21.15.59.16.master (#451)&lt;/li>
&lt;li>fix(build): include version to artifactory/nebula plugin (#456)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.27.04.21.23.master (#459)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.27.04.28.29.master (#460)&lt;/li>
&lt;li>fix(build): use semver version from astrolabe variables (#464)&lt;/li>
&lt;li>chore(build): upgrade armory settings (#469)&lt;/li>
&lt;li>chore(build): updating armory-commons (#473)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.28.11.23.33.master (#467)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.05.27.15.13.57.master (#474)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.05.27.20.17.29.master (#475)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.06.06.17.04.57.master (#476)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.06.14.18.38.40.master (#477)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.07.27.23.37.25.master (#478)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.08.03.02.53.03.master (#480)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.08.13.04.22.48.master (#485)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.08.15.19.05.42.master (#486)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.08.25.19.33.36.master (#489)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.09.12.18.31.44.master (#490)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.09.13.20.21.05.master (#491)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.09.14.16.00.12.master (#492)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.09.27.18.06.29.master (#493)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.10.03.15.36.31.master (#494)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.10.10.17.49.34.master (#495)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.11.18.18.22.08.master (#498)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.11.19.16.28.16.master (#500)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.11.24.15.57.49.master (#501)&lt;/li>
&lt;li>re-trigger build (#502)&lt;/li>
&lt;li>re-trigger build for stack (#505)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.11.30.16.14.24.master (#506)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.12.07.16.52.30.master (#508)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.12.09.00.48.10.master (#510)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.12.09.02.57.46.master (#511)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.12.09.06.02.22.master (#512)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.12.09.16.42.31.master (#513)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.12.14.15.26.17.master (#514)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.12.14.22.12.50.master (#517)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.12.16.00.25.34.master (#518)&lt;/li>
&lt;li>fix: Update config after OSS spring boot migration (#519)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.01.12.21.50.58.master (#522)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.01.20.14.32.19.master (#524)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.01.26.22.02.31.master (#528)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.01.30.15.29.44.master (#529)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.01.30.16.27.29.master (#530)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.02.08.08.42.16.master (#531)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.02.08.19.53.33.master (#532)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.02.08.22.19.31.master (#533)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.02.08.23.29.50.master (#534)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.02.09.00.59.31.master (#535)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.02.09.06.34.26.master (#536)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.02.10.05.34.06.master (#537)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.02.20.19.52.01.master (#538)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.02.20.21.09.15.master (#539)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#558)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.04.05.11.38.02.release-1.30.x (#572)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.04.07.01.30.15.release-1.30.x (#573)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#575)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#578)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.4 (#580)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#583)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---22802300">Armory Fiat - 2.28.0&amp;hellip;2.30.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to fiat:2022.04.27.04.04.45.release-1.28.x (#370)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.4 (#365)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.3 (#362)&lt;/li>
&lt;li>chore(build): upgrade armory settings (#360) (#361)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.2 (#359)&lt;/li>
&lt;li>fix(build): pass version to nebula and remove devSnapshot publishing (backport #355) (#358)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.04.26.16.36.30.release-1.28.x (#352)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.1 (#351)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.04.09.02.00.53.release-1.28.x (#345)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.04.01.22.02.12.master (#341)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.04.04.21.04.58.master (#344)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.04.13.19.19.16.master (#346)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.04.20.15.19.32.master (#347)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.04.21.15.56.28.master (#349)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.04.27.03.57.12.master (#354)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.04.27.04.03.50.master (#356)&lt;/li>
&lt;li>fix(build): pass version to nebula and remove devSnapshot publishing (#355)&lt;/li>
&lt;li>chore(build): upgrade armory settings (#360)&lt;/li>
&lt;li>chore(build): updating armory-commons (#366)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.05.19.22.57.38.master (#371)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.05.27.15.12.30.master (#374)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.06.06.17.03.12.master (#375)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.06.14.18.38.36.master (#376)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.06.24.16.02.34.master (#377)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#378)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.07.26.00.02.40.master (#381)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.07.26.12.49.24.master (#382)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.07.27.23.28.35.master (#383)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.08.03.02.30.50.master (#384)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.08.13.22.29.32.master (#389)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.08.15.19.02.00.master (#390)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.12.09.06.00.32.master (#416)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.12.15.16.51.17.master (#417)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.12.22.04.47.41.master (#418)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.01.12.21.48.17.master (#421)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.01.19.18.55.19.master (#422)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.01.23.17.07.21.master (#423)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.01.26.22.03.42.master (#424)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.01.30.15.29.51.master (#425)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.01.30.16.28.00.master (#426)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.02.07.14.56.27.master (#427)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.02.07.15.21.58.master (#428)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.02.08.19.56.02.master (#431)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.02.08.23.29.06.master (#433)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.02.09.00.55.51.master (#434)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.02.09.06.30.45.master (#435)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.02.17.16.05.18.master (#436)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.02.20.19.50.58.master (#437)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#456)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.04.05.11.36.40.release-1.30.x (#470)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#471)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#475)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#478)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---22802300">Armory Front50 - 2.28.0&amp;hellip;2.30.0&lt;/h4>
&lt;ul>
&lt;li>fix(dependencies): match google api+auth versions to those set in oss (#432) (#433)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.4 (#424)&lt;/li>
&lt;li>feat(iam): use aws-mysql-jdbc (#392) (#401)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.3 (#422)&lt;/li>
&lt;li>fix(build): pass version to nebula and remove devSnapshot publishing (backport #419) (#421)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.2 (#420)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.04.27.05.12.35.release-1.28.x (#418)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.04.27.05.02.09.release-1.28.x (#414)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.04.26.16.45.10.release-1.28.x (#411)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.1 (#410)&lt;/li>
&lt;li>chore(build): resolve conflicting armoryCommonsVersion to 3.10.6 (#403)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.6 (#382) (#402)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.04.09.02.35.50.release-1.28.x (#400)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.04.09.00.23.58.release-1.28.x (#399)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.04.01.15.36.24.master (#394)&lt;/li>
&lt;li>fix(build): pass version to nebula and remove devSnapshot publishing (#419)&lt;/li>
&lt;li>chore(build): updating armory-commons (#426)&lt;/li>
&lt;li>feat(iam): use aws-mysql-jdbc (backport #392) (#405)&lt;/li>
&lt;li>fix(dependencies): match google api+auth versions to those set in oss (#432)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#434)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.04.07.01.28.32.release-1.30.x (#532)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#514)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#533)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.04.27.18.45.08.release-1.30.x (#541)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#538)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2023.05.22.19.11.48.release-1.30.x (#548)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#544)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22802300">Armory Gate - 2.28.0&amp;hellip;2.30.0&lt;/h4>
&lt;ul>
&lt;li>chore(release): Change the URL to point to the local opt/gate repository (#450) (#451) (#452)&lt;/li>
&lt;li>chore(release): Change the URL to point to the local opt/gate repository (#450) (#451)&lt;/li>
&lt;li>chore(release): Bump armory header version (#448) (#449)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.4 (#444)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.3 (#443)&lt;/li>
&lt;li>chore(build): upgrade armory settings (#441) (#442)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.2 (#440)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.27.05.20.04.release-1.28.x (#436)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.1 (#428)&lt;/li>
&lt;li>fix(build): pass version to nebula and remove devSnapshots publishing (backport #438) (#439)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.01.15.36.20.master (#417)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.04.21.06.25.master (#422)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.20.15.19.23.master (#423)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.20.18.17.06.master (#424)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.21.15.56.14.master (#425)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.21.17.35.08.master (#426)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.27.05.02.05.master (#432)&lt;/li>
&lt;li>fix(build): pass version to nebula and remove devSnapshots publishing (#438)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.27.05.07.06.master (#433)&lt;/li>
&lt;li>chore(build): upgrade armory settings (#441)&lt;/li>
&lt;li>chore(build): updating armory-commons (#445)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.05.27.15.15.52.master (#446)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.06.06.17.05.14.master (#447)&lt;/li>
&lt;li>chore(release): Bump armory header version (#448)&lt;/li>
&lt;li>chore(release): Change the URL to point to the local opt/gate repository (#450)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.06.14.18.37.46.master (#453)&lt;/li>
&lt;li>chore(release): Backport header fix to 2.27.x release (#454)&lt;/li>
&lt;li>Revert &amp;ldquo;chore(release): Backport header fix to 2.27.x release (#454)&amp;rdquo; (#456)&lt;/li>
&lt;li>fix(perf): upgrade alpine version to resolve perf in GCP (#457)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.07.12.12.33.00.master (#461)&lt;/li>
&lt;li>fix(header): update plugins.json with newest header version (#482)&lt;/li>
&lt;li>revert(header): update plugins.json with newest header version (#484)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#537)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#554)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.04.07.01.27.28.release-1.30.x (#553)&lt;/li>
&lt;li>fix(tests): Fix JUnit tests (#558)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#559)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#563)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---22802300">Armory Igor - 2.28.0&amp;hellip;2.30.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.11.4 (#342)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.3 (#341)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.04.27.05.30.38.release-1.28.x (#336)&lt;/li>
&lt;li>chore(build): pass version to nebula and remove devSnapshot publishing (backport #337) (#340)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.2 (#339)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.04.01.15.36.29.master (#319)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.04.28.14.35.18.master (#338)&lt;/li>
&lt;li>chore(build): pass version to nebula and remove devSnapshot publishing (#337)&lt;/li>
&lt;li>chore(build): updating armory-commons (#343)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.05.27.15.14.21.master (#344)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.05.27.20.14.47.master (#345)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.06.06.17.04.26.master (#346)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.06.14.18.37.51.master (#347)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#348)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.07.20.18.17.25.master (#351)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.07.27.23.35.29.master (#352)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.08.01.21.10.11.master (#353)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.08.03.02.29.42.master (#354)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.08.13.22.29.05.master (#357)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.08.15.19.01.51.master (#358)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.08.18.16.17.36.master (#362)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.08.25.19.31.07.master (#364)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.08.26.15.15.54.master (#365)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.09.12.18.32.49.master (#366)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.09.13.20.18.06.master (#367)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.09.14.15.59.58.master (#368)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#431)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.04.07.01.27.38.release-1.30.x (#448)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#449)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#452)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#455)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---22802300">Armory Kayenta - 2.28.0&amp;hellip;2.30.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.11.4 (#343)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.3 (#342)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.2 (#340)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.04.27.05.42.08.release-1.28.x (#338)&lt;/li>
&lt;li>chore(build): pass version to nebula and remove devSnapshot publishing (backport #339) (#341)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.03.23.21.03.31.master (#323)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.04.27.05.33.46.master (#336)&lt;/li>
&lt;li>chore(build): pass version to nebula and remove devSnapshot publishing (#339)&lt;/li>
&lt;li>chore(build): updating armory-commons (#344)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#345)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.07.20.18.15.49.master (#348)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.07.20.22.34.41.master (#350)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.08.03.02.54.58.master (#353)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.08.13.22.24.28.master (#354)&lt;/li>
&lt;li>feat(scc): Support spring cloud config system like other services for? (#371)&lt;/li>
&lt;li>fix(kayenta-integration-tests): update dynatrace tenant to qso00828 (#376)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.12.08.17.37.22.master (#375)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.01.17.20.42.16.master (#385)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.01.23.17.15.20.master (#386)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.01.24.16.10.35.master (#387)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#424)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.04.13.23.42.23.release-1.30.x (#427)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#428)&lt;/li>
&lt;li>chore(refactoring): refactored setting default system properties (#429)&lt;/li>
&lt;li>fix: Update path of main class. (#432)&lt;/li>
&lt;li>fix(config): add missing exclude spring config (#435) (#436)&lt;/li>
&lt;li>fix: Remove whitespace when defining spring properties (#437) (#438)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#439)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---22802300">Armory Orca - 2.28.0&amp;hellip;2.30.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.11.4 (#488)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.3 (#486)&lt;/li>
&lt;li>feat(iam): aws mysql jdbc (#449) (#464)&lt;/li>
&lt;li>chore(build): upgrade armory settings (#484) (#485)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.2 (#483)&lt;/li>
&lt;li>fix(build): pass version to nebula and remove devsnapshot publishing (backport #481) (#482)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.27.05.53.34.release-1.28.x (#479)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.27.05.36.33.release-1.28.x (#476)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.26.17.14.12.release-1.28.x (#472)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.1 (#471)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.09.02.41.36.release-1.28.x (#462)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.01.22.15.58.master (#459)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#613)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.04.07.01.52.33.release-1.30.x (#629)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.2 (#630)&lt;/li>
&lt;li>chore(build): Backport missing build changes (#634)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#635)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.4 (#637)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#642)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.05.18.14.27.05.release-1.30.x (#644)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22802300">Armory Rosco - 2.28.0&amp;hellip;2.30.0&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.11.0 (#402)&lt;/li>
&lt;li>fix(mergify):fix conflicts (#419)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.4 (#418)&lt;/li>
&lt;li>fix(build): pass version to nebula and use baseServiceVersion in all ? (#415) (#417)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.3 (#416)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.2 (#413)&lt;/li>
&lt;li>chore(build): remove platform build (#297) (#412)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.27.03.24.16.release-1.28.x (#410)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.26.21.07.59.release-1.28.x (#407)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.1 (#403)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.01.15.34.25.master (#395)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.04.21.04.50.master (#397)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.20.02.37.26.master (#398)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.20.02.56.12.master (#399)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.20.18.17.20.master (#400)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.21.15.56.38.master (#401)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.26.20.48.56.master (#405)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.27.02.44.16.master (#408)&lt;/li>
&lt;li>chore(build): remove platform build (#297)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.05.04.22.07.45.master (#414)&lt;/li>
&lt;li>fix(build): pass version to nebula and use baseServiceVersion in all ? (#415)&lt;/li>
&lt;li>chore(build): updating armory-commons (#420)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.05.04.22.07.45.master (#421)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.05.27.15.12.22.master (#422)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.06.06.17.03.08.master (#423)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.06.09.22.08.52.master (#424)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.06.10.15.00.46.master (#425)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.06.14.18.37.43.master (#426)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.06.18.02.01.01.master (#427)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.07.09.02.24.56.master (#429)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#428)&lt;/li>
&lt;li>feat(packer): Upgraded packer to version 1.8.1 (#432)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.07.18.22.45.28.master (#433)&lt;/li>
&lt;li>feat(dockerfile): add Kustomize 4 to Dockerfiles (#434)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.1 (#508)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2023.04.05.11.40.04.release-1.30.x (#523)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.3 (#528)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.13.5 (#532)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---22802300">Terraformer™ - 2.28.0&amp;hellip;2.30.0&lt;/h4>
&lt;ul>
&lt;li>feat(azure): Add azure cli (#450) (#470)&lt;/li>
&lt;li>feat(tls): Support for TLS Redis (#456) (#468)&lt;/li>
&lt;li>chore(build): update mergify config (#451) (#465)&lt;/li>
&lt;li>chore(logs): Add terraform logs (#464) (#467)&lt;/li>
&lt;li>fix(test): Changed clouddriver version (#463) (#466)&lt;/li>
&lt;li>fix(artifacts): fix npe when using binary tf plugins (#455) (#461)&lt;/li>
&lt;li>feat(terraform): Adds show option for terraform stage (#447)&lt;/li>
&lt;li>chore(build): update mergify config (#451)&lt;/li>
&lt;li>fix(artifacts): fix npe when using binary tf plugins (#455)&lt;/li>
&lt;li>fix(test): Changed clouddriver version (#463)&lt;/li>
&lt;li>chore(logs): Add terraform logs (#464)&lt;/li>
&lt;li>chore(gha): run the tf versions action when tf_install script changes (#397)&lt;/li>
&lt;li>feat(tls): Support for TLS Redis (#456)&lt;/li>
&lt;li>feat(removed): Remove old versions of TF that should no longer be used (#462)&lt;/li>
&lt;li>feat(azure): Add azure cli (#450)&lt;/li>
&lt;li>fix(log): calling remote logging asynchronously (#471)&lt;/li>
&lt;li>Adding TF versions 1.1.x 1.2.x and missing patch versions (#472)&lt;/li>
&lt;li>Adding TF versions up to 1.3.4 (#477)&lt;/li>
&lt;li>Updating TF versions from 0.12.x-1.3.5 (#481)&lt;/li>
&lt;li>fix(versions): Sets version constraints for kubectl &amp;amp; aws-iam-authent? (#487)&lt;/li>
&lt;li>Fixes builds with golint being dead until were on a newer golang (#491)&lt;/li>
&lt;li>feat(gcloud): Bump to latest gcloud sdk &amp;amp; adds the GKE Auth plugin (#490)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-clouddriver---1302">Spinnaker Clouddriver - 1.30.2&lt;/h4>
&lt;ul>
&lt;li>fix(appEngine): lazy init for App Engine beans for credentials (backport #5749) (#5750)&lt;/li>
&lt;li>fix(gitrepo): Support to authenticate with user and token (#5733) (#5736)&lt;/li>
&lt;li>fix(core): ignore roles for anonymous user to access account (backport #5726) (#5727)&lt;/li>
&lt;li>fix(cf): scale app before building droplet (backport #5692) (#5710)&lt;/li>
&lt;li>fix(cf): update service binding name regex (backport #5663) (#5709)&lt;/li>
&lt;li>chore(titus): limit protobuf to 3.17.3 (#5706) (#5714)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#5697) (#5701)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#5696) (#5699)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#5689) (#5694)&lt;/li>
&lt;li>fix(kubernetes): Pin Debian Package version of kubectl as well (#5685) (#5687)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5684)&lt;/li>
&lt;li>chore(dependencies): don&amp;rsquo;t create an autobump PR for halyard on a clo? (backport #5677) (#5683)&lt;/li>
&lt;li>chore(it): add CR/CRD integration tests (#5672)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5679)&lt;/li>
&lt;li>feat(kubernetes): support propagation policy in delete manifest stage (#5678)&lt;/li>
&lt;li>fix(sql): Fix running tasks listing (#5680)&lt;/li>
&lt;li>fix(kubernetes): Pin Debian Package version of kubectl as well (#5685)&lt;/li>
&lt;li>chore: bump google cloud sdk to v374.0.0 (#5644)&lt;/li>
&lt;li>fix(dependency): Issue of missing javax.validation:validation-api dependency while upgrading the spring cloud to Hoxton.SR12 in kork (#5688)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#5689)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5690)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5691)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#5696)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#5697)&lt;/li>
&lt;li>refactor(clusters): Add typing and convert to java syntax. (#5320)&lt;/li>
&lt;li>fix(docker): Support sortTagsByDate for SQL cache (#5098)&lt;/li>
&lt;li>chore(titus): limit protobuf to 3.17.3 (#5706)&lt;/li>
&lt;li>fix(cf): update service binding name regex (#5663)&lt;/li>
&lt;li>fix(cf): set build sizing (#5692)&lt;/li>
&lt;li>feat(search): provide a way to turn off cats search provider and kubernetes search provider (#5595)&lt;/li>
&lt;li>fix(core): remove duplicate LoggingInstrumentation, MetricInstrumentation and CatsOnDemandCacheUpdater beans (#5705)&lt;/li>
&lt;li>chore(ci): Only run CodeQL on Spinnaker repos (#5715)&lt;/li>
&lt;li>feat(cfn): add property notificationARNs (#5708)&lt;/li>
&lt;li>fix(core): set error message for AtomicOperationConverterNotFoundException (#5717)&lt;/li>
&lt;li>feat(kubernetes): enable getManifest() to return Kubernetes system resources (#5720)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5721)&lt;/li>
&lt;li>fix(web): copy the MDC to threads that service async endpoints (#5716)&lt;/li>
&lt;li>feat(provider/azure): Wait for server group healthy before continuing (#5723)&lt;/li>
&lt;li>fix(core): ignore roles for anonymous user to access account (#5726)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5728)&lt;/li>
&lt;li>fix(provider/azure): Allow internal load balancers to show up (#5730)&lt;/li>
&lt;li>fix(provider/azure): Scale sets can become healthy after time (#5729)&lt;/li>
&lt;li>fix(provider/azure): Remove unused serverGroups tags (#5724)&lt;/li>
&lt;li>fix(build): Remove temporary workaround from 2016 (#5725)&lt;/li>
&lt;li>refactor(groovy): migrate things to Java (#5703)&lt;/li>
&lt;li>fix(gitrepo): Support to authenticate with user and token (#5733)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5735)&lt;/li>
&lt;li>feat(core): User secrets and account upsert (#5719)&lt;/li>
&lt;li>feat(artifacts/s3): make the AmazonS3 client used for retrieving s3 artifacts configurable (#5734)&lt;/li>
&lt;li>feat(aws/image): add the aws.defaults.image-states configuration property (a comma-separated string (#5732)&lt;/li>
&lt;li>chore(dependencies): use org.apache.commons:commons-compress:1.21 to fix CVE-2021-35516 and CVE-2021-35517 (#5731)&lt;/li>
&lt;li>feat(artifacts/s3): add request handler for the s3 client used to retrieve artifacts to enable http connection pool metrics (#5738)&lt;/li>
&lt;li>config(web): explicit qualifier bean for AsyncTaskExecutor in WebConfig (#5741)&lt;/li>
&lt;li>fix(azure): increase health interval (#5740)&lt;/li>
&lt;li>fix(caching): K8s cache affected when not enough permissions in service account (#5742)&lt;/li>
&lt;li>fix(appEngine): lazy init for appengine beans for credentials (#5749)&lt;/li>
&lt;li>feat(Aws-Lambda): Added Endpoints to delete Concurrencies (#5743)&lt;/li>
&lt;li>fix(provider/google): Added scope to the credentials (#5718)&lt;/li>
&lt;li>feat(gce): to support kork-credentials abstractions (#5747)&lt;/li>
&lt;li>fix(logging): Fix log message format (#5755)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5756)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5757)&lt;/li>
&lt;li>fix(clouddriver-kubernetes): Changed property to name from getName (#5754)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#5758)&lt;/li>
&lt;li>feat(provider/google): GCE Autoscaler Support for Clouddriver. (#5748)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5766)&lt;/li>
&lt;li>Protobuf for m1 (#5765)&lt;/li>
&lt;li>Arm64 support (#5767)&lt;/li>
&lt;li>chore: bump gcloud version to 398.0.0 (#5761)&lt;/li>
&lt;li>fix(ECS): support upper case on the tag of image (#5770)&lt;/li>
&lt;li>feat(aws): Improving AWS EC2 instance types API integration and caching, feat(aws): Adding archi type to images API and caching (#5609)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5772)&lt;/li>
&lt;li>fix(cats/redis): explicitly remove an agent from the activeAgents map when it is unscheduled (#5774)&lt;/li>
&lt;li>perf(web/cluster): make getForAccountAndNameAndType() more efficient (#5775)&lt;/li>
&lt;li>feat(kubernetes): Add a check to verify if application name obtained from a kubernetes manifest exists in Front50 (#5777)&lt;/li>
&lt;li>feat(kubernetes): add support for retrieving run job logs from a specific pod (#5778)&lt;/li>
&lt;li>chore(aws/integration): make it easier to diagnose failures in CreateServerGroupSpec (#5780)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5781)&lt;/li>
&lt;li>test(GoogleSecretManager): add a test to make sure the right versions of libraries are built (#5773)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5782)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5783)&lt;/li>
&lt;li>fix(core): Remove payload data from logs (#5784)&lt;/li>
&lt;li>feat(azure): Upgrade azure sdk to the latest one (#5791)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5786)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5794)&lt;/li>
&lt;li>chore(kubernetes): stop specifying the version of io.kubernetes:client-java (#5797)&lt;/li>
&lt;li>feat(azure): Add cache agents to cache custom VM managed images (#5792)&lt;/li>
&lt;li>chore(build): give local builds as much memory as we do in CI (#5796)&lt;/li>
&lt;li>fix(google): Fix for the missing CredentialsRepository issue (#5793)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5800)&lt;/li>
&lt;li>fix(cats-sql/test): prevent null pointer exception during cleanup (#5798)&lt;/li>
&lt;li>feat(azure): Fetch Azure managed images from the managed images namespace cache (#5795)&lt;/li>
&lt;li>chore(configserver): use version 0.14.2 of com.github.wnameless.json:json-flattener (#5804)&lt;/li>
&lt;li>fix(appengine): Fixes app engine credentials repo (#5807)&lt;/li>
&lt;li>fix(provider/azure): Fix CreateAzureServerGroupWithAzureLoadBalancerAtomicOperation and DestroyAzureServerGroupAtomicOperation after migrating to latest Azure SDK (#5803)&lt;/li>
&lt;li>chore(deps): remove version specification from org.yaml:snakeyaml (#5812)&lt;/li>
&lt;li>fix(kubernetes): teach KubernetesManifest to support kubernetes resources where the spec is not a map (#5814)&lt;/li>
&lt;li>chore(test): ignore tests that require docker when it&amp;rsquo;s not available (#5815)&lt;/li>
&lt;li>feat(kubernetes): Introduce blue/green traffic management strategy (#5811)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#5819)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5821)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5822)&lt;/li>
&lt;li>fix(artifacts/bitbuket): added ACCEPT Header when using token auth (#5813)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5825)&lt;/li>
&lt;li>feat(provider/google): Added cloudrun provider functionality in clouddriver. (#5751)&lt;/li>
&lt;li>chore(kubernetes): remove duplicate dependency declaration of org.mockito:mockito-core (#5829)&lt;/li>
&lt;li>refactor(web): Clean up redundant spring property in gradle file (#5834)&lt;/li>
&lt;li>feat(kubernetes): add endpoints to allow k8s tasks to be retried by orca (#5833)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5836)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5837)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5838)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5839)&lt;/li>
&lt;li>chore(dependencies): remove dependency on groovy-all where straightforward (#5840)&lt;/li>
&lt;li>feat(k8s): Add Deployment Kind support for Blue/Green deployments (#5830)&lt;/li>
&lt;li>Revert &amp;ldquo;feat(k8s): Add Deployment Kind support for Blue/Green deployments (#5830)&amp;rdquo; (#5843)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5842)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#5844)&lt;/li>
&lt;li>test(integration): Prevent interference between tests (#5835)&lt;/li>
&lt;li>chore(dependencies): pin version of com.github.tomakehurst:wiremock (#5845)&lt;/li>
&lt;li>feat(kubernetes): add visibility to KubectlJobExecutor by adding logs and extending the task object to include stdout and stderr info (#5846)&lt;/li>
&lt;li>feat(gke): Enables gcloud auth plugin for 1.26+ GKE clusters (#5847)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5853)&lt;/li>
&lt;li>chore(kubernetes/test): actually run the junit tests (#5855)&lt;/li>
&lt;li>fix(kubectl): add metrics to retries, make log messages more descriptive and support retries for all kubectl actions (#5854)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5861)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5862)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5863)&lt;/li>
&lt;li>chore(cats): make relationship log info instead of warn (#5668)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5867)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5869)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5870)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5871)&lt;/li>
&lt;li>feat(core): copy the MDC into work done by PooledRequests (#5868)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5872)&lt;/li>
&lt;li>chore(dependencies): use version 3.21.12 of com.google.protobuf (#5873)&lt;/li>
&lt;li>fix(google): make AbstractAtomicOperationsCredentialsConverter generic type (#5866)&lt;/li>
&lt;li>fix(google): added null check for autoscaler custom metric scaling policies (#5849)&lt;/li>
&lt;li>fix(kubernetes): Revert to using the dockerImage Artifact Replacer for cronjobs (#5876)&lt;/li>
&lt;li>chore(dependencies): remove dependency on groovy-all with required groovy package (#5879)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5883)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5884)&lt;/li>
&lt;li>fix(ecr): Two credentials with same accountId confuses EcrImageProvider with different regions (#5885)&lt;/li>
&lt;li>fix(manifest-replicas): ReplicaSet Source-Capacity (#5874)&lt;/li>
&lt;li>fix(aws): don&amp;rsquo;t log empty warning BasicAmazonDeployDescriptionValidator.validate (#5889)&lt;/li>
&lt;li>fix(gce): fixed the error caused by account removal (#5882)&lt;/li>
&lt;li>fix(tests): Introduce junit vintage engine for junit4 test cases to kotlin-test.gradle, cleanup of useJUnitPlatform() from sub-modules and removing spek.gradle in clouddriver (#5901)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5902)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5905)&lt;/li>
&lt;li>fix(cats-redis): release Semaphore to avoid leaking (#5903)&lt;/li>
&lt;li>fix(core): Renamed a query parameter for template tags (#5906)&lt;/li>
&lt;li>chore(aws): Update AWS IAM Authenticator version&lt;/li>
&lt;li>fix(helm): propagate throwable on helm error (#5893)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5912)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5938)&lt;/li>
&lt;li>chore(dependencies): don&amp;rsquo;t create an autobump PR for halyard on a clouddriver release branch (#5677) (#5939)&lt;/li>
&lt;li>fix(metrics): revert metric names to pre-Java (#5936) (#5942)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5943)&lt;/li>
&lt;li>fix(aws): ECS Service Tagging broken (backport #5954) (#5958)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1302">Spinnaker Deck - 1.30.2&lt;/h4>
&lt;ul>
&lt;li>fix(ci): fetch previous tag from git instead of API (backport #9847) (#9850)&lt;/li>
&lt;li>fix(aws): Fix Create Server Group button (backport #9865) (#9866)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (backport #9848) (#9852)&lt;/li>
&lt;li>fix(core): Synchronize the verticalNavExpandedAtom using an atom effect (backport #9859) (#9860)&lt;/li>
&lt;li>fix(cf): extract service name from context for execution details (backport #9843) (#9857)&lt;/li>
&lt;li>fix(ci): Setup NodeJS the same in every GHA (#9834)&lt;/li>
&lt;li>chore(dependencies): bump angular from 1.6.10 to 1.8.0 (#9836)&lt;/li>
&lt;li>chore(publish): publish packages (#9837)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#9838)&lt;/li>
&lt;li>chore(deps): bump async from 2.6.3 to 2.6.4 (#9840)&lt;/li>
&lt;li>chore(deps): bump async from 2.6.3 to 2.6.4 in /test/functional (#9839)&lt;/li>
&lt;li>Updating email validation to allow for longer domains per issue-6636 (#9841)&lt;/li>
&lt;li>chore(publish): publish packages (#9842)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#9847)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#9848)&lt;/li>
&lt;li>fix(core): apps always display as unconfigured (#9853)&lt;/li>
&lt;li>chore(publish): publish packages (#9854)&lt;/li>
&lt;li>chore(cve): bump @spinnaker deps and fix CVEs (#9855)&lt;/li>
&lt;li>fix(cf): extract service name from context for execution details (#9843)&lt;/li>
&lt;li>chore(publish): publish packages (#9856)&lt;/li>
&lt;li>feat(core): Synchronize the verticalNavExpandedAtom using an atom effect (#9859)&lt;/li>
&lt;li>Fix(Oracle): Fixes Spinnaker configuration issue with Oracle object storage (#9858)&lt;/li>
&lt;li>chore: Set permissions for GitHub actions (#9844)&lt;/li>
&lt;li>chore(publish): publish packages (#9861)&lt;/li>
&lt;li>style(core): pipelines adapt to sub pipeline with manual judgment color (#9863)&lt;/li>
&lt;li>fix(aws): Fix Create Server Group button (#9865)&lt;/li>
&lt;li>chore(publish): publish packages (#9864)&lt;/li>
&lt;li>feat(rosco): add Kustomize 4 support (#9868)&lt;/li>
&lt;li>chore(publish): publish packages (#9869)&lt;/li>
&lt;li>perf(pipelinegraph): Improve the performance of the pipeline graph rendering (#9871)&lt;/li>
&lt;li>feat(provider/google): enhanced autoscaler functionality. (#9867)&lt;/li>
&lt;li>chore(gha): synchronize peer dependencies during bump packages step (#9872)&lt;/li>
&lt;li>feat(dependencies): Update vulnerable dependencies (#9875)&lt;/li>
&lt;li>chore(gha): add quotes around variables to treat as strings instead of possible commands (#9876)&lt;/li>
&lt;li>Output bump packages bug (#9879)&lt;/li>
&lt;li>Publish packages to NPM (#9880)&lt;/li>
&lt;li>chore(build): Build docker images for multiple architectures (#9882)&lt;/li>
&lt;li>Improvements to AMI and instance type validations, custom instance type selector (#9793)&lt;/li>
&lt;li>Publish packages to NPM (#9883)&lt;/li>
&lt;li>fix(notifications): Added space in Google Chat notification. (#9884)&lt;/li>
&lt;li>Fix(core/pipelines): Fix syntax error on ui-select causing stage configuration to not load (#9886)&lt;/li>
&lt;li>fix(search): Error thrown when search version 2 is enabled (#9888)&lt;/li>
&lt;li>chore(dependencies): Updating Formik in @spinnaker/presentation (#9887)&lt;/li>
&lt;li>fix(core): Do not set static document base URL (#9890)&lt;/li>
&lt;li>Publish packages to NPM (#9885)&lt;/li>
&lt;li>fix(aws): fix instance type selector by allowing instance types that can&amp;rsquo;t be validated. (#9893)&lt;/li>
&lt;li>fix(links): update link to spinnaker release changelog (#9897)&lt;/li>
&lt;li>Publish packages to NPM (#9894)&lt;/li>
&lt;li>fix(aws): Fixing AWS AZ auto rebalancing section by setting the default zones (#9902)&lt;/li>
&lt;li>fix(aws): Fixing bugs related to clone CX when instance types are incompatible with image/region (#9901)&lt;/li>
&lt;li>feat(kubernetes): Introduce blue/green traffic management strategy (#9911)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#9916)&lt;/li>
&lt;li>feat(Azure): Update UI to handle custom and managed images. (#9910)&lt;/li>
&lt;li>feat(pipeline): added feature flag for pipeline when mj stage child (#9914)&lt;/li>
&lt;li>fix(aws): Guard against missing launchConfig.instanceMonitoring (#9917)&lt;/li>
&lt;li>Aws rollback timeout v2 (#9923)&lt;/li>
&lt;li>fix(dependencies): Pin correct cheerio version (#9924)&lt;/li>
&lt;li>feat(core/bake): support include crds flag in Helm3 (#9903)&lt;/li>
&lt;li>feat(Blue/Green): Add warning label and enhance disable/enable manifest stage with Deployment kind. (#9928)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#9932)&lt;/li>
&lt;li>fix(azure): Register Azure Bake Execution Details Controller (#9933)&lt;/li>
&lt;li>chore(deps): bump qs from 6.5.2 to 6.5.3 in /test/functional (#9929)&lt;/li>
&lt;li>feat(core/pipeline): Add missing flag &lt;code>skipDownstreamOutput&lt;/code> in pipeline stage (#9930)&lt;/li>
&lt;li>fix(helm): update tooltip to not include Chart.yaml (#9934)&lt;/li>
&lt;li>fix(core): Missing config elements after Angular 1.8 update (#9936)&lt;/li>
&lt;li>fix(deck): Apache user should own the settings-local.js file, not spinnaker user, to display the custom profile features on DeckUI (#9935)&lt;/li>
&lt;li>Publish packages to NPM (#9904)&lt;/li>
&lt;li>fix(timeout): Added feature flag for rollback timeout ui input. (#9937)&lt;/li>
&lt;li>Publish packages to NPM (#9938)&lt;/li>
&lt;li>fix(ecs): skip checking for upstream stages for ECS deploy (#9945)&lt;/li>
&lt;li>Publish packages to NPM (#9946)&lt;/li>
&lt;li>fix(google): Resolved typo errors in GCE Autoscaler feature (#9947)&lt;/li>
&lt;li>Publish packages to NPM (#9949)&lt;/li>
&lt;li>fix(6755): Resolved issue regarding warning reporting when cloning a server group in AWS (#9948)&lt;/li>
&lt;li>Revert &amp;ldquo;feat(Blue/Green): Add warning label and enhance disable/enable manifest stage with Deployment kind.&amp;rdquo; (#9951)&lt;/li>
&lt;li>chore(dev): specifying React code for Deck PRs (#9953)&lt;/li>
&lt;li>feat(provider/cloudrun): Added cloudrun functionality to deck (#9931)&lt;/li>
&lt;li>chore(feature-flag): mj parent pipeline enabled by default (#9954)&lt;/li>
&lt;li>Publish packages to NPM (#9955)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1302">Spinnaker Echo - 1.30.2&lt;/h4>
&lt;ul>
&lt;li>fix(ci): fetch previous tag from git instead of API (#1181) (#1184)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#1174) (#1179)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1172)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1168)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1171)&lt;/li>
&lt;li>fix(dependency): Issue of missing javax.validation and hibernate-validator dependencies while upgrading the spring cloud to Hoxton.SR12 in kork (#1173)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#1174)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1175)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1176)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#1181)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#1182)&lt;/li>
&lt;li>feat(webhooks/github): Add more metadata to PR events (#1177)&lt;/li>
&lt;li>feat(gitlabci): Added GitlabCI build type (#1148)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1188)&lt;/li>
&lt;li>feat(webhooks/github): Support for GitHub branch events (#1187)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1189)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1190)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1191)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1192)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#1193)&lt;/li>
&lt;li>chore(build): Build docker images for multiple architectures (#1196)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1197)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1200)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1202)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1203)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1204)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1205)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1206)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1208)&lt;/li>
&lt;li>fix(pipelineTriggers): handle invalid constraint regexes (#1209)&lt;/li>
&lt;li>fix(notifications): Encode url in email notification (#1207)&lt;/li>
&lt;li>feat(manualJudgment): Change formatting of manual judgment emails (#1201)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1210)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1215)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1217)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1218)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1220)&lt;/li>
&lt;li>feat(webhooks): Handle Bitbucket Server PR events (#1219)&lt;/li>
&lt;li>refactor(web): Clean up redundant spring property in gradle file (#1228)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1229)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1230)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1231)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1232)&lt;/li>
&lt;li>chore(dependencies): remove dependency on groovy-all (#1234)&lt;/li>
&lt;li>feat(event): Add circuit breaker for events sending. (#1233)&lt;/li>
&lt;li>feat(pubsub): add support for links in pubsub triggers (#1235)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1240)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1242)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1243)&lt;/li>
&lt;li>fix: The circuit breaker feature for sending events to telemetry endpoint is hidden under a required feature flag property (#1241)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1247)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1248)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1249)&lt;/li>
&lt;li>fix(bitbucket): Add project key as identifier (#1250)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1251)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1252)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1253)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1254)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1255)&lt;/li>
&lt;li>fix(webhook/github): Add null check when getting the pull request action (#1256)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1257)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1258)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1265)&lt;/li>
&lt;li>fix(tests): Introduce junit5 vintage engine for running junit4 test cases over junit5 and cleanup of useJUnitPlatform() from sub-modules in echo (#1266)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1267)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1268)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1288)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1289)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1302">Spinnaker Fiat - 1.30.2&lt;/h4>
&lt;ul>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#940) (#944)&lt;/li>
&lt;li>chore(dependencies): don&amp;rsquo;t create an autobump PR for halyard on a fia? (#938)&lt;/li>
&lt;li>feat(build): bump dependencies for the given branch (#934)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#937)&lt;/li>
&lt;li>fix(dependency): Issue of missing javax.validation:validation-api dependency while upgrading the spring cloud to Hoxton.SR12 in kork (#939)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#940)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#941)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#942)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#948)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#949)&lt;/li>
&lt;li>fix(google): skip groups for service accounts (#953)&lt;/li>
&lt;li>fix(ci): Only bumpdep Halyard for master branch (#947)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#957)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#958)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#959)&lt;/li>
&lt;li>fix(roles): Ensure account manager role is cached (#960)&lt;/li>
&lt;li>perf(fiat-roles): Cache long-running roles&amp;rsquo; synchronization process (#962)&lt;/li>
&lt;li>fix(permissions): ensure lower case for resource name in fiat_permission and fiat_resource tables (#963)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#965)&lt;/li>
&lt;li>feat(api): Add support for more Spring Security APIs (#966)&lt;/li>
&lt;li>fix: add migration to ensure consistency between resource_name in fiat_resource and fiat_permission tables (#964)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#967)&lt;/li>
&lt;li>chore(build): Build docker images for multiple architectures (#970)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#971)&lt;/li>
&lt;li>perf(serviceAccounts): allows syncing service accounts without resolving user roles (#961)&lt;/li>
&lt;li>feat(roles): add capability to control querying clouddriver for applications during roles sync (#972)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#973)&lt;/li>
&lt;li>fix(gha): fix syntax error in code that determines what repos to bump (#974)&lt;/li>
&lt;li>fix(gha): Event branch doesn&amp;rsquo;t match (#975)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#976)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#981)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#982)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#985)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#989)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#992)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#993)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#996)&lt;/li>
&lt;li>refactor(web): Clean up redundant spring property in gradle file (#998)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#999)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1000)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1001)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1002)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1004)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1005)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1006)&lt;/li>
&lt;li>refactor(sql): Optimize read queries for getUserPermission (#1003)&lt;/li>
&lt;li>chore(web): clean up for spring property setup (#1008)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1009)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1010)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1011)&lt;/li>
&lt;li>fix: Should fix the deletion of permissions when resource name is uppercase (#1012)&lt;/li>
&lt;li>fix(fiat-roles): Fiat fails to start if write mode is disabled (#1007)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1016)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1017)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1018)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1019)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1020)&lt;/li>
&lt;li>chore(dependencies): remove residual dependency on groovy-all in fiat (#1021)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1022)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1023)&lt;/li>
&lt;li>fix(tests): Introduce junit5 vintage engine for running junit4 test cases over junit5 in fiat (#1025)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1028)&lt;/li>
&lt;li>fix(logs): Redacted secret data in logs. (#1029)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1033)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1050)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-front50---1302">Spinnaker Front50 - 1.30.2&lt;/h4>
&lt;ul>
&lt;li>fix(ci): fetch previous tag from git instead of API (#1127) (#1130)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#1120) (#1125)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1118)&lt;/li>
&lt;li>chore(dependencies): don&amp;rsquo;t create an autobump PR for halyard on a fro? (backport #1115) (#1117)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1112)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1116)&lt;/li>
&lt;li>fix(dependency): Issue of missing javax.validation, hibernate-validator dependencies and version conflict of com.google.cloud:google-cloud-storage while upgrading the spring cloud to Hoxton.SR12 in kork. (#1119)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#1120)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1121)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1122)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#1127)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#1128)&lt;/li>
&lt;li>fix(pipeline): include updated timestamp (#1133)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1134)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1136)&lt;/li>
&lt;li>fix(build): Remove extra repository (#1135)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1137)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1141)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1145)&lt;/li>
&lt;li>fix: Revision history is not showing the timestamp of the revision (#1142)&lt;/li>
&lt;li>chore(build): Build docker images for multiple architectures (#1148)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1150)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#1151)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1157)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1160)&lt;/li>
&lt;li>fix(updateTs): missing updateTs field in the get pipeline history&amp;rsquo;s response. (#1159)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1163)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1164)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1166)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1167)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1168)&lt;/li>
&lt;li>perf(serviceAccounts): Add attribute that allows creating service accounts without running full role syncs (#1139)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1169)&lt;/li>
&lt;li>fix(pipelines): prevent from creating duplicated pipelines (#1172)&lt;/li>
&lt;li>feat(pipeline/kubernetes): Introduce validator for kubernetes blue/green traffic management strategy (#1176)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1177)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1179)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1180)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1181)&lt;/li>
&lt;li>refactor(web): Clean up redundant spring property in gradle file (#1188)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1189)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1190)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1191)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1192)&lt;/li>
&lt;li>chore(dependencies): remove dependency on groovy-all where straightforward (#1193)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1194)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1195)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1198)&lt;/li>
&lt;li>feat(pipeline/kubernetes): Migrate existing K8s deploy manifest traffic management from redblack to bluegreen (#1197)&lt;/li>
&lt;li>chore(web): clean up for spring property setup (#1199)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1200)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1201)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1202)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1203)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1204)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1205)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1206)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1207)&lt;/li>
&lt;li>chore(dependencies): remove residual dependency on groovy-all (#1208)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1209)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1210)&lt;/li>
&lt;li>feat(migration): ability to disable deleting orphaned objects (#1211)&lt;/li>
&lt;li>chore(tests): Cleanup of useJUnitPlatform() from sub-modules and introducing junit-vintage-engine in front50 (#1218)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1219)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1221)&lt;/li>
&lt;li>fix(sql): Populating lastModified field for pipelines when loading objects. (#1220)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1225)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1246)&lt;/li>
&lt;li>chore(dependencies): don&amp;rsquo;t create an autobump PR for halyard on a front50 release branch (#1115) (#1247)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1248)&lt;/li>
&lt;li>fix(validator): Fix NPE when traffic management is not defined in a deployment manifest (#1253) (#1254)&lt;/li>
&lt;li>fix(migrations): do not migrate redblack pipelines without stages (#1259) (#1260)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1302">Spinnaker Gate - 1.30.2&lt;/h4>
&lt;ul>
&lt;li>fix(ci): fetch previous tag from git instead of API (#1551) (#1554)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#1544) (#1549)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1543)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1539)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1542)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#1544)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1545)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1547)&lt;/li>
&lt;li>feat(tasks): Allow max polling of task status to be set (#1546)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#1551)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#1552)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1557)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1558)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1559)&lt;/li>
&lt;li>fix(restart-pipeline) : CheckPrecondition doesn&amp;rsquo;t evaluate expression correctly when upstream stages get restarted (#1560)&lt;/li>
&lt;li>chore(build): Gradle 7 compatibility (#1561)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1562)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1563)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#1564)&lt;/li>
&lt;li>chore(build): Build docker images for multiple architectures (#1567)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1568)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1571)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1572)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1573)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1574)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1575)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1577)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1578)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1580)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1585)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1587)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1588)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1590)&lt;/li>
&lt;li>refactor(web): Clean up redundant spring property in gradle file (#1597)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1598)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1599)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1600)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1601)&lt;/li>
&lt;li>chore(dependencies): remove dependency on groovy-all (#1602)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1603)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1604)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1605)&lt;/li>
&lt;li>chore(web): clean up for spring property setup (#1606)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1607)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1608)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1609)&lt;/li>
&lt;li>feat(web): Add X-SPINNAKER-* optional data to HTTP response header (#1610)&lt;/li>
&lt;li>fix(web): Fixes ArtifactController and ArtifactService to close the InputStream object used in the fetch api and add unit test for controller (#1611)&lt;/li>
&lt;li>refactor(web): Remove unnecessary code from ResponseHeaderInterceptorTest (#1613)&lt;/li>
&lt;li>feat(web): Enable extracting Spinnaker related headers from request into authenticated request MDC, by setting the extractSpinnakerHeaders flag to true when creating the AuthenticatedRequestFilter in GateConfig. This allows the propagation of request headers with X-SPINNAKER prefix downstream through the AuthenticatedRequest MDC for consumption e.g. response interceptor (#1612)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1614)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1615)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1616)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1617)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1618)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1619)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1620)&lt;/li>
&lt;li>fix(tests): Introduce junit5 vintage engine for running junit4 test cases over junit5 in gate (#1623)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1628)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1629)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1630)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1649)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1650)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1302">Spinnaker Igor - 1.30.2&lt;/h4>
&lt;ul>
&lt;li>fix(ci): fetch previous tag from git instead of API (#1017) (#1020)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#1011) (#1015)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1009)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1005)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1008)&lt;/li>
&lt;li>fix(dependency): Issue of missing javax.validation:validation-api dependency while upgrading the spring cloud to Hoxton.SR12 in kork (#1010)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#1011)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1012)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1013)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#1017)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#1018)&lt;/li>
&lt;li>Implemented Gitlab CI polling and build property support (#986)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1024)&lt;/li>
&lt;li>chore(web): remove deprecated endpoints.health.sensitive configuration property (#1023)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1025)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1026)&lt;/li>
&lt;li>chore(build): Gradle 7 compatibility (#1027)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1028)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1029)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#1030)&lt;/li>
&lt;li>chore(build): Build docker images for multiple architectures (#1033)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1034)&lt;/li>
&lt;li>fix(artifacts): ArtifactExtractor is unable to deserialize jsr310 dates (#1035)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1039)&lt;/li>
&lt;li>feat(jenkins): Stop Jenkins job when job name as slashes in the job name (#1038)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1040)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1041)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1042)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1043)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1044)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1045)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1046)&lt;/li>
&lt;li>fix(monitor): rename parameter to let spring know what bean inject (#1053)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1055)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1057)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1058)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1059)&lt;/li>
&lt;li>refactor(web): Clean up redundant spring property in gradle file (#1065)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1066)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1067)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1068)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1069)&lt;/li>
&lt;li>chore(dependencies): remove dependency on groovy-all where straightforward (#1070)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1071)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1072)&lt;/li>
&lt;li>fix(gitlabci): Fixed JSON parsing exceptions for unknown GitlabCI pipeline statuses (#1073)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1074)&lt;/li>
&lt;li>feat(travis): Add redis TTL for queue keys (#1076)&lt;/li>
&lt;li>fix(travis): Enable legacy log fetching (#1075)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1078)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1079)&lt;/li>
&lt;li>fix(travis): Redis TTL is given in seconds, not minutes (#1077)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1080)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1081)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1082)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1083)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1084)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1085)&lt;/li>
&lt;li>chore(dependencies): remove dependency on groovy-all with required groovy package (#1086)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1087)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1088)&lt;/li>
&lt;li>fix(travis): Don&amp;rsquo;t panic if log fetching fails (#1089)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1097)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1098)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1099)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1120)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1121)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1302">Spinnaker Kayenta - 1.30.2&lt;/h4>
&lt;ul>
&lt;li>fix(ci): fetch previous tag from git instead of API (#888) (#891)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#884) (#886)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#883)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#880)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#884)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#888)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#889)&lt;/li>
&lt;li>chore(build): Gradle 7 compatibility (#895)&lt;/li>
&lt;li>chore(dependencies): add explicit dependency on javax.validation:validation-api (#897)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#896)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#900)&lt;/li>
&lt;li>chore(build): Build docker images for multiple architectures (#903)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#906)&lt;/li>
&lt;li>fix(integration-tests): change testCompileOnly dependencies to testImplementation (#907)&lt;/li>
&lt;li>fix(dependency): To enable controlled conflict resolution of direct and transitive dependencies version using kork-bom for upgrading the spring-boot 2.3.x. (#908)&lt;/li>
&lt;li>fix(test): Issue with kayenta-integration-tests while upgrading spring-boot to 2.3.12 (#909)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#910)&lt;/li>
&lt;li>feat(influxdb): enhancements and bug fixes (#899)&lt;/li>
&lt;li>fix(security): Bump commons-text for CVE-2022-42889 (#911)&lt;/li>
&lt;li>chore(dependencies): Bump orcaVersion (#916)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#917)&lt;/li>
&lt;li>refactor(web): Clean up redundant spring property in gradle file (#925)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#927)&lt;/li>
&lt;li>chore(web): clean up for spring property setup (#928)&lt;/li>
&lt;li>chore(dependency): unpinning the version of io.rest-assured (#929)&lt;/li>
&lt;li>chore(cleanup): Doing refactoring of Kayenta to cleanup codebase (#926)&lt;/li>
&lt;li>chore(dependencies): remove dependency on groovy-all in kayenta (#930)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#931)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#932)&lt;/li>
&lt;li>feat: SPLAT-569: Add SQL data source for account credentials and account configurations persistence. (#938)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#941)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#956)&lt;/li>
&lt;li>fix(signalfx): Fixed metric type missing due to duplicated field from parent class (#957) (#958)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1302">Spinnaker Orca - 1.30.2&lt;/h4>
&lt;ul>
&lt;li>fix(ci): fetch previous tag from git instead of API (#4263) (#4266)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#4256) (#4261)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4253)&lt;/li>
&lt;li>feat(build): bump dependencies for the given branch (#4247)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4252)&lt;/li>
&lt;li>Fix for size (#4242)&lt;/li>
&lt;li>fix(dependency): Issue of missing javax.validation and hibernate-validator dependencies while upgrading the spring cloud to Hoxton.SR12 in kork (#4254)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#4256)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4257)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4258)&lt;/li>
&lt;li>feat(stageExecution): supporting extra custom tags for stage execution metrics (#4255)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#4263)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#4264)&lt;/li>
&lt;li>fix(cfn): Fix detection of empty CloudFormation changesets (#4270)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4272)&lt;/li>
&lt;li>fix(tasks): Fix MonitorPipelineTask regression (#4271)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4273)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4275)&lt;/li>
&lt;li>feat(orca): add Kustomize 4 support (#4280)&lt;/li>
&lt;li>fix(restart-pipeline) : CheckPrecondition doesn&amp;rsquo;t evaluate expression correctly when upstream stages get restarted (#4278)&lt;/li>
&lt;li>chore(tests): redact some data in test (#4281)&lt;/li>
&lt;li>feat(webhook): Allow webhook retries for selected status codes (#4276)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4282)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4283)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#4284)&lt;/li>
&lt;li>refactor(groovy): migrating Clouddriver services to Java (#4269)&lt;/li>
&lt;li>chore(build): Build docker images for multiple architectures (#4288)&lt;/li>
&lt;li>fix(clouddriver): fix property binding for Clouddriver (#4290)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4291)&lt;/li>
&lt;li>fix(preconfiguredJobs): Resource requests on custom stage | Error: got &amp;ldquo;map&amp;rdquo;, expected &amp;ldquo;string&amp;rdquo; (#4295)&lt;/li>
&lt;li>feat(igor): Stop Jenkins job when job name has slashes in the job name (#4294)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4296)&lt;/li>
&lt;li>fix(sql): Wrong indentation for rollback in database changelog (#4297)&lt;/li>
&lt;li>fix(stageExecution): In MJ stages find the correct authenticated user? (#4289)&lt;/li>
&lt;li>feat(orchestration): provide a way to allow only certain configured ad-hoc operations to be performed (#4195)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4298)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4299)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4300)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4302)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4304)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4308)&lt;/li>
&lt;li>fix(stageExecution): In evaluable variable stage restart scenario variables are not cleaned properly (#16) (#4307)&lt;/li>
&lt;li>feat(cloudrun): Adding cloudrun provider in orca. (#4279)&lt;/li>
&lt;li>chore(kubernetes): stop specifying the version of io.kubernetes:client-java (#4310)&lt;/li>
&lt;li>feat(cloudrun): Adding cloudrun provider in orca. (#4311)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4313)&lt;/li>
&lt;li>fix(config): restore prior visibility of methods on CloudDriverConfigurationProperties class (#4317)&lt;/li>
&lt;li>fix(artifacts): Expected Artifacts should be trigger specific (#4322)&lt;/li>
&lt;li>feat(bakery): add includeCRDs in Helm Bake request (#4324)&lt;/li>
&lt;li>fix(config): add back public visibility for ClouddriverRetrofitBuilder class (#4331)&lt;/li>
&lt;li>feat(kubernetes events in orca): Exposes kubernetes events in orca for enhanced logging (#4301)&lt;/li>
&lt;li>fix(orca): display task exception messages (#4259)&lt;/li>
&lt;li>feat(bakery): Clean up cached data created by Rosco. (#4323)&lt;/li>
&lt;li>feat(kubernetes): Introduce blue/green traffic management strategy (#4332)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#4337)&lt;/li>
&lt;li>fix(tasks): Fix MonitorKayentaCanaryTask on results data map (#4312)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4342)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4343)&lt;/li>
&lt;li>feat(Azure): Update createBakeTask for managed and custom images. (#4336)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4352)&lt;/li>
&lt;li>feat(AWS): Get the rollback timeout value from stage data. (#4353)&lt;/li>
&lt;li>feat(k8s): Add support of Deployment kind for Blue/Green deployments. (#4355)&lt;/li>
&lt;li>refactor(web): Clean up redundant spring property in gradle file (#4359)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4360)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4361)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4362)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4363)&lt;/li>
&lt;li>chore(dependencies): remove dependency on groovy-all where straightforward (#4364)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4365)&lt;/li>
&lt;li>feat(bakery): add tasks.monitor-bake.timeout-millis configuration property for MonitorBakeTask timeout (#4367)&lt;/li>
&lt;li>chore(front50): Make Monitor Pipeline Task timeout overridable (#4347)&lt;/li>
&lt;li>Fix orca bakery (#4370)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#4371)&lt;/li>
&lt;li>fix(stageExecution): Extend MJ auth propagate logic for exhaustive cases (#4368)&lt;/li>
&lt;li>feat(tasks): Capture task output data from clouddriver (#4374)&lt;/li>
&lt;li>fix(dependency): Issue with keiko-redis-spring module while upgrading the spring boot 2.5.x (#4375)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4376)&lt;/li>
&lt;li>chore(web): clean up for spring property setup (#4377)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4378)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4380)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4381)&lt;/li>
&lt;li>feat(config): allow configuration of writeable clouddriver endpoints by account and/or cloudProvider (#4287)&lt;/li>
&lt;li>fix(timeout): Added feature flag for rollback timeout ui input. (#4383)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4390)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4391)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4392)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4393)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4394)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4398)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4399)&lt;/li>
&lt;li>fix(waiting-executions) : Waiting executions doesn&amp;rsquo;t follow FIFO (#4356)&lt;/li>
&lt;li>fix(artifacts): Be more lenient when filtering expected artifacts (#4397)&lt;/li>
&lt;li>fix(artifacts): Stop copying expectedArtifactIds to child pipelines (#4404)&lt;/li>
&lt;li>Revert &amp;ldquo;feat(k8s): Add support of Deployment kind for Blue/Green deployments.&amp;rdquo; (#4407)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4411)&lt;/li>
&lt;li>feat(igor): Default the feature flag which sends the job name as query parameter to on (#4412)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4413)&lt;/li>
&lt;li>Fix/blue green deploy (#4414)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4417)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4444)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4444) (#4446)&lt;/li>
&lt;li>fix(deployment): fixed missing namespace while fetching manifest details from clouddriver (#4453) (#4457)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1302">Spinnaker Rosco - 1.30.2&lt;/h4>
&lt;ul>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#878) (#882)&lt;/li>
&lt;li>fix(halyard): Use Halyard&amp;rsquo;s spinnaker.yml defined Redis (#874) (#876)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#866)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#868)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#869)&lt;/li>
&lt;li>chore(ci): Halyard expects tar.gz but doesn&amp;rsquo;t gunzip (#870)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#871)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#872)&lt;/li>
&lt;li>fix(halyard): Use Halyard&amp;rsquo;s spinnaker.yml defined Redis (#874)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#877)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#878)&lt;/li>
&lt;li>fix(bake): propagate X-SPINNAKER-* headers to clouddriver (#883)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#884)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#885)&lt;/li>
&lt;li>Arm64 support (#886)&lt;/li>
&lt;li>chore(builds): fix github actions builds (#887)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#889)&lt;/li>
&lt;li>chore(dependencies): use org.apache.commons:commons-compress:1.21 to fix multiple vulnerabilities (#888)&lt;/li>
&lt;li>feat(rosco): add Kustomize 4 support (#891)&lt;/li>
&lt;li>feature(rosco): Update packer to 1.8.1 (#890)&lt;/li>
&lt;li>chore(build): Gradle 7 compatibility (#892)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#893)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#894)&lt;/li>
&lt;li>chore(security): upgrade codeql to v2 (#897)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#898)&lt;/li>
&lt;li>fix(install): Fixed bugs in postInstall script that causes installation to fail on Ubuntu 20.04 and 22.04 LTS (#899)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#903)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#904)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#905)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#906)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#907)&lt;/li>
&lt;li>chore(gha): replace deprecated set-output and save-state commands (#909)&lt;/li>
&lt;li>feat(azure): baking from another existing image (#910)&lt;/li>
&lt;li>feat(azure): Improve uniqueness of Azure Bake Key (#911)&lt;/li>
&lt;li>feat(helm): support for including crds in Helm3 (#913)&lt;/li>
&lt;li>fix(azure): removing empty params for image name (#914)&lt;/li>
&lt;li>chore(deps): remove version specification from org.yaml:snakeyaml (#915)&lt;/li>
&lt;li>feat(bakery): Clean up cached data created by Rosco. (#912)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#917)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#918)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#919)&lt;/li>
&lt;li>fix(Azure): Update centos default image version. (#916)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#923)&lt;/li>
&lt;li>refactor(web): Clean up redundant spring property in gradle file (#928)&lt;/li>
&lt;li>Merge pull request from GHSA-wqq8-664f-54hh&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#930)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#931)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#932)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#933)&lt;/li>
&lt;li>chore(dependencies): remove dependency on groovy-all where straightforward (#934)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#935)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#936)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#939)&lt;/li>
&lt;li>chore(web): clean up for spring property setup (#941)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#943)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#944)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#945)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#948)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#949)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#950)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#951)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#952)&lt;/li>
&lt;li>chore(dependencies): remove residual dependency on groovy-all in rosco-manifest (#954)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#955)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#956)&lt;/li>
&lt;li>fix(tests): Introduce junit5 vintage engine for running junit4 test cases over junit5 in rosco (#958)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#961)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#962)&lt;/li>
&lt;li>fix(manifests/test): add org.junit.jupiter:junit-jupiter-engine as a test runtime dependency (#963)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#978)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.28.6 Armory Continuous Deployment Release (Spinnaker™ v1.28.6)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-6/</link><pubDate>Fri, 28 Apr 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-6/</guid><description>
&lt;h2 id="20230428-release-notes">2023/04/28 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.28.6, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;h3 id="orca-requires-rdbms-configured-with-utf-8-encoding">Orca requires RDBMS configured with UTF-8 encoding&lt;/h3>
&lt;p>This release includes a change from MySQL JDBC drivers to AWS drivers. We have seen this cause issues when the database is NOT in a utf8mb4 format.&lt;/p>
&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="git-artifact-constraint-trigger">Git Artifact Constraint Trigger&lt;/h4>
&lt;p>When setting an artifact constraint to limit when a pipeline executes on a git web hook, it&amp;rsquo;s likely the trigger will break with an error message
The following required artifacts could not be bound: &amp;lsquo;[ArtifactKey(type=docker/image, &amp;hellip;&amp;rsquo;
See https://github.com/spinnaker/spinnaker/issues/6757&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin Compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.28.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="mysql-permission-repository-error-in-2281-2284">MySQL Permission Repository error in 2.28.1-2.28.4&lt;/h3>
&lt;p>Armory is investigating an issue with FIAT when using MySQL as the backend permission repository. When it is enabled, unexpected authorization errors appear in logs across Clouddriver/Orca/Front50 for users and Service Accounts. Admins appear unaffected.&lt;/p>
&lt;p>The issue does not exist for 2.28.0 and lower and has since been resolved as of 2.28.5. Environments using the default Redis backend do not encounter these errors.
For more information about the changes that resolve this fix, &lt;a href="https://github.com/spinnaker/fiat/pull/1012">please visit the following PR&lt;/a>&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>: Use Redis backend, 2.28.0, 2.28.5+&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.1-2.28.4&lt;/p>
&lt;h3 id="application-attributes-section-displays-this-application-has-not-been-configured">&lt;strong>Application Attributes&lt;/strong> section displays &amp;ldquo;This Application has not been configured&amp;rdquo;&lt;/h3>
&lt;p>There is a known issue that relates to the &lt;strong>Application Attributes&lt;/strong> section under the &lt;strong>Config&lt;/strong> menu. An application that was already created and configured in Spinnaker displays the message, “This application has not been configured.” While the information is missing, there is no functional impact.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="google-app-engine-account-authentication">Google App Engine account authentication&lt;/h3>
&lt;p>Spinnaker 1.28 introduced a new API to allow adding accounts to Spinnaker. This change required all existing providers to register themselves with the credentials repo system. Several cloud providers were missed as part of the migration, including Google and AppEngine providers. It’s possible other non-supported providers may also be broken. The result of this is that users cannot see any Google or App Engine accounts listed in the UI, and non-admin users get an Access Denied error when trying to run pipelines as no permissions are granted. Admins can still deploy to these accounts since they bypass any permissions restrictions.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.28.X or later: Replace the Clouddriver image in 2.28 with the Armory Clouddriver 2.27 image&lt;/p>
&lt;p>1.28.X or later: Replace the Clouddriver image in 1.28 with the OSS Clouddriver 1.27 image&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;h3 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h3>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;h3 id="bluegreenredblack-in-the-non-default-namespace-for-kubernetes-fails">Blue/Green(Red/Black) in the non-default namespace for Kubernetes fails&lt;/h3>
&lt;p>Version 2.28.6 introduced a bug which affects the Blue/Green(Red/Black) deployment strategy in Kubernetes.&lt;/p>
&lt;p>In the &lt;code>afterStage&lt;/code> during a deployment that uses the Blue/Green (Red/Black) rollout strategy, Spinnaker tries to select the rollout strategy and switch the traffic to the newly deployed rollout strategy.&lt;/p>
&lt;p>However, when Orca sends the API request to Clouddriver for the rollout strategy details, Orca doesn’t include the namespace, which results in failure of the task with &lt;code>Manifest not found&lt;/code>.&lt;/p>
&lt;h2 id="early-access">Early access&lt;/h2>
&lt;h3 id="dynamic-rollback-timeout">Dynamic Rollback Timeout&lt;/h3>
&lt;p>To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck.&lt;/p>
&lt;p>On the Orca side, the feature flag overrides the default value rollback timeout - 5 min - with a UI input from the user. You &lt;strong>must&lt;/strong> add this block to the &lt;strong>orca.yml&lt;/strong> file if you want to enable the dynamic rollback timeout feature.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;rollback:&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;timeout:&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;enabled: true&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>On the Deck side, the feature flag enhances the Rollback Cluster stage UI with timeout input.&lt;/p>
&lt;p>&lt;code>window.spinnakerSettings.feature.dynamicRollbackTimeout = true;&lt;/code>&lt;/p>
&lt;p>The default is used if there is no value set in the UI.&lt;/p>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines as Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipelines as Code to pull Dinghy files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger Spinnaker pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a> in the Spinnaker docs for details.&lt;/p>
&lt;!-- Spinnaker docs PR https://github.com/spinnaker/spinnaker.io/pull/285 -->
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you will be able to use the Terraform template file provider. Please open a support ticket if you need this fix.&lt;/p>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically Cancel Jenkins Jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a Spinnaker pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more about Jenkins + Spinnaker in this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">documentation&lt;/a>.&lt;/p>
&lt;h2 id="fixed-issues">Fixed Issues&lt;/h2>
&lt;h3 id="clouddriver">Clouddriver&lt;/h3>
&lt;p>Fixed an issue where customers are unable to use mixed instances and other advanced launch template features. (&lt;a href="https://github.com/spinnaker/spinnaker/issues/6755">https://github.com/spinnaker/spinnaker/issues/6755&lt;/a>)&lt;/p>
&lt;h3 id="deck">Deck&lt;/h3>
&lt;p>Fixed an issue where the UI crashes when running pipeline(s) with many stages.&lt;/p>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.28.6-changelog/">Spinnaker v1.28.6&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 95037f6d709c2dd03318b78c42c426106ee16a01
version: 2.28.6
deck:
commit: e24db15a97545fd5dda3bdb88a70f640bc5a1104
version: 2.28.6
dinghy:
commit: 912007004f7720b418cd133301c7fb20207e1f2f
version: 2.28.6
echo:
commit: a602d9d5def0815cb52bdf6d695ca69cbf0abe3b
version: 2.28.6
fiat:
commit: 45039aa7952cc409329faa30b8443667566459c1
version: 2.28.6
front50:
commit: 3292cf2715a9e52bb4690601d4fd877407505ced
version: 2.28.6
gate:
commit: c8058f4362f3f4ad108fa146d628a162445c7579
version: 2.28.6
igor:
commit: 60964526194a1273a03a7ade1f8939751e337735
version: 2.28.6
kayenta:
commit: 22fe5d47baacce77917c9026cefdedf91c64a956
version: 2.28.6
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 06352546281e21597eb59d3e993e842b9259f142
version: 2.28.6
rosco:
commit: 27d4a2b4a1d5f099b68471303d4fd14af156d46d
version: 2.28.6
terraformer:
commit: ea9b0255b7d446bcbf0f0d4e03fc8699b7508431
version: 2.28.6
timestamp: "2023-04-21 21:46:22"
version: 2.28.6
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-igor---22852286">Armory Igor - 2.28.5&amp;hellip;2.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to igor:2023.03.02.19.40.25.release-1.28.x (#419)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.03.02.21.16.28.release-1.28.x (#420)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---22852286">Armory Front50 - 2.28.5&amp;hellip;2.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to front50:2023.03.27.19.08.11.release-1.28.x (#509)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.5 (#534)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22852286">Armory Gate - 2.28.5&amp;hellip;2.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to gate:2023.03.02.19.38.56.release-1.28.x (#523)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.03.02.21.17.09.release-1.28.x (#524)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.03.27.19.10.16.release-1.28.x (#530)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.5 (#556)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---22852286">Armory Orca - 2.28.5&amp;hellip;2.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2023.03.02.19.46.59.release-1.28.x (#597)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.03.02.21.24.49.release-1.28.x (#598)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.03.28.15.32.53.release-1.28.x (#608)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.5 (#632)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---22852286">Armory Deck - 2.28.5&amp;hellip;2.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(alpine): Upgrade alpine version (backport #1302) (#1303)&lt;/li>
&lt;li>chore(build): only run security scans on PR merge (backport #1319) (#1327)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230410180145.release-1.28.x (#1330)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230410180145.release-1.28.x (#1332)&lt;/li>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230420193214.release-1.28.x (#1333)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---22852286">Terraformer™ - 2.28.5&amp;hellip;2.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(alpine): Update alpine version (backport #497) (#499)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22852286">Armory Rosco - 2.28.5&amp;hellip;2.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to rosco:2023.03.02.19.37.08.release-1.28.x (#500)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.5 (#526)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.6 (#529)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---22852286">Armory Clouddriver - 2.28.5&amp;hellip;2.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.02.19.57.01.release-1.28.x (#812)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.03.02.32.42.release-1.28.x (#813)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.21.20.21.00.release-1.28.x (#821)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.23.14.57.28.release-1.28.x (#826)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.27.19.24.21.release-1.28.x (#829)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.5 (#862)&lt;/li>
&lt;li>Bumped aws-cli to 1.22 for FIPS compliance (#854) (#863)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.6 (#868)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---22852286">Armory Kayenta - 2.28.5&amp;hellip;2.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to kayenta:2023.03.03.04.50.48.release-1.28.x (#393)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2023.03.28.19.09.35.release-1.28.x (#398)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.5 (#423)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.6 (#430)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---22852286">Armory Echo - 2.28.5&amp;hellip;2.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to echo:2023.03.02.19.38.24.release-1.28.x (#542)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.03.02.21.17.15.release-1.28.x (#543)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.03.27.19.10.41.release-1.28.x (#550)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.5 (#576)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.11.6 (#579)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---22852286">Dinghy™ - 2.28.5&amp;hellip;2.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): bumped oss dinghy version to 20230201103309-a73a68c80965 (#480)&lt;/li>
&lt;li>chore(alpine): Upgrade alpine version (backport #481) (#482)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---22852286">Armory Fiat - 2.28.5&amp;hellip;2.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to fiat:2023.03.02.19.37.20.release-1.28.x (#441)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.03.16.17.55.44.release-1.28.x (#446)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-igor---1286">Spinnaker Igor - 1.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1093)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1094)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-front50---1286">Spinnaker Front50 - 1.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1214)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1215)&lt;/li>
&lt;li>fix(sql): Populating lastModified field for pipelines when loading objects. (#1220) (#1223)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1227)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1286">Spinnaker Gate - 1.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1624)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1625)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1632)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1286">Spinnaker Orca - 1.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#4405)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4406)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4425)&lt;/li>
&lt;li>Fix/blue green deploy (backport #4414) (#4419)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1286">Spinnaker Deck - 1.28.6&lt;/h4>
&lt;ul>
&lt;li>fix: UI crashes when running pipeline(s) with many stages. (backport #9960) (#9973)&lt;/li>
&lt;li>fix(aws): Fixing bugs related to clone CX when instance types are incompatible with image/region (backport #9901) (#9975)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1286">Spinnaker Rosco - 1.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#959)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-clouddriver---1286">Spinnaker Clouddriver - 1.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#5897)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5898)&lt;/li>
&lt;li>fix(core): Renamed a query parameter for template tags (#5906) (#5908)&lt;/li>
&lt;li>chore(aws): Update AWS IAM Authenticator version (#5910)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5916)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1286">Spinnaker Kayenta - 1.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump orcaVersion (#936)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#943)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1286">Spinnaker Echo - 1.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1261)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1262)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1270)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1286">Spinnaker Fiat - 1.28.6&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1026)&lt;/li>
&lt;li>fix(logs): Redacted secret data in logs. (#1029) (#1030)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.27.8 Armory Continuous Deployment Release (Spinnaker™ v1.27.0)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-8/</link><pubDate>Tue, 18 Apr 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-8/</guid><description>
&lt;h2 id="20230418-release-notes">2023/04/18 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.27.8, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;p>&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory Continuous Deployment 2.27.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/release-notes/agent-plugin/">Armory Agent for Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.10.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.9&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.2.1-rc&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/p>
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="dinghy-fails-to-start-with-sql-enabled">Dinghy fails to start with SQL enabled&lt;/h3>
&lt;p>Known bug with the java version&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>needs to be added as an argument on newer JVMs.&lt;/p>
&lt;p>&lt;h4 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h4>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;h4 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h4>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;h3 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h3>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;/p>
&lt;h2 id="early-access-features">Early Access Features&lt;/h2>
&lt;h3 id="dynamic-rollback-timeout">Dynamic Rollback Timeout&lt;/h3>
&lt;p>To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck.&lt;/p>
&lt;p>On the Orca side, the feature flag overrides the default value rollback timeout - 5min - with a UI input from the user.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;yaml,&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;orca.yml,&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;rollback:&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;timeout:&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;enabled: true&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>On the Deck side, the feature flag enhances the Rollback Cluster stage UI with timeout input.&lt;/p>
&lt;p>&lt;code>window.spinnakerSettings.feature.dynamicRollbackTimeout = true;&lt;/code>&lt;/p>
&lt;p>The default is used if there is no value set in the UI.&lt;/p>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines as Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipelines as Code to pull Dinghy files from multiple branches in the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically Cancel Jenkins Jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a Spinnaker pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more about Jenkins + Spinnaker in this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">documentation&lt;/a>.&lt;/p>
&lt;h2 id="fixes">Fixes&lt;/h2>
&lt;ul>
&lt;li>Clouddriver: Two credentials with same accountId confuses EcrImageProvider with different regions&lt;/li>
&lt;li>Clouddriver: Renamed a query parameter for template tags&lt;/li>
&lt;li>Alpine updates for Deck, Dinghy, and Terraformer&lt;/li>
&lt;/ul>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.27.0-changelog/">Spinnaker v1.27.0&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: a3347ca5e207273abe60ca48e98bf494e6d8d359
version: 2.27.8
deck:
commit: 57f5d89f15f6f9ddc5c3f4554e4b0a3bb6f03e2b
version: 2.27.8
dinghy:
commit: d9146416b57d6c7008cfe6323ba3b0e6527181d0
version: 2.27.8
echo:
commit: b220bcaa01be72ca2c4489203bc5ceb53d83e8af
version: 2.27.8
fiat:
commit: e23c8b8a65463100c7075b1aacc140a0e0dc5216
version: 2.27.8
front50:
commit: 5e1fe36c4b8df29cc9cb4d7af581a44b0ca44e59
version: 2.27.8
gate:
commit: 9cd1a1174ee0bd19577ffdbd6aa11ad432a67082
version: 2.27.8
igor:
commit: ebfdd8b8068fe1ff1ba3e7c25cd2b0c0fa803bd9
version: 2.27.8
kayenta:
commit: 822b3339a4dbbccb9a135c102d8ba1ff199d49ec
version: 2.27.8
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 2aa5a723767a5972a3b31278a1dcf5af32e66b99
version: 2.27.8
rosco:
commit: 8b94ccff09fe762d896df9052e4199af6dd9b666
version: 2.27.8
terraformer:
commit: 736ece67b4a52a612262cbe844d1edd3ad176d19
version: 2.27.8
timestamp: "2023-03-22 15:19:48"
version: 2.27.8
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-fiat---22772278">Armory Fiat - 2.27.7&amp;hellip;2.27.8&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to fiat:2023.02.28.17.42.01.release-1.27.x (#439)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2023.03.16.17.57.42.release-1.27.x (#447)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---22772278">Armory Igor - 2.27.7&amp;hellip;2.27.8&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to igor:2023.02.28.17.45.14.release-1.27.x (#417)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2023.02.28.19.16.26.release-1.27.x (#418)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22772278">Armory Gate - 2.27.7&amp;hellip;2.27.8&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to gate:2023.02.28.17.43.36.release-1.27.x (#520)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2023.02.28.19.18.24.release-1.27.x (#521)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---22772278">Armory Orca - 2.27.7&amp;hellip;2.27.8&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2023.02.28.17.51.52.release-1.27.x (#594)&lt;/li>
&lt;li>chore(cd): update base orca version to 2023.02.28.19.23.37.release-1.27.x (#595)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---22772278">Armory Kayenta - 2.27.7&amp;hellip;2.27.8&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to kayenta:2023.02.28.21.15.17.release-1.27.x (#392)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---22772278">Terraformer™ - 2.27.7&amp;hellip;2.27.8&lt;/h4>
&lt;ul>
&lt;li>chore(alpine): Update alpine version (backport #497) (#498)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22772278">Armory Rosco - 2.27.7&amp;hellip;2.27.8&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to rosco:2023.02.28.17.41.47.release-1.27.x (#498)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---22772278">Armory Deck - 2.27.7&amp;hellip;2.27.8&lt;/h4>
&lt;ul>
&lt;li>chore(alpine): Upgrade alpine version (backport #1302) (#1304)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---22772278">Armory Clouddriver - 2.27.7&amp;hellip;2.27.8&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.22.23.00.31.release-1.27.x (#805)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.28.18.06.11.release-1.27.x (#809)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.28.19.32.28.release-1.27.x (#811)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.03.21.20.22.35.release-1.27.x (#822)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---22772278">Armory Echo - 2.27.7&amp;hellip;2.27.8&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to echo:2023.02.28.17.42.44.release-1.27.x (#540)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.02.28.19.16.55.release-1.27.x (#541)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---22772278">Dinghy™ - 2.27.7&amp;hellip;2.27.8&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): bumped oss dinghy version to 20230201103309-a73a68c80965 (#479)&lt;/li>
&lt;li>chore(alpine): Upgrade alpine version (backport #481) (#483)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---22772278">Armory Front50 - 2.27.7&amp;hellip;2.27.8&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-fiat---1270">Spinnaker Fiat - 1.27.0&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1024)&lt;/li>
&lt;li>fix(logs): Redacted secret data in logs. (#1029) (#1032)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1270">Spinnaker Igor - 1.27.0&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1091)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1092)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1270">Spinnaker Gate - 1.27.0&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1621)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1622)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1270">Spinnaker Orca - 1.27.0&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#4401)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4402)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1270">Spinnaker Kayenta - 1.27.0&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump orcaVersion (#934)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1270">Spinnaker Rosco - 1.27.0&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#957)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1270">Spinnaker Deck - 1.27.0&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1270">Spinnaker Clouddriver - 1.27.0&lt;/h4>
&lt;ul>
&lt;li>fix(ecr): Two credentials with same accountId confuses EcrImageProvider with different regions (#5885) (#5886)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5894)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5895)&lt;/li>
&lt;li>fix(core): Renamed a query parameter for template tags (#5906) (#5907)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1270">Spinnaker Echo - 1.27.0&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1259)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1260)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-front50---1270">Spinnaker Front50 - 1.27.0&lt;/h4></description></item><item><title>Continuous-Deployment: v2.28.5 Armory Continuous Deployment Release (Spinnaker™ v1.28.5)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-5/</link><pubDate>Tue, 07 Mar 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-5/</guid><description>
&lt;h2 id="20230307-release-notes">2023/03/07 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.28.5, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;h3 id="orca-requires-rdbms-configured-with-utf-8-encoding">Orca requires RDBMS configured with UTF-8 encoding&lt;/h3>
&lt;p>This release includes a change from MySQL JDBC drivers to AWS drivers. We have seen this cause issues when the database is NOT in a utf8mb4 format.&lt;/p>
&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="pipelines-as-code-slack-notifications-stop-working">Pipelines-as-Code Slack notifications stop working&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>After upgrading to 2.27.x, your Pipelines-as-Code Slack notifications may stop working even though they were working previously.&lt;/p>
&lt;p>&lt;strong>Hotfix&lt;/strong>&lt;/p>
&lt;p>See the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010573&amp;amp;sys_kb_id=c0befa03dbd2811079f53ec8f496192a&amp;amp;spa=1">Dinghy Slack Notifications not working&lt;/a> KB article for the Hotfix.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.27.0&lt;/p>
&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="git-artifact-constraint-trigger">Git Artifact Constraint Trigger&lt;/h4>
&lt;p>When setting an artifact constraint to limit when a pipeline executes on a git web hook, it&amp;rsquo;s likely the trigger will break with an error message
The following required artifacts could not be bound: &amp;lsquo;[ArtifactKey(type=docker/image, &amp;hellip;&amp;rsquo;
See https://github.com/spinnaker/spinnaker/issues/6757&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin Compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.28.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="mysql-permission-repository-error-in-2281-2284">MySQL Permission Repository error in 2.28.1-2.28.4&lt;/h3>
&lt;p>Armory is investigating an issue with FIAT when using MySQL as the backend permission repository. When it is enabled, unexpected authorization errors appear in logs across Clouddriver/Orca/Front50 for users and Service Accounts. Admins appear unaffected.&lt;/p>
&lt;p>The issue does not exist for 2.28.0 and lower and has since been resolved as of 2.28.5. Environments using the default Redis backend do not encounter these errors.
For more information about the changes that resolve this fix, &lt;a href="https://github.com/spinnaker/fiat/pull/1012">please visit the following PR&lt;/a>&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>: Use Redis backend, 2.28.0, 2.28.5+&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.1-2.28.4&lt;/p>
&lt;h3 id="application-attributes-section-displays-this-application-has-not-been-configured">&lt;strong>Application Attributes&lt;/strong> section displays &amp;ldquo;This Application has not been configured&amp;rdquo;&lt;/h3>
&lt;p>There is a known issue that relates to the &lt;strong>Application Attributes&lt;/strong> section under the &lt;strong>Config&lt;/strong> menu. An application that was already created and configured in Spinnaker displays the message, “This application has not been configured.” While the information is missing, there is no functional impact.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="google-app-engine-account-authentication">Google App Engine account authentication&lt;/h3>
&lt;p>Spinnaker 1.28 introduced a new API to allow adding accounts to Spinnaker. This change required all existing providers to register themselves with the credentials repo system. Several cloud providers were missed as part of the migration, including Google and AppEngine providers. It’s possible other non-supported providers may also be broken. The result of this is that users cannot see any Google or App Engine accounts listed in the UI, and non-admin users get an Access Denied error when trying to run pipelines as no permissions are granted. Admins can still deploy to these accounts since they bypass any permissions restrictions.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.28.X or later: Replace the Clouddriver image in 2.28 with the Armory Clouddriver 2.27 image&lt;/p>
&lt;p>1.28.X or later: Replace the Clouddriver image in 1.28 with the OSS Clouddriver 1.27 image&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;h3 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h3>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;h2 id="early-access">Early access&lt;/h2>
&lt;h3 id="new-in-2285---dynamic-rollback-timeout">&lt;strong>New in 2.28.5&lt;/strong> -&amp;gt; Dynamic Rollback Timeout&lt;/h3>
&lt;p>To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck.&lt;/p>
&lt;p>On the Orca side, the feature flag overrides the default value rollback timeout - 5 min - with a UI input from the user.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;yaml,&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;orca.yml,&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;rollback:&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;timeout:&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;enabled: true&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>On the Deck side, the feature flag enhances the Rollback Cluster stage UI with timeout input.&lt;/p>
&lt;p>&lt;code>window.spinnakerSettings.feature.dynamicRollbackTimeout = true;&lt;/code>&lt;/p>
&lt;p>The default is used if there is no value set in the UI.&lt;/p>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipelines-as-Code to pull Dinghy files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger Spinnaker pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a>in the Spinnaker docs for details.&lt;/p>
&lt;!-- Spinnaker docs PR https://github.com/spinnaker/spinnaker.io/pull/285 -->
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you will be able to use the Terraform template file provider. Please open a support ticket if you need this fix.&lt;/p>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically Cancel Jenkins Jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a Spinnaker pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more about Jenkins + Spinnaker in this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">documentation&lt;/a>.&lt;/p>
&lt;h2 id="fixed-issues">Fixed issues&lt;/h2>
&lt;h3 id="clouddriver">Clouddriver&lt;/h3>
&lt;ul>
&lt;li>Revert to using the dockerImage Artifact Replacer for cronjobs&lt;/li>
&lt;li>Two credentials with same accountId confuses EcrImageProvider with different regions&lt;/li>
&lt;/ul>
&lt;h3 id="permissions">Permissions&lt;/h3>
&lt;ul>
&lt;li>Fix the deletion of permissions when resource name is uppercase&lt;/li>
&lt;/ul>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.28.5-changelog/">Spinnaker v1.28.5&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 49c6d33aebf5c6edcd85904680afac4698e9e208
version: 2.28.5
deck:
commit: bd57caffcdc86c9fb7560e958ba89141372d5d3d
version: 2.28.5
dinghy:
commit: c4ed5b19dbcfefe8dea14cdff7df9a8ab540eba3
version: 2.28.5
echo:
commit: 53bebfd6900b3de124dde043a00d164aa2e50773
version: 2.28.5
fiat:
commit: e5eb6837f87b029248e3068119e05acbb85cf22c
version: 2.28.5
front50:
commit: fab8841982330e7537629c9f24f41205cd5863fd
version: 2.28.5
gate:
commit: 65bdd30238312bbca2dce613825eda7ae88f1dfa
version: 2.28.5
igor:
commit: 61ce26babfcd0bdf62872c24e707ca5b5371a381
version: 2.28.5
kayenta:
commit: 0333b9ed6153acfc090edcfa38e3514439e2863c
version: 2.28.5
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 37f945ea4ca839267ddd95e436912ef8f82d559e
version: 2.28.5
rosco:
commit: 945f21dec252da7dd2e00c8d23a1687aa3b9841a
version: 2.28.5
terraformer:
commit: 3764e523e17dfdd4cf309dc2bd7c13d9b804f309
version: 2.28.5
timestamp: "2023-02-23 01:24:13"
version: 2.28.5
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="terraformer---22842285">Terraformer™ - 2.28.4&amp;hellip;2.28.5&lt;/h4>
&lt;h4 id="armory-orca---22842285">Armory Orca - 2.28.4&amp;hellip;2.28.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2023.02.03.15.05.56.release-1.28.x (#583)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---22842285">Armory Igor - 2.28.4&amp;hellip;2.28.5&lt;/h4>
&lt;h4 id="dinghy---22842285">Dinghy™ - 2.28.4&amp;hellip;2.28.5&lt;/h4>
&lt;h4 id="armory-deck---22842285">Armory Deck - 2.28.4&amp;hellip;2.28.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230203161351.release-1.28.x (#1294)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---22842285">Armory Echo - 2.28.4&amp;hellip;2.28.5&lt;/h4>
&lt;h4 id="armory-front50---22842285">Armory Front50 - 2.28.4&amp;hellip;2.28.5&lt;/h4>
&lt;h4 id="armory-fiat---22842285">Armory Fiat - 2.28.4&amp;hellip;2.28.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to fiat:2023.02.07.18.42.05.release-1.28.x (#430)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22842285">Armory Rosco - 2.28.4&amp;hellip;2.28.5&lt;/h4>
&lt;h4 id="armory-clouddriver---22842285">Armory Clouddriver - 2.28.4&amp;hellip;2.28.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.15.21.39.25.release-1.28.x (#799)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.02.22.23.00.00.release-1.28.x (#804)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22842285">Armory Gate - 2.28.4&amp;hellip;2.28.5&lt;/h4>
&lt;h4 id="armory-kayenta---22842285">Armory Kayenta - 2.28.4&amp;hellip;2.28.5&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-orca---1285">Spinnaker Orca - 1.28.5&lt;/h4>
&lt;ul>
&lt;li>fix(timeout): Added feature flag for rollback timeout ui input. (backport #4383) (#4385)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1285">Spinnaker Igor - 1.28.5&lt;/h4>
&lt;h4 id="spinnaker-deck---1285">Spinnaker Deck - 1.28.5&lt;/h4>
&lt;ul>
&lt;li>fix(timeout): Added feature flag for rollback timeout ui input. (backport #9937) (#9940)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1285">Spinnaker Echo - 1.28.5&lt;/h4>
&lt;h4 id="spinnaker-front50---1285">Spinnaker Front50 - 1.28.5&lt;/h4>
&lt;h4 id="spinnaker-fiat---1285">Spinnaker Fiat - 1.28.5&lt;/h4>
&lt;ul>
&lt;li>fix: Should fix the deletion of permissions when resource name is uppercase (backport #1012) (#1013)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1285">Spinnaker Rosco - 1.28.5&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1285">Spinnaker Clouddriver - 1.28.5&lt;/h4>
&lt;ul>
&lt;li>fix(kubernetes): Revert to using the dockerImage Artifact Replacer for cronjobs (#5876) (#5877)&lt;/li>
&lt;li>fix(ecr): Two credentials with same accountId confuses EcrImageProvider with different regions (#5885) (#5887)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1285">Spinnaker Gate - 1.28.5&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1285">Spinnaker Kayenta - 1.28.5&lt;/h4></description></item><item><title>Continuous-Deployment: v2.27.7 Armory Continuous Deployment Release (Spinnaker™ v1.27.3)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-7/</link><pubDate>Thu, 16 Feb 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-7/</guid><description>
&lt;h2 id="20230216-release-notes">2023/02/16 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.27.7, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;p>&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory Continuous Deployment 2.27.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/release-notes/agent-plugin/">Armory Agent for Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.10.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.9&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.2.1-rc&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/p>
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;p>&lt;h4 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h4>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;h4 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h4>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;h3 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h3>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;/p>
&lt;h2 id="early-access-features">Early Access features&lt;/h2>
&lt;h3 id="dynamic-rollback-timeout">Dynamic Rollback Timeout&lt;/h3>
&lt;p>To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck.&lt;/p>
&lt;p>On the Orca side, the feature flag overrides the default value rollback timeout - 5min - with a UI input from the user.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;yaml,&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;orca.yml,&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;rollback:&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;timeout:&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;enabled: true&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>On the Deck side, the feature flag enhances the Rollback Cluster stage UI with timeout input.&lt;/p>
&lt;p>&lt;code>window.spinnakerSettings.feature.dynamicRollbackTimeout = true;&lt;/code>&lt;/p>
&lt;p>The default is used if there is no value set in the UI.&lt;/p>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipelines-as-Code to pull Dinghy files from multiple branches in the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically Cancel Jenkins Jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a Spinnaker pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more about Jenkins + Spinnaker in this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">documentation&lt;/a>.&lt;/p>
&lt;h2 id="fixed">Fixed&lt;/h2>
&lt;ul>
&lt;li>Updated google cloud SDK to support GKE &amp;gt;1.26&lt;/li>
&lt;/ul>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.27.3-changelog/">Spinnaker v1.27.3&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: dc29b777268954cce13b1b36b152d4e2a493caa9
version: 2.27.7
deck:
commit: be6776c69c18743de1df214acaa500250569a146
version: 2.27.7
dinghy:
commit: ca161395d61ae5e93d1f9ecfbb503b68c2b54bc5
version: 2.27.7
echo:
commit: 3204f90e951562245c62430d863617c34b3a0826
version: 2.27.7
fiat:
commit: b3ca6748d2377454949420613e7912748ea00b52
version: 2.27.7
front50:
commit: 5e1fe36c4b8df29cc9cb4d7af581a44b0ca44e59
version: 2.27.7
gate:
commit: adf9732bc7b3c8df48b21b86ef9783efcadec78b
version: 2.27.7
igor:
commit: 9e2d7946da19c803eb0bd12e888c5119528a364c
version: 2.27.7
kayenta:
commit: 5a1efcefddfe78f37550f5bee723570e3737ce04
version: 2.27.7
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: b239fa305820b1102d38fe4d0beeaca847c0f4f2
version: 2.27.7
rosco:
commit: f4164fdcfa275b62e0c0fefbe26b5cbd845c543d
version: 2.27.7
terraformer:
commit: f845ba2fc760c46b98794a10c32cc2b713c7c9e0
version: 2.27.7
timestamp: "2023-02-08 07:01:33"
version: 2.27.7
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-orca---22762277">Armory Orca - 2.27.6&amp;hellip;2.27.7&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2023.02.03.15.10.20.release-1.27.x (#585)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22762277">Armory Rosco - 2.27.6&amp;hellip;2.27.7&lt;/h4>
&lt;h4 id="armory-deck---22762277">Armory Deck - 2.27.6&amp;hellip;2.27.7&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2023.0.0-20230203161357.release-1.27.x (#1295)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---22762277">Armory Echo - 2.27.6&amp;hellip;2.27.7&lt;/h4>
&lt;h4 id="armory-clouddriver---22762277">Armory Clouddriver - 2.27.6&amp;hellip;2.27.7&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2023.01.27.17.41.53.release-1.27.x (#784)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---22762277">Armory Fiat - 2.27.6&amp;hellip;2.27.7&lt;/h4>
&lt;h4 id="armory-front50---22762277">Armory Front50 - 2.27.6&amp;hellip;2.27.7&lt;/h4>
&lt;h4 id="dinghy---22762277">Dinghy™ - 2.27.6&amp;hellip;2.27.7&lt;/h4>
&lt;h4 id="armory-gate---22762277">Armory Gate - 2.27.6&amp;hellip;2.27.7&lt;/h4>
&lt;h4 id="armory-igor---22762277">Armory Igor - 2.27.6&amp;hellip;2.27.7&lt;/h4>
&lt;h4 id="armory-kayenta---22762277">Armory Kayenta - 2.27.6&amp;hellip;2.27.7&lt;/h4>
&lt;h4 id="terraformer---22762277">Terraformer™ - 2.27.6&amp;hellip;2.27.7&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-orca---1273">Spinnaker Orca - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>fix(timeout): Added feature flag for rollback timeout ui input. (backport #4383) (#4384)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1273">Spinnaker Rosco - 1.27.3&lt;/h4>
&lt;h4 id="spinnaker-deck---1273">Spinnaker Deck - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>fix(timeout): Added feature flag for rollback timeout ui input. (backport #9937) (#9939)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1273">Spinnaker Echo - 1.27.3&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1273">Spinnaker Clouddriver - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>feat(gke): Enables gcloud auth plugin for 1.26+ GKE clusters (backport #5847) (#5852)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1273">Spinnaker Fiat - 1.27.3&lt;/h4>
&lt;h4 id="spinnaker-front50---1273">Spinnaker Front50 - 1.27.3&lt;/h4>
&lt;h4 id="spinnaker-gate---1273">Spinnaker Gate - 1.27.3&lt;/h4>
&lt;h4 id="spinnaker-igor---1273">Spinnaker Igor - 1.27.3&lt;/h4>
&lt;h4 id="spinnaker-kayenta---1273">Spinnaker Kayenta - 1.27.3&lt;/h4></description></item><item><title>Continuous-Deployment: v2.28.4 Armory Continuous Deployment Release (Spinnaker™ v1.28.4)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-4/</link><pubDate>Tue, 07 Feb 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-4/</guid><description>
&lt;h2 id="20230207-release-notes">2023/02/07 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.28.4, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;h3 id="orca-requires-rdbms-configured-with-utf-8-encoding">Orca requires RDBMS configured with UTF-8 encoding&lt;/h3>
&lt;p>This release includes a change from MySQL JDBC drivers to AWS drivers. We have seen this cause issues when the database is NOT in a utf8mb4 format.&lt;/p>
&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="pipelines-as-code-slack-notifications-stop-working">Pipelines-as-Code Slack notifications stop working&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>After upgrading to 2.27.x, your Pipelines-as-Code Slack notifications may stop working even though they were working previously.&lt;/p>
&lt;p>&lt;strong>Hotfix&lt;/strong>&lt;/p>
&lt;p>See the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010573&amp;amp;sys_kb_id=c0befa03dbd2811079f53ec8f496192a&amp;amp;spa=1">Dinghy Slack Notifications not working&lt;/a> KB article for the Hotfix.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.27.0&lt;/p>
&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="git-artifact-constraint-trigger">Git Artifact Constraint Trigger&lt;/h4>
&lt;p>When setting an artifact constraint to limit when a pipeline executes on a git web hook, it&amp;rsquo;s likely the trigger will break with an error message
The following required artifacts could not be bound: &amp;lsquo;[ArtifactKey(type=docker/image, &amp;hellip;&amp;rsquo;
See https://github.com/spinnaker/spinnaker/issues/6757&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin Compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.28.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h3 id="mysql-permission-repository-error-in-2281-2284">MySQL Permission Repository error in 2.28.1-2.28.4&lt;/h3>
&lt;p>Armory is investigating an issue with FIAT when using MySQL as the backend permission repository. When it is enabled, unexpected authorization errors appear in logs across Clouddriver/Orca/Front50 for users and Service Accounts. Admins appear unaffected.&lt;/p>
&lt;p>The issue does not exist for 2.28.0 and lower and has since been resolved as of 2.28.5. Environments using the default Redis backend do not encounter these errors.
For more information about the changes that resolve this fix, &lt;a href="https://github.com/spinnaker/fiat/pull/1012">please visit the following PR&lt;/a>&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>: Use Redis backend, 2.28.0, 2.28.5+&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.1-2.28.4&lt;/p>
&lt;h3 id="application-attributes-section-displays-this-application-has-not-been-configured">&lt;strong>Application Attributes&lt;/strong> section displays &amp;ldquo;This Application has not been configured&amp;rdquo;&lt;/h3>
&lt;p>There is a known issue that relates to the &lt;strong>Application Attributes&lt;/strong> section under the &lt;strong>Config&lt;/strong> menu. An application that was already created and configured in Spinnaker displays the message, “This application has not been configured.” While the information is missing, there is no functional impact.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="google-app-engine-account-authentication">Google App Engine account authentication&lt;/h3>
&lt;p>Spinnaker 1.28 introduced a new API to allow adding accounts to Spinnaker. This change required all existing providers to register themselves with the credentials repo system. Several cloud providers were missed as part of the migration, including Google and AppEngine providers. It’s possible other non-supported providers may also be broken. The result of this is that users cannot see any Google or App Engine accounts listed in the UI, and non-admin users get an Access Denied error when trying to run pipelines as no permissions are granted. Admins can still deploy to these accounts since they bypass any permissions restrictions.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.28.X or later: Replace the Clouddriver image in 2.28 with the Armory Clouddriver 2.27 image&lt;/p>
&lt;p>1.28.X or later: Replace the Clouddriver image in 1.28 with the OSS Clouddriver 1.27 image&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;h3 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h3>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;h2 id="early-access">Early access&lt;/h2>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipelines-as-Code to pull Dinghy files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger Spinnaker pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a> in the Spinnaker docs for details.&lt;/p>
&lt;!-- Spinnaker docs PR https://github.com/spinnaker/spinnaker.io/pull/285 -->
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you will be able to use the Terraform template file provider. Please open a support ticket if you need this fix.&lt;/p>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically Cancel Jenkins Jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a Spinnaker pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more about Jenkins + Spinnaker in this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">documentation&lt;/a>.&lt;/p>
&lt;h2 id="fixed-issues">Fixed issues&lt;/h2>
&lt;ul>
&lt;li>Addressed an issue which could result in access denied errors for Clouddriver accounts when AuthZ enabled and has empty roles&lt;/li>
&lt;/ul>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.28.4-changelog/">Spinnaker v1.28.4&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: d52c864053d77a05eef806926591427bc866b529
version: 2.28.4
deck:
commit: dd17c153eaf117ab7990c11182a6bdc887d020f9
version: 2.28.4
dinghy:
commit: c4ed5b19dbcfefe8dea14cdff7df9a8ab540eba3
version: 2.28.4
echo:
commit: 53bebfd6900b3de124dde043a00d164aa2e50773
version: 2.28.4
fiat:
commit: 48c8759b0878fd1b86b91dae9ee288afcf03dd39
version: 2.28.4
front50:
commit: fab8841982330e7537629c9f24f41205cd5863fd
version: 2.28.4
gate:
commit: 65bdd30238312bbca2dce613825eda7ae88f1dfa
version: 2.28.4
igor:
commit: 61ce26babfcd0bdf62872c24e707ca5b5371a381
version: 2.28.4
kayenta:
commit: 0333b9ed6153acfc090edcfa38e3514439e2863c
version: 2.28.4
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 76fe72a46566bb404eb4db4c842ecb0775c546bf
version: 2.28.4
rosco:
commit: 945f21dec252da7dd2e00c8d23a1687aa3b9841a
version: 2.28.4
terraformer:
commit: 3764e523e17dfdd4cf309dc2bd7c13d9b804f309
version: 2.28.4
timestamp: "2023-01-31 10:52:55"
version: 2.28.4
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-fiat---22832284">Armory Fiat - 2.28.3&amp;hellip;2.28.4&lt;/h4>
&lt;h4 id="armory-front50---22832284">Armory Front50 - 2.28.3&amp;hellip;2.28.4&lt;/h4>
&lt;h4 id="terraformer---22832284">Terraformer™ - 2.28.3&amp;hellip;2.28.4&lt;/h4>
&lt;h4 id="armory-gate---22832284">Armory Gate - 2.28.3&amp;hellip;2.28.4&lt;/h4>
&lt;h4 id="armory-clouddriver---22832284">Armory Clouddriver - 2.28.3&amp;hellip;2.28.4&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2023.01.25.18.10.13.release-1.28.x (#782)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.01.30.18.47.09.release-1.28.x (#787)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---22832284">Armory Kayenta - 2.28.3&amp;hellip;2.28.4&lt;/h4>
&lt;h4 id="armory-igor---22832284">Armory Igor - 2.28.3&amp;hellip;2.28.4&lt;/h4>
&lt;h4 id="armory-rosco---22832284">Armory Rosco - 2.28.3&amp;hellip;2.28.4&lt;/h4>
&lt;h4 id="armory-echo---22832284">Armory Echo - 2.28.3&amp;hellip;2.28.4&lt;/h4>
&lt;h4 id="armory-orca---22832284">Armory Orca - 2.28.3&amp;hellip;2.28.4&lt;/h4>
&lt;h4 id="armory-deck---22832284">Armory Deck - 2.28.3&amp;hellip;2.28.4&lt;/h4>
&lt;h4 id="dinghy---22832284">Dinghy™ - 2.28.3&amp;hellip;2.28.4&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-fiat---1284">Spinnaker Fiat - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-front50---1284">Spinnaker Front50 - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-gate---1284">Spinnaker Gate - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1284">Spinnaker Clouddriver - 1.28.4&lt;/h4>
&lt;ul>
&lt;li>fix(permissions): Added evaluator case when fiat is enabled (#5856)&lt;/li>
&lt;li>feat(gke): Enables gcloud auth plugin for 1.26+ GKE clusters (backport #5847) (#5851)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1284">Spinnaker Kayenta - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-igor---1284">Spinnaker Igor - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-rosco---1284">Spinnaker Rosco - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-echo---1284">Spinnaker Echo - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-orca---1284">Spinnaker Orca - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-deck---1284">Spinnaker Deck - 1.28.4&lt;/h4></description></item><item><title>Continuous-Deployment: v2.27.6 Armory Continuous Deployment Release (Spinnaker™ v1.27.3)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-6/</link><pubDate>Mon, 30 Jan 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-6/</guid><description>
&lt;h2 id="20230130-release-notes">2023/01/30 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.27.6, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory Continuous Deployment 2.27.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/release-notes/agent-plugin/">Armory Agent for Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.10.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.9&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.2.1-rc&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;p>&lt;h4 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h4>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;h4 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h4>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;h3 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h3>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;/p>
&lt;h2 id="early-access-features">Early Access features&lt;/h2>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipelines-as-Code to pull Dinghy files from multiple branches in the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="feature-flag-in-orca-to-use-the-new-igor-stop-endpoint">Feature flag in Orca to use the new Igor stop endpoint&lt;/h3>
&lt;p>When defining a Jenkins job inside folders, the name contains slashes. Because of that, instead of matching the request to the IGOR STOP endpoint (&lt;code>/masters/{name}/jobs/{jobName}/stop/{queuedBuild}/{buildNumber}&lt;/code>), Spring is matching the request to the BUILD one (&lt;code>/masters/{name}/jobs/**&lt;/code>)
The stop request is failing because it is trying to start a job that does not exist. A &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">feature flag&lt;/a> was added to call the existing endpoint (which accepts the job name as path variable) or the new one (which accepts the job name as a query parameter).&lt;/p>
&lt;h2 id="fixes">Fixes&lt;/h2>
&lt;ul>
&lt;li>Updated google cloud SDK to support GKE &amp;gt;1.26&lt;/li>
&lt;li>Bumped commons-text to address CVE-2022-42889&lt;/li>
&lt;li>Add migration to ensure consistency between resource_name in fiat_resource and fiat_permission tables&lt;/li>
&lt;/ul>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.27.3-changelog/">Spinnaker v1.27.3&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 60eafebf9875071709e3d8ec53d2729a197574f1
version: 2.27.6
deck:
commit: 0802cbb92aa32eb6b387b5a6e54db14843fc6f31
version: 2.27.6
dinghy:
commit: ca161395d61ae5e93d1f9ecfbb503b68c2b54bc5
version: 2.27.6
echo:
commit: 3204f90e951562245c62430d863617c34b3a0826
version: 2.27.6
fiat:
commit: b3ca6748d2377454949420613e7912748ea00b52
version: 2.27.6
front50:
commit: 5e1fe36c4b8df29cc9cb4d7af581a44b0ca44e59
version: 2.27.6
gate:
commit: adf9732bc7b3c8df48b21b86ef9783efcadec78b
version: 2.27.6
igor:
commit: 9e2d7946da19c803eb0bd12e888c5119528a364c
version: 2.27.6
kayenta:
commit: 5a1efcefddfe78f37550f5bee723570e3737ce04
version: 2.27.6
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: fa3449f0202512534382d2d2a0431f25f4f408c5
version: 2.27.6
rosco:
commit: f4164fdcfa275b62e0c0fefbe26b5cbd845c543d
version: 2.27.6
terraformer:
commit: f845ba2fc760c46b98794a10c32cc2b713c7c9e0
version: 2.27.6
timestamp: "2023-01-20 20:04:33"
version: 2.27.6
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-kayenta---22752276">Armory Kayenta - 2.27.5&amp;hellip;2.27.6&lt;/h4>
&lt;ul>
&lt;li>fix(kayenta-integration-tests): update dynatrace tenant to qso00828 (backport #376) (#378)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.12.01.22.29.56.release-1.27.x (#373)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---22752276">Armory Orca - 2.27.5&amp;hellip;2.27.6&lt;/h4>
&lt;h4 id="terraformer---22752276">Terraformer™ - 2.27.5&amp;hellip;2.27.6&lt;/h4>
&lt;ul>
&lt;li>fix(versions): Sets version constraints for kubectl &amp;amp; aws-iam-authent… (backport #487) (#488)&lt;/li>
&lt;li>Fixes builds with golint being dead until were on a newer golang (#491) (#494)&lt;/li>
&lt;li>feat(gcloud): Bump to latest gcloud sdk &amp;amp; adds the GKE Auth plugin (#490) (#492)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22752276">Armory Rosco - 2.27.5&amp;hellip;2.27.6&lt;/h4>
&lt;h4 id="armory-deck---22752276">Armory Deck - 2.27.5&amp;hellip;2.27.6&lt;/h4>
&lt;ul>
&lt;li>style(logo): Changed Armory logo (#1264) (#1266)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---22752276">Armory Clouddriver - 2.27.5&amp;hellip;2.27.6&lt;/h4>
&lt;ul>
&lt;li>feat(google): Updated google cloud SDK to support GKE &amp;gt;1.26 (#769) (#771)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.01.20.18.19.32.release-1.27.x (#781)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---22752276">Armory Fiat - 2.27.5&amp;hellip;2.27.6&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to fiat:2022.11.18.19.29.05.release-1.27.x (#408)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22752276">Armory Gate - 2.27.5&amp;hellip;2.27.6&lt;/h4>
&lt;h4 id="armory-echo---22752276">Armory Echo - 2.27.5&amp;hellip;2.27.6&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to echo:2022.12.14.15.47.16.release-1.27.x (#515)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.01.20.14.47.33.release-1.27.x (#525)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---22752276">Armory Front50 - 2.27.5&amp;hellip;2.27.6&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to front50:2022.12.01.21.15.09.release-1.27.x (#473)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---22752276">Armory Igor - 2.27.5&amp;hellip;2.27.6&lt;/h4>
&lt;h4 id="dinghy---22752276">Dinghy™ - 2.27.5&amp;hellip;2.27.6&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-kayenta---1273">Spinnaker Kayenta - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>fix(security): Bump commons-text for CVE-2022-42889 (#911) (#913)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#918)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#919)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#917) (#920)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1273">Spinnaker Orca - 1.27.3&lt;/h4>
&lt;h4 id="spinnaker-rosco---1273">Spinnaker Rosco - 1.27.3&lt;/h4>
&lt;h4 id="spinnaker-deck---1273">Spinnaker Deck - 1.27.3&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1273">Spinnaker Clouddriver - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): pin version of com.github.tomakehurst:wiremock (#5845) (#5857)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1273">Spinnaker Fiat - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>fix(permissions): ensure lower case for resource name in fiat_permission and fiat_resource tables (backport #963) (#979)&lt;/li>
&lt;li>chore(build): set timeout for apt publishing to 5 minutes (#987)&lt;/li>
&lt;li>chore(build): set timeout for apt publishing to 10 minutes and add &amp;ndash;stacktrace (#988)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#989) (#990)&lt;/li>
&lt;li>Cleanup publish debugging (#991)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1273">Spinnaker Gate - 1.27.3&lt;/h4>
&lt;h4 id="spinnaker-echo---1273">Spinnaker Echo - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>feat(event): Add circuit breaker for events sending. (#1233) (#1238)&lt;/li>
&lt;li>fix: The circuit breaker feature for sending events to telemetry endpoint is hidden under a required feature flag property (#1241) (#1244)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-front50---1273">Spinnaker Front50 - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#1178)&lt;/li>
&lt;li>fix(pipelines): prevent from creating duplicated pipelines (#1172) (#1173)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1177) (#1182)&lt;/li>
&lt;li>chore(gha): bump versions of github actions (#1185)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1273">Spinnaker Igor - 1.27.3&lt;/h4></description></item><item><title>Continuous-Deployment: v2.28.3 Armory Continuous Deployment Release (Spinnaker™ v1.28.4)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-3/</link><pubDate>Thu, 26 Jan 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-3/</guid><description>
&lt;h2 id="20230126-release-notes">2023/01/26 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.28.3, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;h3 id="orca-requires-rdbms-configured-with-utf-8-encoding">Orca requires RDBMS configured with UTF-8 encoding&lt;/h3>
&lt;p>This release includes a change from MySQL JDBC drivers to AWS drivers. We have seen this cause issues when the database is NOT in a utf8mb4 format.&lt;/p>
&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="pipelines-as-code-slack-notifications-stop-working">Pipelines-as-Code Slack notifications stop working&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>After upgrading to 2.27.x, your Pipelines-as-Code Slack notifications may stop working even though they were working previously.&lt;/p>
&lt;p>&lt;strong>Hotfix&lt;/strong>&lt;/p>
&lt;p>See the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010573&amp;amp;sys_kb_id=c0befa03dbd2811079f53ec8f496192a&amp;amp;spa=1">Dinghy Slack Notifications not working&lt;/a> KB article for the Hotfix.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.27.0&lt;/p>
&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="git-artifact-constraint-trigger">Git Artifact Constraint Trigger&lt;/h4>
&lt;p>When setting an artifact constraint to limit when a pipeline executes on a git web hook, it&amp;rsquo;s likely the trigger will break with an error message
The following required artifacts could not be bound: &amp;lsquo;[ArtifactKey(type=docker/image, &amp;hellip;&amp;rsquo;
See https://github.com/spinnaker/spinnaker/issues/6757&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin Compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.28.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h4 id="when-auth-z-is-enabled-access-denied-on-deployments-using-accounts-that-have-empty-permissions">When Auth Z is enabled, Access Denied on deployments using accounts that have empty permissions&lt;/h4>
&lt;p>Users report that when attempting to use FIAT-defined User Accounts/Service Accounts/Service Principals that have empty permissions or roles, they receive an &lt;code>Exception: Access denied to account ***&lt;/code> message. For example, &lt;code>Exception: Access denied to account aws&lt;/code>. This is contrary to expected behavior in Spinnaker/Armory Continuous Deployment.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Users can add roles to the accounts in FIAT that are affected, even &amp;ldquo;dummy&amp;rdquo; roles.&lt;/p>
&lt;p>See the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010748">How to Audit for Empty Roles in FIAT using Redis/MySQL&lt;/a> KB article for how to locate affected user accounts, service accounts, or service principals.&lt;/p>
&lt;p>Customers can also now &lt;a href="https://docs.armory.io/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-4/#fixed-issues">upgrade to Armory CD 2.28.4&lt;/a>, which resolves this known issue&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.0-2.28.3&lt;/p>
&lt;h3 id="mysql-permission-repository-error-in-2281-2284">MySQL Permission Repository error in 2.28.1-2.28.4&lt;/h3>
&lt;p>Armory is investigating an issue with FIAT when using MySQL as the backend permission repository. When it is enabled, unexpected authorization errors appear in logs across Clouddriver/Orca/Front50 for users and Service Accounts. Admins appear unaffected.&lt;/p>
&lt;p>The issue does not exist for 2.28.0 and lower and has since been resolved as of 2.28.5. Environments using the default Redis backend do not encounter these errors.
For more information about the changes that resolve this fix, &lt;a href="https://github.com/spinnaker/fiat/pull/1012">please visit the following PR&lt;/a>&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>: Use Redis backend, 2.28.0, 2.28.5+&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.1-2.28.4&lt;/p>
&lt;h3 id="application-attributes-section-displays-this-application-has-not-been-configured">&lt;strong>Application Attributes&lt;/strong> section displays &amp;ldquo;This Application has not been configured&amp;rdquo;&lt;/h3>
&lt;p>There is a known issue that relates to the &lt;strong>Application Attributes&lt;/strong> section under the &lt;strong>Config&lt;/strong> menu. An application that was already created and configured in Spinnaker displays the message, “This application has not been configured.” While the information is missing, there is no functional impact.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="google-app-engine-account-authentication">Google App Engine account authentication&lt;/h3>
&lt;p>Spinnaker 1.28 introduced a new API to allow adding accounts to Spinnaker. This change required all existing providers to register themselves with the credentials repo system. Several cloud providers were missed as part of the migration, including Google and AppEngine providers. It’s possible other non-supported providers may also be broken. The result of this is that users cannot see any Google or App Engine accounts listed in the UI, and non-admin users get an Access Denied error when trying to run pipelines as no permissions are granted. Admins can still deploy to these accounts since they bypass any permissions restrictions.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.28.X or later: Replace the Clouddriver image in 2.28 with the Armory Clouddriver 2.27 image&lt;/p>
&lt;p>1.28.X or later: Replace the Clouddriver image in 1.28 with the OSS Clouddriver 1.27 image&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;h3 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h3>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;h2 id="early-access">Early access&lt;/h2>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipelines-as-Code to pull Dinghy files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger Spinnaker pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a> in the Spinnaker docs for details.&lt;/p>
&lt;!-- Spinnaker docs PR https://github.com/spinnaker/spinnaker.io/pull/285 -->
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you will be able to use the Terraform template file provider. Please open a support ticket if you need this fix.&lt;/p>
&lt;h3 id="automatically-cancel-jenkins-jobs">Automatically Cancel Jenkins Jobs&lt;/h3>
&lt;p>You now have the ability to cancel triggered Jenkins jobs when a Spinnaker pipeline is canceled, giving you more control over your full Jenkins workflow. Learn more about Jenkins + Spinnaker in this &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">documentation&lt;/a> .&lt;/p>
&lt;h2 id="fixed-issues">Fixed Issues&lt;/h2>
&lt;ul>
&lt;li>Updated google cloud SDK to support GKE &amp;gt;1.26&lt;/li>
&lt;li>Bumped commons-text to address CVE-2022-42889&lt;/li>
&lt;/ul>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.28.4-changelog/">Spinnaker v1.28.4&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 66e1a26166ed649ebfb0ad6b0ac830924d2d6df2
version: 2.28.3
deck:
commit: dd17c153eaf117ab7990c11182a6bdc887d020f9
version: 2.28.3
dinghy:
commit: c4ed5b19dbcfefe8dea14cdff7df9a8ab540eba3
version: 2.28.3
echo:
commit: 53bebfd6900b3de124dde043a00d164aa2e50773
version: 2.28.3
fiat:
commit: 48c8759b0878fd1b86b91dae9ee288afcf03dd39
version: 2.28.3
front50:
commit: fab8841982330e7537629c9f24f41205cd5863fd
version: 2.28.3
gate:
commit: 65bdd30238312bbca2dce613825eda7ae88f1dfa
version: 2.28.3
igor:
commit: 61ce26babfcd0bdf62872c24e707ca5b5371a381
version: 2.28.3
kayenta:
commit: 0333b9ed6153acfc090edcfa38e3514439e2863c
version: 2.28.3
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 76fe72a46566bb404eb4db4c842ecb0775c546bf
version: 2.28.3
rosco:
commit: 945f21dec252da7dd2e00c8d23a1687aa3b9841a
version: 2.28.3
terraformer:
commit: 3764e523e17dfdd4cf309dc2bd7c13d9b804f309
version: 2.28.3
timestamp: "2023-01-20 19:07:29"
version: 2.28.3
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-kayenta---22822283">Armory Kayenta - 2.28.2&amp;hellip;2.28.3&lt;/h4>
&lt;ul>
&lt;li>fix(kayenta-integration-tests): update dynatrace tenant to qso00828 (backport #376) (#377)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.12.05.19.06.46.release-1.28.x (#374)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22822283">Armory Gate - 2.28.2&amp;hellip;2.28.3&lt;/h4>
&lt;h4 id="armory-rosco---22822283">Armory Rosco - 2.28.2&amp;hellip;2.28.3&lt;/h4>
&lt;h4 id="armory-igor---22822283">Armory Igor - 2.28.2&amp;hellip;2.28.3&lt;/h4>
&lt;h4 id="armory-orca---22822283">Armory Orca - 2.28.2&amp;hellip;2.28.3&lt;/h4>
&lt;h4 id="terraformer---22822283">Terraformer™ - 2.28.2&amp;hellip;2.28.3&lt;/h4>
&lt;ul>
&lt;li>Fixes builds with golint being dead until were on a newer golang (#491) (#495)&lt;/li>
&lt;li>feat(gcloud): Bump to latest gcloud sdk &amp;amp; adds the GKE Auth plugin (#490) (#493)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---22822283">Armory Deck - 2.28.2&amp;hellip;2.28.3&lt;/h4>
&lt;h4 id="armory-clouddriver---22822283">Armory Clouddriver - 2.28.2&amp;hellip;2.28.3&lt;/h4>
&lt;ul>
&lt;li>feat(google): Updated google cloud SDK to support GKE &amp;gt;1.26 (#769) (#772)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2023.01.20.18.13.55.release-1.28.x (#779)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---22822283">Dinghy™ - 2.28.2&amp;hellip;2.28.3&lt;/h4>
&lt;h4 id="armory-echo---22822283">Armory Echo - 2.28.2&amp;hellip;2.28.3&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to echo:2022.12.14.15.47.22.release-1.28.x (#516)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2023.01.20.14.47.47.release-1.28.x (#527)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---22822283">Armory Fiat - 2.28.2&amp;hellip;2.28.3&lt;/h4>
&lt;h4 id="armory-front50---22822283">Armory Front50 - 2.28.2&amp;hellip;2.28.3&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-kayenta---1284">Spinnaker Kayenta - 1.28.4&lt;/h4>
&lt;ul>
&lt;li>fix(security): Bump commons-text for CVE-2022-42889 (#911) (#914)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#917) (#921)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#923)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1284">Spinnaker Gate - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-rosco---1284">Spinnaker Rosco - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-igor---1284">Spinnaker Igor - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-orca---1284">Spinnaker Orca - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-deck---1284">Spinnaker Deck - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1284">Spinnaker Clouddriver - 1.28.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): pin version of com.github.tomakehurst:wiremock (#5845) (#5858)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1284">Spinnaker Echo - 1.28.4&lt;/h4>
&lt;ul>
&lt;li>feat(event): Add circuit breaker for events sending. (#1233) (#1237)&lt;/li>
&lt;li>fix: The circuit breaker feature for sending events to telemetry endpoint is hidden under a required feature flag property (#1241) (#1245)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1284">Spinnaker Fiat - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-front50---1284">Spinnaker Front50 - 1.28.4&lt;/h4></description></item><item><title>Continuous-Deployment: v2.27.5 Armory Continuous Deployment Release (Spinnaker™ v1.27.3)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-5/</link><pubDate>Thu, 12 Jan 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-5/</guid><description>
&lt;h2 id="20230112-release-notes">2023/01/12 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.27.5, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;p>&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory Continuous Deployment 2.27.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/release-notes/agent-plugin/">Armory Agent for Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.10.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.9&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.2.1-rc&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/p>
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;p>&lt;h4 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h4>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;h4 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h4>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;h3 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h3>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;/p>
&lt;h2 id="early-access-features">Early Access features&lt;/h2>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipelines-as-Code to pull Dinghy files from multiple branches in the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="feature-flag-in-orca-to-use-the-new-igor-stop-endpoint">Feature flag in Orca to use the new Igor stop endpoint&lt;/h3>
&lt;p>When defining a Jenkins job inside folders, the name contains slashes. Because of that, instead of matching the request to the IGOR STOP endpoint (&lt;code>/masters/{name}/jobs/{jobName}/stop/{queuedBuild}/{buildNumber}&lt;/code>), Spring is matching the request to the BUILD one (&lt;code>/masters/{name}/jobs/**&lt;/code>)
The stop request is failing because it is trying to start a job that does not exist. A &lt;a href="https://spinnaker.io/changelogs/1.29.0-changelog/#orca">feature flag&lt;/a> was added to call the existing endpoint (which accepts the job name as path variable) or the new one (which accepts the job name as a query parameter).&lt;/p>
&lt;h2 id="fixes">Fixes&lt;/h2>
&lt;h3 id="general">General&lt;/h3>
&lt;ul>
&lt;li>Revision History Display - Addressed an issue where the revision history was not showing the timestamp of the revision.&lt;/li>
&lt;li>Duplicate Pipelines - Addressed an issue where Spinnaker users were ending up with duplicate pipelines when using pipelines as code.&lt;/li>
&lt;li>Jenkins Backlinks - Fixed an issue where Igor was failing when Jenkins backlinks were enabled.&lt;/li>
&lt;li>KubernetesManifest - Teach KubernetesManifest to support kubernetes resources where the spec is not a map.&lt;/li>
&lt;/ul>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.27.3-changelog/">Spinnaker v1.27.3&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: f310d91adf02ab892147e02fd549fd09af05a332
version: 2.27.5
deck:
commit: 1d2408e6d94fa62200bd0b776fdc021c5ff9f83d
version: 2.27.5
dinghy:
commit: ca161395d61ae5e93d1f9ecfbb503b68c2b54bc5
version: 2.27.5
echo:
commit: ed3c35253d27af121a5a6874de9b006d3b5d3bcf
version: 2.27.5
fiat:
commit: 9d615d351b220ea846e3c31890ecea7757fe40f4
version: 2.27.5
front50:
commit: 8be88a5e2efdf5ac85b6ea38c264d762e8ccf523
version: 2.27.5
gate:
commit: adf9732bc7b3c8df48b21b86ef9783efcadec78b
version: 2.27.5
igor:
commit: 9e2d7946da19c803eb0bd12e888c5119528a364c
version: 2.27.5
kayenta:
commit: 08b8f4656b4f6285ae5b0a5577ab10f6c50ba8ec
version: 2.27.5
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: fa3449f0202512534382d2d2a0431f25f4f408c5
version: 2.27.5
rosco:
commit: f4164fdcfa275b62e0c0fefbe26b5cbd845c543d
version: 2.27.5
terraformer:
commit: 0703f04671e56a94ac99e436a30c237b274e9407
version: 2.27.5
timestamp: "2022-12-08 23:35:17"
version: 2.27.5
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-front50---22742275">Armory Front50 - 2.27.4&amp;hellip;2.27.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to front50:2022.08.17.22.13.34.release-1.27.x (#448)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.09.12.22.11.40.release-1.27.x (#454)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---22742275">Armory Kayenta - 2.27.4&amp;hellip;2.27.5&lt;/h4>
&lt;h4 id="terraformer---22742275">Terraformer™ - 2.27.4&amp;hellip;2.27.5&lt;/h4>
&lt;ul>
&lt;li>Updating up to 1.3.5 tf version (#480)&lt;/li>
&lt;li>fix(log): calling remote logging asynchronously (#471) (#486)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---22742275">Armory Clouddriver - 2.27.4&amp;hellip;2.27.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2022.09.27.19.40.03.release-1.27.x (#724)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.17.17.20.07.release-1.27.x (#741)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.18.20.27.41.release-1.27.x (#744)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.29.22.19.50.release-1.27.x (#751)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---22742275">Armory Echo - 2.27.4&amp;hellip;2.27.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to echo:2022.11.18.20.17.06.release-1.27.x (#499)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.11.29.21.47.09.release-1.27.x (#503)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22742275">Armory Gate - 2.27.4&amp;hellip;2.27.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to gate:2022.11.18.20.16.26.release-1.27.x (#487)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.11.29.21.50.55.release-1.27.x (#491)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.12.01.19.38.20.release-1.27.x (#493)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---22742275">Dinghy™ - 2.27.4&amp;hellip;2.27.5&lt;/h4>
&lt;h4 id="armory-igor---22742275">Armory Igor - 2.27.4&amp;hellip;2.27.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to igor:2022.11.02.03.23.43.release-1.27.x (#374)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.11.18.20.16.38.release-1.27.x (#379)&lt;/li>
&lt;li>fix: NoSuchMethodError exception in JenkinsClient. (#377) (#386)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.11.29.21.52.13.release-1.27.x (#389)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---22742275">Armory Deck - 2.27.4&amp;hellip;2.27.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2022.0.0-20221021162941.release-1.27.x (#1263)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20221129214343.release-1.27.x (#1278)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---22742275">Armory Orca - 2.27.4&amp;hellip;2.27.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2022.11.02.03.24.06.release-1.27.x (#534)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.11.08.07.29.37.release-1.27.x (#537)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.11.08.22.28.13.release-1.27.x (#540)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.11.18.19.16.45.release-1.27.x (#549)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.11.18.20.23.15.release-1.27.x (#550)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.11.21.16.32.20.release-1.27.x (#553)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.11.23.15.54.32.release-1.27.x (#556)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22742275">Armory Rosco - 2.27.4&amp;hellip;2.27.5&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to rosco:2022.11.23.15.48.46.release-1.27.x (#467)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.11.29.21.53.45.release-1.27.x (#471)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.12.08.21.13.25.release-1.27.x (#475)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---22742275">Armory Fiat - 2.27.4&amp;hellip;2.27.5&lt;/h4>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-front50---1273">Spinnaker Front50 - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#1154)&lt;/li>
&lt;li>fix(updateTs): missing updateTs field in the get pipeline history&amp;rsquo;s response. (backport #1159) (#1161)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1273">Spinnaker Kayenta - 1.27.3&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1273">Spinnaker Clouddriver - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>fix(core): Remove payload data from logs (#5784) (#5788)&lt;/li>
&lt;li>fix(kubernetes): teach KubernetesManifest to support kubernetes resources where the spec is not a map (#5814) (#5816)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5820)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#5819) (#5826)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1273">Spinnaker Echo - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#1216)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1215) (#1221)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1273">Spinnaker Gate - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump fiatVersion (#1586)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1585) (#1591)&lt;/li>
&lt;li>chore(gha): bump versions of github actions (#1594)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1273">Spinnaker Igor - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>feat(jenkins): Stop Jenkins job when job name has slashes in the job name (backport #1038) (#1051)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1056)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1055) (#1060)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1273">Spinnaker Deck - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>fix(links): update link to spinnaker release changelog (#9897) (#9898)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#9916) (#9925)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1273">Spinnaker Orca - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>feat(igor): Stop Jenkins job when job name has slashes in the job name (backport #4294) (#4320)&lt;/li>
&lt;li>fix(stageExecution): In evaluable variable stage restart scenario variables are not cleaned properly (#16) (backport #4307) (#4325)&lt;/li>
&lt;li>fix(stage): Resource requests on custom stage | Error: got &amp;ldquo;map&amp;rdquo;, expected &amp;ldquo;string…&amp;rdquo; (backport #4295) (#4329)&lt;/li>
&lt;li>fix(tasks): Fix MonitorKayentaCanaryTask on results data map (#4312) (#4338)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4341)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#4337) (#4344)&lt;/li>
&lt;li>feat(bakery): Clean up cached data created by Rosco. (#4323) (#4349)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1273">Spinnaker Rosco - 1.27.3&lt;/h4>
&lt;ul>
&lt;li>feat(bakery): Clean up cached data created by Rosco. (#912) (#920)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#917) (#924)&lt;/li>
&lt;li>Merge pull request from GHSA-wqq8-664f-54hh&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1273">Spinnaker Fiat - 1.27.3&lt;/h4></description></item><item><title>Continuous-Deployment: v2.28.2 Armory Continuous Deployment Release (Spinnaker™ v1.28.4)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-2/</link><pubDate>Mon, 09 Jan 2023 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-2/</guid><description>
&lt;h2 id="20230109-release-notes">2023/01/09 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-armory-operator-version">Required Armory Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.28.2, use Armory Operator 1.70 or later.&lt;/p>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;h3 id="orca-requires-rdbms-configured-with-utf-8-encoding">Orca requires RDBMS configured with UTF-8 encoding&lt;/h3>
&lt;p>This release includes a change from MySQL JDBC drivers to AWS drivers. We have seen this cause issues when the database is NOT in a utf8mb4 format.&lt;/p>
&lt;h3 id="mysql-permission-repository-error-in-2281-2284">MySQL Permission Repository error in 2.28.1-2.28.4&lt;/h3>
&lt;p>Armory is investigating an issue with FIAT when using MySQL as the backend permission repository. When it is enabled, unexpected authorization errors appear in logs across Clouddriver/Orca/Front50 for users and Service Accounts. Admins appear unaffected.&lt;/p>
&lt;p>The issue does not exist for 2.28.0 and lower and has since been resolved as of 2.28.5. Environments using the default Redis backend do not encounter these errors.
For more information about the changes that resolve this fix, &lt;a href="https://github.com/spinnaker/fiat/pull/1012">please visit the following PR&lt;/a>&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>: Use Redis backend, 2.28.0, 2.28.5+&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.1-2.28.4&lt;/p>
&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="pipelines-as-code-slack-notifications-stop-working">Pipelines-as-Code Slack notifications stop working&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>After upgrading to 2.27.x, your Pipelines-as-Code Slack notifications may stop working even though they were working previously.&lt;/p>
&lt;p>&lt;strong>Hotfix&lt;/strong>&lt;/p>
&lt;p>See the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010573&amp;amp;sys_kb_id=c0befa03dbd2811079f53ec8f496192a&amp;amp;spa=1">Dinghy Slack Notifications not working&lt;/a> KB article for the Hotfix.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.27.0&lt;/p>
&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="git-artifact-constraint-trigger">Git Artifact Constraint Trigger&lt;/h4>
&lt;p>When setting an artifact constraint to limit when a pipeline executes on a git web hook, it&amp;rsquo;s likely the trigger will break with an error message
The following required artifacts could not be bound: &amp;lsquo;[ArtifactKey(type=docker/image, &amp;hellip;&amp;rsquo;
See https://github.com/spinnaker/spinnaker/issues/6757&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin Compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.28.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h4 id="when-auth-z-is-enabled-access-denied-on-deployments-using-accounts-that-have-empty-permissions">When Auth Z is enabled, Access Denied on deployments using accounts that have empty permissions&lt;/h4>
&lt;p>Users report that when attempting to use FIAT-defined User Accounts/Service Accounts/Service Principals that have empty permissions or roles, they receive an &lt;code>Exception: Access denied to account ***&lt;/code> message. For example, &lt;code>Exception: Access denied to account aws&lt;/code>. This is contrary to expected behavior in Spinnaker/Armory Continuous Deployment.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Users can add roles to the accounts in FIAT that are affected, even &amp;ldquo;dummy&amp;rdquo; roles.&lt;/p>
&lt;p>See the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010748">How to Audit for Empty Roles in FIAT using Redis/MySQL&lt;/a> KB article for how to locate affected user accounts, service accounts, or service principals.&lt;/p>
&lt;p>Customers can also now &lt;a href="https://docs.armory.io/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-4/#fixed-issues">upgrade to Armory CD 2.28.4&lt;/a>, which resolves this known issue&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.0-2.28.3&lt;/p>
&lt;h3 id="application-attributes-section-displays-this-application-has-not-been-configured">&lt;strong>Application Attributes&lt;/strong> section displays &amp;ldquo;This Application has not been configured&amp;rdquo;&lt;/h3>
&lt;p>There is a known issue that relates to the &lt;strong>Application Attributes&lt;/strong> section under the &lt;strong>Config&lt;/strong> menu. An application that was already created and configured in Spinnaker displays the message, “This application has not been configured.” While the information is missing, there is no functional impact.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="google-app-engine-account-authentication">Google App Engine account authentication&lt;/h3>
&lt;p>Spinnaker 1.28 introduced a new API to allow adding accounts to Spinnaker. This change required all existing providers to register themselves with the credentials repo system. Several cloud providers were missed as part of the migration, including Google and AppEngine providers. It’s possible other non-supported providers may also be broken. The result of this is that users cannot see any Google or App Engine accounts listed in the UI, and non-admin users get an Access Denied error when trying to run pipelines as no permissions are granted. Admins can still deploy to these accounts since they bypass any permissions restrictions.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.28.X or later: Replace the Clouddriver image in 2.28 with the Armory Clouddriver 2.27 image&lt;/p>
&lt;p>1.28.X or later: Replace the Clouddriver image in 1.28 with the OSS Clouddriver 1.27 image&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;h3 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h3>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;h2 id="early-access">Early access&lt;/h2>
&lt;h3 id="pipelines-as-code-multi-branch-enhancement">Pipelines-as-Code multi-branch enhancement&lt;/h3>
&lt;p>Now you can configure Pipelines-as-Code to pull Dinghy files from multiple branches on the same repo. Cut out the tedious task of managing multiple repos; have a single repo for Spinnaker application pipelines. See &lt;a href="/plugins/pipelines-as-code/install/configure/#multiple-branches">Multiple branches&lt;/a> for how to enable and configure this feature.&lt;/p>
&lt;h3 id="enhanced-bitbucket-server-pull-request-handling">Enhanced BitBucket Server pull request handling&lt;/h3>
&lt;p>Trigger Spinnaker pipelines natively when pull requests are opened in BitBucket with newly added events including PR opened, deleted, and declined. See &lt;a href="https://spinnaker.io/docs/guides/user/pipeline/triggers/bitbucket-events/">Triggering pipelines with Bitbucket Server&lt;/a> in the Spinnaker docs for details.&lt;/p>
&lt;!-- Spinnaker docs PR https://github.com/spinnaker/spinnaker.io/pull/285 -->
&lt;h3 id="terraform-template-fix">Terraform template fix&lt;/h3>
&lt;p>Armory fixed an issue with SpEL expression failures appearing while using Terraformer to serialize data from a Terraform Plan execution. With this feature flag fix enabled, you will be able to use the Terraform template file provider. Please open a support ticket if you need this fix.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;h3 id="general-fixes">General fixes&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Duplicate Pipelines&lt;/strong>: Addressed an issue where Spinnaker users were ending up with duplicate pipelines when using pipelines as code.&lt;/li>
&lt;li>&lt;strong>Jenkins Backlinks&lt;/strong>: Fixed an issue where Igor was failing when Jenkins backlinks were enabled.&lt;/li>
&lt;li>&lt;strong>Manual Judgment&lt;/strong>: Improved the logic around restart scenarios when executing a manual judgment.&lt;/li>
&lt;/ul>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker community contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.28.4-changelog/">Spinnaker v1.28.4&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 960c72d1e7e7b9e857d94af9731c3441426ee073
version: 2.28.2
deck:
commit: dd17c153eaf117ab7990c11182a6bdc887d020f9
version: 2.28.2
dinghy:
commit: c4ed5b19dbcfefe8dea14cdff7df9a8ab540eba3
version: 2.28.2
echo:
commit: 6d4e4ae054b7a13050a1d271b3c771a790e27fc6
version: 2.28.2
fiat:
commit: 48c8759b0878fd1b86b91dae9ee288afcf03dd39
version: 2.28.2
front50:
commit: fab8841982330e7537629c9f24f41205cd5863fd
version: 2.28.2
gate:
commit: 65bdd30238312bbca2dce613825eda7ae88f1dfa
version: 2.28.2
igor:
commit: 61ce26babfcd0bdf62872c24e707ca5b5371a381
version: 2.28.2
kayenta:
commit: 6004bfd90ad2e4fa9b02dddc26253210b8aa3a3c
version: 2.28.2
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 76fe72a46566bb404eb4db4c842ecb0775c546bf
version: 2.28.2
rosco:
commit: 945f21dec252da7dd2e00c8d23a1687aa3b9841a
version: 2.28.2
terraformer:
commit: 0d18998cb4790dd4857d79e318d873450bd5975d
version: 2.28.2
timestamp: "2022-12-15 10:58:49"
version: 2.28.2
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-clouddriver---22812282">Armory Clouddriver - 2.28.1&amp;hellip;2.28.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.17.17.21.13.release-1.28.x (#742)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.25.21.33.33.release-1.28.x (#750)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.29.21.59.34.release-1.28.x (#752)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---22812282">Armory Fiat - 2.28.1&amp;hellip;2.28.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to fiat:2022.11.21.16.27.25.release-1.28.x (#411)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---22812282">Armory Deck - 2.28.1&amp;hellip;2.28.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2022.0.0-20221129214415.release-1.28.x (#1279)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20221206152435.release-1.28.x (#1282)&lt;/li>
&lt;li>style(logo): Changed Armory logo (#1264) (#1265)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---22812282">Armory Echo - 2.28.1&amp;hellip;2.28.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to echo:2022.11.29.21.47.23.release-1.28.x (#504)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.12.06.19.49.37.release-1.28.x (#507)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---22812282">Dinghy™ - 2.28.1&amp;hellip;2.28.2&lt;/h4>
&lt;ul>
&lt;li>Updated oss dinghy version to v0.0.0-20221021170743-d8697fabf1e8 (#475)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22812282">Armory Gate - 2.28.1&amp;hellip;2.28.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to gate:2022.10.19.18.23.12.release-1.28.x (#480)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.10.19.20.00.40.release-1.28.x (#481)&lt;/li>
&lt;li>fix(header): update plugins.json with newest header version (backport #482) (#483)&lt;/li>
&lt;li>revert(header): update plugins.json with newest header version (#484) (#485)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.11.29.21.51.30.release-1.28.x (#492)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---22812282">Armory Igor - 2.28.1&amp;hellip;2.28.2&lt;/h4>
&lt;ul>
&lt;li>fix: NoSuchMethodError exception in JenkinsClient. (#377) (#387)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.11.29.21.52.31.release-1.28.x (#390)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---22812282">Terraformer™ - 2.28.1&amp;hellip;2.28.2&lt;/h4>
&lt;ul>
&lt;li>Updating TF versions up to 1.3.4 (#478)&lt;/li>
&lt;li>fix(log): calling remote logging asynchronously (#471) (#485)&lt;/li>
&lt;li>fix(versions): Sets version constraints for kubectl &amp;amp; aws-iam-authent… (#487) (#489)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---22812282">Armory Kayenta - 2.28.1&amp;hellip;2.28.2&lt;/h4>
&lt;h4 id="armory-front50---22812282">Armory Front50 - 2.28.1&amp;hellip;2.28.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to front50:2022.11.29.21.48.45.release-1.28.x (#472)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---22812282">Armory Orca - 2.28.1&amp;hellip;2.28.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2022.11.18.19.16.39.release-1.28.x (#548)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.11.21.16.33.46.release-1.28.x (#552)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.11.23.15.55.22.release-1.28.x (#557)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22812282">Armory Rosco - 2.28.1&amp;hellip;2.28.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to rosco:2022.11.23.15.48.41.release-1.28.x (#468)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.11.29.21.53.24.release-1.28.x (#470)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.12.08.21.17.26.release-1.28.x (#474)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-clouddriver---1284">Spinnaker Clouddriver - 1.28.4&lt;/h4>
&lt;ul>
&lt;li>fix(kubernetes): teach KubernetesManifest to support kubernetes resources where the spec is not a map (#5814) (#5817)&lt;/li>
&lt;li>fix(artifacts/bitbuket): added ACCEPT Header when using token auth (#5813) (#5823)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#5819) (#5827)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-fiat---1284">Spinnaker Fiat - 1.28.4&lt;/h4>
&lt;ul>
&lt;li>fix(permissions): ensure lower case for resource name in fiat_permission and fiat_resource tables (backport #963) (#980)&lt;/li>
&lt;li>fix(roles): Ensure account manager role is cached (backport #960) (#984)&lt;/li>
&lt;li>fix: add migration to ensure consistency between resource_name in fiat_resource and fiat_permission tables (backport #964) (#978)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#986)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#989) (#994)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1284">Spinnaker Deck - 1.28.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#9916) (#9926)&lt;/li>
&lt;li>feat(pipeline): added feature flag for pipeline when mj stage child (backport #9914) (#9920)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1284">Spinnaker Echo - 1.28.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1215) (#1222)&lt;/li>
&lt;li>feat(webhooks): Handle Bitbucket Server PR events (#1224)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1284">Spinnaker Gate - 1.28.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1581)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1582)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1585) (#1592)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1284">Spinnaker Igor - 1.28.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1055) (#1061)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1284">Spinnaker Kayenta - 1.28.4&lt;/h4>
&lt;h4 id="spinnaker-front50---1284">Spinnaker Front50 - 1.28.4&lt;/h4>
&lt;ul>
&lt;li>chore(dependencies): Autobump korkVersion (#1170)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1171)&lt;/li>
&lt;li>fix(pipelines): prevent from creating duplicated pipelines (#1172) (#1174)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#1177) (#1183)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1284">Spinnaker Orca - 1.28.4&lt;/h4>
&lt;ul>
&lt;li>fix(tasks): Fix MonitorKayentaCanaryTask on results data map (#4312) (#4339)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#4337) (#4345)&lt;/li>
&lt;li>feat(bakery): Clean up cached data created by Rosco. (#4323) (#4350)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1284">Spinnaker Rosco - 1.28.4&lt;/h4>
&lt;ul>
&lt;li>feat(bakery): Clean up cached data created by Rosco. (#912) (#921)&lt;/li>
&lt;li>chore(dependencies): Autobump spinnakerGradleVersion (#917) (#925)&lt;/li>
&lt;li>Merge pull request from GHSA-wqq8-664f-54hh&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.28.1 Armory Continuous Deployment Release (Spinnaker™ v1.28.1)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-1/</link><pubDate>Wed, 23 Nov 2022 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-1/</guid><description>
&lt;h2 id="20221117-release-notes">2022/11/17 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-halyard-or-operator-version">Required Halyard or Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.28.1, use one of the following tools:&lt;/p>
&lt;ul>
&lt;li>Armory Operator 1.6.0 or later&lt;/li>
&lt;/ul>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;h3 id="orca-requires-rdbms-configured-with-utf-8-encoding">Orca requires RDBMS configured with UTF-8 encoding&lt;/h3>
&lt;p>This release includes a change from MySQL JDBC drivers to AWS drivers. We have seen this cause issues when the database is NOT in a utf8mb4 format.&lt;/p>
&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="pipelines-as-code-slack-notifications-stop-working">Pipelines-as-Code Slack notifications stop working&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>After upgrading to 2.27.x, your Pipelines-as-Code Slack notifications may stop working even though they were working previously.&lt;/p>
&lt;p>&lt;strong>Hotfix&lt;/strong>&lt;/p>
&lt;p>See the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010573&amp;amp;sys_kb_id=c0befa03dbd2811079f53ec8f496192a&amp;amp;spa=1">Dinghy Slack Notifications not working&lt;/a> KB article for the Hotfix.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.27.0&lt;/p>
&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="git-artifact-constraint-trigger">Git Artifact Constraint Trigger&lt;/h4>
&lt;p>When setting an artifact constraint to limit when a pipeline executes on a git web hook, it&amp;rsquo;s likely the trigger will break with an error message
The following required artifacts could not be bound: &amp;lsquo;[ArtifactKey(type=docker/image, &amp;hellip;&amp;rsquo;
See https://github.com/spinnaker/spinnaker/issues/6757&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin Compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.28.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;h4 id="when-auth-z-is-enabled-access-denied-on-deployments-using-accounts-that-have-empty-permissions">When Auth Z is enabled, Access Denied on deployments using accounts that have empty permissions&lt;/h4>
&lt;p>Users report that when attempting to use FIAT-defined User Accounts/Service Accounts/Service Principals that have empty permissions or roles, they receive an &lt;code>Exception: Access denied to account ***&lt;/code> message. For example, &lt;code>Exception: Access denied to account aws&lt;/code>. This is contrary to expected behavior in Spinnaker/Armory Continuous Deployment.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Users can add roles to the accounts in FIAT that are affected, even &amp;ldquo;dummy&amp;rdquo; roles.&lt;/p>
&lt;p>See the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010748">How to Audit for Empty Roles in FIAT using Redis/MySQL&lt;/a> KB article for how to locate affected user accounts, service accounts, or service principals.&lt;/p>
&lt;p>Customers can also now &lt;a href="https://docs.armory.io/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-4/#fixed-issues">upgrade to Armory CD 2.28.4&lt;/a>, which resolves this known issue&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.0-2.28.3&lt;/p>
&lt;h3 id="mysql-permission-repository-error-in-2281-2284">MySQL Permission Repository error in 2.28.1-2.28.4&lt;/h3>
&lt;p>Armory is investigating an issue with FIAT when using MySQL as the backend permission repository. When it is enabled, unexpected authorization errors appear in logs across Clouddriver/Orca/Front50 for users and Service Accounts. Admins appear unaffected.&lt;/p>
&lt;p>The issue does not exist for 2.28.0 and lower and has since been resolved as of 2.28.5. Environments using the default Redis backend do not encounter these errors.
For more information about the changes that resolve this fix, &lt;a href="https://github.com/spinnaker/fiat/pull/1012">please visit the following PR&lt;/a>&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>: Use Redis backend, 2.28.0, 2.28.5+&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.1-2.28.4&lt;/p>
&lt;h3 id="application-attributes-section-displays-this-application-has-not-been-configured">&lt;strong>Application Attributes&lt;/strong> section displays &amp;ldquo;This Application has not been configured&amp;rdquo;&lt;/h3>
&lt;p>There is a known issue that relates to the &lt;strong>Application Attributes&lt;/strong> section under the &lt;strong>Config&lt;/strong> menu. An application that was already created and configured in Spinnaker displays the message, “This application has not been configured.” While the information is missing, there is no functional impact.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="google-app-engine-account-authentication">Google App Engine account authentication&lt;/h3>
&lt;p>Spinnaker 1.28 introduced a new API to allow adding accounts to Spinnaker. This change required all existing providers to register themselves with the credentials repo system. Several cloud providers were missed as part of the migration, including Google and AppEngine providers. It’s possible other non-supported providers may also be broken. The result of this is that users cannot see any Google or App Engine accounts listed in the UI, and non-admin users get an Access Denied error when trying to run pipelines as no permissions are granted. Admins can still deploy to these accounts since they bypass any permissions restrictions.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.28.X or later: Replace the Clouddriver image in 2.28 with the Armory Clouddriver 2.27 image&lt;/p>
&lt;p>1.28.X or later: Replace the Clouddriver image in 1.28 with the OSS Clouddriver 1.27 image&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;h3 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h3>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Terraform 0.12 Now Supported&lt;/strong> - Restored support for Terraform 0.12 in version 2.28.1.&lt;/li>
&lt;li>&lt;strong>Update for Kubernetes v2 provider accounts that use the aws-iam-authenticator&lt;/strong> - Fixed failures for the Kubernetes V2 provider accounts that still use client.authentication.k8s.io/v1alpha1. This bug was introduced in 2.28.0.&lt;/li>
&lt;li>&lt;strong>Dinghy Vault Passwords&lt;/strong> - Fixed an issue where Dinghy fails to start when Vault password contain an exclamation point.&lt;/li>
&lt;li>&lt;strong>Revision History Display&lt;/strong> - Addressed an issue where the revision history was not showing the timestamp of the revision.&lt;/li>
&lt;li>&lt;strong>Automated Triggers Permissions&lt;/strong> - Fixed an issue where permissions defined under &amp;ldquo;Automated Triggers&amp;rdquo; become empty after a triggered pipeline update.&lt;/li>
&lt;/ul>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.28.1-changelog/">Spinnaker v1.28.1&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 9216f0fae587d3af14ed41fb9f21e9195b30c269
version: 2.28.1
deck:
commit: bd4fb67ec81c5e201b31b4e3e7829dff93476580
version: 2.28.1
dinghy:
commit: fc867f05b41e5e2756c42990b576341973e96276
version: 2.28.1
echo:
commit: 010bdc55d57c1000ef93f826204e6ccf54f6f6e7
version: 2.28.1
fiat:
commit: fce52482097b606389328d25d220be5eaaddab21
version: 2.28.1
front50:
commit: 1e5d3a5dfce38d26f809dee107d8145c00caa27e
version: 2.28.1
gate:
commit: 2b2b668ac5d4cbf126190baf450116de6aa0aa4a
version: 2.28.1
igor:
commit: e7e01c998423941507a7322e6891ea6e95a16792
version: 2.28.1
kayenta:
commit: 6004bfd90ad2e4fa9b02dddc26253210b8aa3a3c
version: 2.28.1
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 583b59cfcea93cce9b221509d0d4ec03a9487939
version: 2.28.1
rosco:
commit: 88567fc0c710c63b2093fc95e674052314978250
version: 2.28.1
terraformer:
commit: bb576e57561db2d957c25e00992e24f53a223bd5
version: 2.28.1
timestamp: "2022-11-10 18:20:57"
version: 2.28.1
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-fiat---22802281">Armory Fiat - 2.28.0&amp;hellip;2.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to fiat:2022.08.03.03.06.22.release-1.28.x (#385)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---22802281">Armory Front50 - 2.28.0&amp;hellip;2.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to front50:2022.08.02.17.26.34.release-1.28.x (#439)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.08.17.00.43.53.release-1.28.x (#446)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.08.19.03.09.32.release-1.28.x (#449)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.09.12.22.11.46.release-1.28.x (#453)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22802281">Armory Gate - 2.28.0&amp;hellip;2.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to gate:2022.08.03.03.06.50.release-1.28.x (#466)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.08.19.03.10.44.release-1.28.x (#472)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---22802281">Armory Igor - 2.28.0&amp;hellip;2.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to igor:2022.08.03.03.06.44.release-1.28.x (#355)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.08.19.03.10.49.release-1.28.x (#363)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.10.19.18.22.51.release-1.28.x (#372)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.10.19.19.58.28.release-1.28.x (#373)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.11.02.03.23.29.release-1.28.x (#375)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---22802281">Armory Kayenta - 2.28.0&amp;hellip;2.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to kayenta:2022.08.03.03.06.40.release-1.28.x (#352)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.08.19.04.13.29.release-1.28.x (#358)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---22802281">Armory Orca - 2.28.0&amp;hellip;2.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2022.08.03.03.09.59.release-1.28.x (#506)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.08.19.03.19.08.release-1.28.x (#514)&lt;/li>
&lt;li>Revert &amp;ldquo;feat(iam): aws mysql jdbc (#449) (#464)&amp;rdquo; (#516)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.10.19.20.11.38.release-1.28.x (#531)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.10.19.20.47.46.release-1.28.x (#532)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.11.02.03.24.15.release-1.28.x (#535)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.11.08.07.29.46.release-1.28.x (#536)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.11.08.17.42.51.release-1.28.x (#539)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22802281">Armory Rosco - 2.28.0&amp;hellip;2.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to rosco:2022.08.03.03.02.12.release-1.28.x (#440)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.08.23.02.26.09.release-1.28.x (#446)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.08.23.15.48.11.release-1.28.x (#447)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.10.19.18.21.29.release-1.28.x (#452)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---22802281">Terraformer™ - 2.28.0&amp;hellip;2.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(tf_versions): Adding TF versions 1.1.x 1.2.x and missing patch versions (backport #472) (#473)&lt;/li>
&lt;li>fix(versions): Rollback removal of .12 versions from 2.28 release (#476)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---22802281">Armory Deck - 2.28.0&amp;hellip;2.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2022.0.0-20221006145341.release-1.28.x (#1259)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20221021162854.release-1.28.x (#1262)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20221108072118.release-1.28.x (#1269)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20221108195439.release-1.28.x (#1271)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---22802281">Armory Clouddriver - 2.28.0&amp;hellip;2.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(aws-iam): Updating aws-iam-authenticator to 0.5.9 due to CVE-2022-2385 (backport #692) (#696)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.03.03.18.32.release-1.28.x (#701)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.19.03.29.51.release-1.28.x (#709)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.09.27.19.40.20.release-1.28.x (#723)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.10.19.18.30.22.release-1.28.x (#728)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.10.19.20.15.01.release-1.28.x (#729)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.01.18.09.15.release-1.28.x (#733)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.11.02.20.03.48.release-1.28.x (#738)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---22802281">Dinghy™ - 2.28.0&amp;hellip;2.28.1&lt;/h4>
&lt;h4 id="armory-echo---22802281">Armory Echo - 2.28.0&amp;hellip;2.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to echo:2022.08.03.03.06.27.release-1.28.x (#481)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.08.19.03.10.53.release-1.28.x (#488)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.10.19.18.23.43.release-1.28.x (#496)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.10.19.19.59.13.release-1.28.x (#497)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-fiat---1281">Spinnaker Fiat - 1.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#967) (#969)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-front50---1281">Spinnaker Front50 - 1.28.1&lt;/h4>
&lt;ul>
&lt;li>fix: Revision history is not showing the timestamp of the revision (backport #1142) (#1147)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (backport #1151) (#1153)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1155)&lt;/li>
&lt;li>fix(updateTs): missing updateTs field in the get pipeline history&amp;rsquo;s response. (backport #1159) (#1162)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-gate---1281">Spinnaker Gate - 1.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#1564) (#1566)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1570)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-igor---1281">Spinnaker Igor - 1.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#1030) (#1032)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1037)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1047)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1048)&lt;/li>
&lt;li>feat(jenkins): Stop Jenkins job when job name has slashes in the job name (backport #1038) (#1052)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1281">Spinnaker Kayenta - 1.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#900) (#902)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#905)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-orca---1281">Spinnaker Orca - 1.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#4284) (#4286)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4293)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4315)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#4314)&lt;/li>
&lt;li>feat(igor): Stop Jenkins job when job name has slashes in the job name (backport #4294) (#4321)&lt;/li>
&lt;li>fix(stageExecution): In evaluable variable stage restart scenario variables are not cleaned properly (#16) (backport #4307) (#4326)&lt;/li>
&lt;li>fix(stage): Resource requests on custom stage | Error: got &amp;ldquo;map&amp;rdquo;, expected &amp;ldquo;string…&amp;rdquo; (backport #4295) (#4328)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1281">Spinnaker Rosco - 1.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(dockerfile): upgrade to latest alpine image (backport #894) (#896)&lt;/li>
&lt;li>fix(install): Fixed bugs in postInstall script that causes installation to fail on Ubuntu 20.04 and 22.04 LTS (#899) (#901)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#873) (#902)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#908)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-deck---1281">Spinnaker Deck - 1.28.1&lt;/h4>
&lt;ul>
&lt;li>fix(core): Do not set static document base URL (#9890) (#9891)&lt;/li>
&lt;li>fix(search): Error thrown when search version 2 is enabled (#9888) (#9889)&lt;/li>
&lt;li>fix(links): update link to spinnaker release changelog (#9897) (#9899)&lt;/li>
&lt;li>perf(pipelinegraph): Improve the performance of the pipeline graph rendering (backport #9871) (#9906)&lt;/li>
&lt;li>Fix(core/pipelines): Fix syntax error on ui-select causing stage configuration to not load (backport #9886) (#9908)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-clouddriver---1281">Spinnaker Clouddriver - 1.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#5758) (#5760)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5771)&lt;/li>
&lt;li>fix(core): Remove payload data from logs (#5784) (#5789)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5801)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5802)&lt;/li>
&lt;li>chore(configserver): use version 0.14.2 of com.github.wnameless.json:json-flattener (#5804) (#5805)&lt;/li>
&lt;li>fix(appengine): Fixes app engine credentials repo (#5807) (#5808)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1281">Spinnaker Echo - 1.28.1&lt;/h4>
&lt;ul>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#1193) (#1195)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1199)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#1211)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#1212)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.27.4 Armory Continuous Deployment Release (Spinnaker™ v1.27.1)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-4/</link><pubDate>Fri, 02 Sep 2022 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-4/</guid><description>
&lt;h2 id="20220902-release-notes">2022/09/02 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-halyard-or-operator-version">Required Halyard or Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.27.4, use one of the following tools:&lt;/p>
&lt;ul>
&lt;li>Armory Operator 1.6.0 or later&lt;/li>
&lt;/ul>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;p>&lt;h4 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h4>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;h4 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h4>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="echo">Echo&lt;/h3>
&lt;ul>
&lt;li>Fixed an issue to address the fact that Manual Slack notifications were not working.&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.27.1-changelog/">Spinnaker v1.27.1&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: a6a2b412958bd3d5555dc74190df86ab2c4fb5a5
version: 2.27.4
deck:
commit: 1b08ce5370fd95b9c4647734c36df71d729a386a
version: 2.27.4
dinghy:
commit: ee2e7f8b9778741dae1a5571cb47ac6c76c51d81
version: 2.27.4
echo:
commit: 749433b28e8c8724b00c7f853736296c06b7eaa9
version: 2.27.4
fiat:
commit: 9d615d351b220ea846e3c31890ecea7757fe40f4
version: 2.27.4
front50:
commit: a05405308878a6278522793b0d55f0f8a06cb6a5
version: 2.27.4
gate:
commit: 0aa1dac24a046fa8ff37b7cdd6edb704a16b215c
version: 2.27.4
igor:
commit: cb18ff7fe94fca85ab546b4304cb9fa9ce380b69
version: 2.27.4
kayenta:
commit: 08b8f4656b4f6285ae5b0a5577ab10f6c50ba8ec
version: 2.27.4
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: fc9593f3c4da98fa8c7f6753598a75f4ea19a49c
version: 2.27.4
rosco:
commit: eec2780305426ba8c38bcf599176a00b138b96cf
version: 2.27.4
terraformer:
commit: 53c9f50a991a3f102e14a103340c3eea5c9ef982
version: 2.27.4
timestamp: "2022-08-31 20:17:03"
version: 2.27.4
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-front50---22732274">Armory Front50 - 2.27.3&amp;hellip;2.27.4&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.10.3 (#361)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.03.21.23.23.18.release-1.27.x (#383)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.6 (#382)&lt;/li>
&lt;li>chore(action): auto approve astrolabe pr (#370) (#388)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.04.01.23.12.01.release-1.27.x (#395)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.04.01.23.40.50.release-1.27.x (#396)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.04.02.22.05.00.release-1.27.x (#397)&lt;/li>
&lt;li>feat(iam): use aws-mysql-jdbc (#392)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.04.26.16.43.34.release-1.27.x (#412)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.04.26.21.25.40.release-1.27.x (#413)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.04.27.05.02.01.release-1.27.x (#416)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.04.27.05.12.28.release-1.27.x (#417)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (backport #434) (#435)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.08.02.17.26.31.release-1.27.x (#438)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.7 (#440)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.08.17.00.43.57.release-1.27.x (#447)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---22732274">Terraformer™ - 2.27.3&amp;hellip;2.27.4&lt;/h4>
&lt;h4 id="armory-clouddriver---22732274">Armory Clouddriver - 2.27.3&amp;hellip;2.27.4&lt;/h4>
&lt;ul>
&lt;li>chore(action): auto approve prs with extensionDependencyUpdate label (#558) (#566)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.4 (#570)&lt;/li>
&lt;li>fix(idmsv2): Bump aws-iam-authenticator (backport #563) (#575)&lt;/li>
&lt;li>fix(aws-iam-authenticator): Rollback authenticator (#578)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.5 (#583)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.6 (#585)&lt;/li>
&lt;li>feat(iam): use aws-mysql-jdbc (#586)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.03.21.18.41.11.release-1.27.x (#587)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.03.21.23.37.45.release-1.27.x (#589)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.01.23.17.01.release-1.27.x (#595)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.01.23.52.01.release-1.27.x (#596)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.02.21.55.39.release-1.27.x (#597)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.02.22.21.08.release-1.27.x (#598)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.12.02.55.01.release-1.27.x (#607)&lt;/li>
&lt;li>chore(kubectl): Updating kubectl version to 1.20.6 (backport #608) (#610)&lt;/li>
&lt;li>fix(jvm): Update base image to 3.14 (#615)&lt;/li>
&lt;li>fix(aws-iam-authenticator): Fixes to use a version that figures out API contract (#619)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.26.15.11.43.release-1.27.x (#626)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.26.21.09.12.release-1.27.x (#628)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.27.03.49.36.release-1.27.x (#632)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.04.27.05.17.29.release-1.27.x (#635)&lt;/li>
&lt;li>chore(gradle): removing spinnaker gradle fix version (backport #647) (#659)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.05.17.15.06.27.release-1.27.x (#650)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.07.07.18.30.50.release-1.27.x (#686)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#689) (#690)&lt;/li>
&lt;li>chore(aws-iam): Updating aws-iam-authenticator to 0.5.9 due to CVE-2022-2385 (backport #692) (#695)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.03.03.18.27.release-1.27.x (#700)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.7 (#704)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.08.17.22.35.25.release-1.27.x (#708)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---22732274">Armory Echo - 2.27.3&amp;hellip;2.27.4&lt;/h4>
&lt;ul>
&lt;li>chore(action): auto approve prs from astrolabe (#423) (#426)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.4 (#431)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.5 (#436)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.6 (#438)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.03.21.15.46.42.release-1.27.x (#439)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.03.21.23.22.58.release-1.27.x (#440)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.01.23.11.12.release-1.27.x (#444)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.01.23.39.52.release-1.27.x (#445)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.26.16.16.02.release-1.27.x (#454)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.04.27.04.40.11.release-1.27.x (#461)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.08.03.03.06.31.release-1.27.x (#479)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.7 (#483)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.08.17.22.13.30.release-1.27.x (#487)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---22732274">Dinghy™ - 2.27.3&amp;hellip;2.27.4&lt;/h4>
&lt;h4 id="armory-gate---22732274">Armory Gate - 2.27.3&amp;hellip;2.27.4&lt;/h4>
&lt;ul>
&lt;li>chore(action): auto approve astrolabe pr (#398) (#400)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.4 (#405)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.5 (#410)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.6 (#412)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.03.21.23.23.37.release-1.27.x (#413)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.01.23.16.01.release-1.27.x (#418)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.01.23.57.37.release-1.27.x (#419)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.26.16.46.41.release-1.27.x (#430)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.26.21.21.22.release-1.27.x (#431)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.27.05.09.59.release-1.27.x (#434)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.04.27.05.20.10.release-1.27.x (#437)&lt;/li>
&lt;li>chore(release): Backport header fix to 2.27.x release (backport #454) (#455)&lt;/li>
&lt;li>fix(perf): upgrade alpine version to resolve perf in GCP (backport #457) (#458)&lt;/li>
&lt;li>fix(header): set header version for this release (#460)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.08.03.03.06.55.release-1.27.x (#465)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.7 (#467)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.08.17.22.14.22.release-1.27.x (#471)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---22732274">Armory Igor - 2.27.3&amp;hellip;2.27.4&lt;/h4>
&lt;ul>
&lt;li>chore(action): auto approve astrolabe pr (#299) (#302)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.4 (#307)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.5 (#312)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.6 (#314)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.03.21.18.42.32.release-1.27.x (#315)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.03.21.23.23.58.release-1.27.x (#316)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.04.01.23.35.50.release-1.27.x (#320)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.04.02.02.50.48.release-1.27.x (#321)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.04.26.16.43.20.release-1.27.x (#331)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.04.26.21.21.16.release-1.27.x (#332)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.04.27.05.23.46.release-1.27.x (#333)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.04.27.05.30.34.release-1.27.x (#335)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#348) (#349)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.08.03.03.04.08.release-1.27.x (#356)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.7 (#359)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.08.17.22.13.26.release-1.27.x (#361)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---22732274">Armory Deck - 2.27.3&amp;hellip;2.27.4&lt;/h4>
&lt;h4 id="armory-fiat---22732274">Armory Fiat - 2.27.3&amp;hellip;2.27.4&lt;/h4>
&lt;ul>
&lt;li>chore(action): auto approve astrolabe prs (#318) (#321)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.4 (#327)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.5 (#331)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.6 (#332)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.03.21.18.41.53.release-1.27.x (#333)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.03.21.23.23.09.release-1.27.x (#334)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.04.01.22.16.31.release-1.27.x (#342)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.04.01.22.43.59.release-1.27.x (#343)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.04.26.16.43.25.release-1.27.x (#353)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.04.27.04.03.44.release-1.27.x (#357)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.05.19.23.32.15.release-1.27.x (#367)&lt;/li>
&lt;li>fix(build): pass version to nebula and remove devSnapshot publishing (backport #355) (#372)&lt;/li>
&lt;li>chore(build): upgrade armory settings (backport #360) (#369)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#378) (#379)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.08.03.03.06.59.release-1.27.x (#386)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.7 (#387)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---22732274">Armory Kayenta - 2.27.3&amp;hellip;2.27.4&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to kayenta:2022.04.27.05.41.49.release-1.27.x (#337)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.6 (#321)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#345) (#346)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.08.03.03.06.36.release-1.27.x (#351)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.7 (#355)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.08.18.00.00.27.release-1.27.x (#357)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22732274">Armory Rosco - 2.27.3&amp;hellip;2.27.4&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update armory-commons version to 3.10.3 (#359)&lt;/li>
&lt;li>chore(action): auto approve extensionDependency pr (#369) (#377)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.4 (#381)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.5 (#385)&lt;/li>
&lt;li>chore(build): update mergify config (#343) (#388)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.6 (#390)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.03.21.18.43.05.release-1.27.x (#391)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.03.21.23.22.48.release-1.27.x (#392)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.01.23.28.07.release-1.27.x (#396)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.26.18.16.54.release-1.27.x (#404)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.26.21.08.03.release-1.27.x (#406)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.04.27.03.19.40.release-1.27.x (#411)&lt;/li>
&lt;li>chore(build): remove platform build (#305)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#428) (#430)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.7 (#439)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.08.03.03.02.10.release-1.27.x (#441)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.08.23.02.25.55.release-1.27.x (#445)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---22732274">Armory Orca - 2.27.3&amp;hellip;2.27.4&lt;/h4>
&lt;ul>
&lt;li>chore(action): auto approve astrolabe pr (#431) (#435)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.4 (#440)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.5 (#446)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.6 (#448)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.03.21.15.48.11.release-1.27.x (#450)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.03.21.18.42.54.release-1.27.x (#451)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.01.23.40.45.release-1.27.x (#456)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.01.23.57.41.release-1.27.x (#457)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.02.02.36.54.release-1.27.x (#458)&lt;/li>
&lt;li>feat(iam): aws mysql jdbc (#449)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.26.17.16.24.release-1.27.x (#473)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.26.21.22.29.release-1.27.x (#474)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.27.05.38.47.release-1.27.x (#477)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.04.27.05.53.30.release-1.27.x (#480)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#495) (#496)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.08.03.03.10.04.release-1.27.x (#505)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.7 (#508)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.08.17.22.25.10.release-1.27.x (#513)&lt;/li>
&lt;li>Revert(deps): &amp;ldquo;feat(iam): aws mysql jdbc&amp;rdquo; (#515)&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker">Spinnaker&lt;/h3>
&lt;h4 id="spinnaker-front50---1271">Spinnaker Front50 - 1.27.1&lt;/h4>
&lt;h4 id="spinnaker-clouddriver---1271">Spinnaker Clouddriver - 1.27.1&lt;/h4>
&lt;ul>
&lt;li>chore(ci): GHA - container image and apt package build &amp;amp; push (#5667)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#5630)&lt;/li>
&lt;li>chore(dependencies): bump spinnakerGradleVersion (#936) (#5674)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5675)&lt;/li>
&lt;li>fix(build): don&amp;rsquo;t bump the version of clouddriver in front50 (#5477) (#5676)&lt;/li>
&lt;li>chore(dependencies): don&amp;rsquo;t create an autobump PR for halyard on a clouddriver release branch (#5677)&lt;/li>
&lt;li>fix(kubernetes): Pin Debian Package version of kubectl as well (#5685) (#5686)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#5689) (#5693)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5695)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#5696) (#5698)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#5697) (#5700)&lt;/li>
&lt;li>chore(titus): limit protobuf to 3.17.3 (#5706) (#5712)&lt;/li>
&lt;li>fix(caching): K8s cache affected when not enough permissions in service account (backport #5742) (#5745)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#5758) (#5759)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#5768)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-echo---1271">Spinnaker Echo - 1.27.1&lt;/h4>
&lt;h4 id="spinnaker-gate---1271">Spinnaker Gate - 1.27.1&lt;/h4>
&lt;h4 id="spinnaker-igor---1271">Spinnaker Igor - 1.27.1&lt;/h4>
&lt;h4 id="spinnaker-deck---1271">Spinnaker Deck - 1.27.1&lt;/h4>
&lt;h4 id="spinnaker-fiat---1271">Spinnaker Fiat - 1.27.1&lt;/h4>
&lt;ul>
&lt;li>chore(ci): GHA - container image and apt package build &amp;amp; push (#930)&lt;/li>
&lt;li>chore(dependencies): Autobump korkVersion (#904)&lt;/li>
&lt;li>feat(build): bump dependencies for the given branch (#934) (#935)&lt;/li>
&lt;li>chore(dependencies): bump spinnakerGradleVersion (#936)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#940) (#943)&lt;/li>
&lt;li>chore(dependencies): don&amp;rsquo;t create an autobump PR for halyard on a fiat release branch (#946)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#948) (#950)&lt;/li>
&lt;li>chore(build): specify an artifact for bumpdeps to look for (backport #916) (#956)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#967) (#968)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-kayenta---1271">Spinnaker Kayenta - 1.27.1&lt;/h4>
&lt;ul>
&lt;li>chore(ci): GHA - container image and apt package build &amp;amp; push (#879)&lt;/li>
&lt;li>chore(dependencies): bump spinnakerGradleVersion (#881)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#882)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#884) (#885)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#887)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#888) (#890)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#889) (#892)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#900) (#901)&lt;/li>
&lt;li>chore(dependencies): Autobump orcaVersion (#904)&lt;/li>
&lt;/ul>
&lt;h4 id="spinnaker-rosco---1271">Spinnaker Rosco - 1.27.1&lt;/h4>
&lt;h4 id="spinnaker-orca---1271">Spinnaker Orca - 1.27.1&lt;/h4>
&lt;ul>
&lt;li>fix(plugins-test): try harder for the version of versionNotSupportedPlugin to actually not be supported (#4236) (#4241)&lt;/li>
&lt;li>chore(ci): GHA - container image and apt package build &amp;amp; push (#4240)&lt;/li>
&lt;li>fix(discovery test): fixes admin controller test intermittent failures (#4202) (#4249)&lt;/li>
&lt;li>feat(build): bump dependencies for the given branch (#4247) (#4248)&lt;/li>
&lt;li>chore(dependencies): bump spinnakerGradleVersion (#4251)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4250)&lt;/li>
&lt;li>chore(ci): Upload halconfigs to GCS on Tag push (#4256) (#4260)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4262)&lt;/li>
&lt;li>fix(ci): fetch previous tag from git instead of API (#4263) (#4265)&lt;/li>
&lt;li>chore(ci): Mergify - merge Autobumps on release-* (#4264) (#4267)&lt;/li>
&lt;li>chore(dockerfile): upgrade to latest alpine image (#4284) (#4285)&lt;/li>
&lt;li>chore(dependencies): Autobump fiatVersion (#4292)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.28.0 Armory Continuous Deployment Release (Spinnaker™ v1.28.0)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-0/</link><pubDate>Wed, 20 Jul 2022 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-0/</guid><description>
&lt;h2 id="20220720-release-notes">2022/07/20 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a &lt;a href="/continuous-deployment/installation/armory-operator/op-manage-spinnaker/#rollback-armory-enterprise">previous working version&lt;/a> and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-operator-version">Required Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.28.0, use one of the following tools:&lt;/p>
&lt;ul>
&lt;li>Armory Operator 1.6.0 or later&lt;/li>
&lt;/ul>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="orca-requires-rdbms-configured-with-utf-8-encoding">Orca requires RDBMS configured with UTF-8 encoding&lt;/h3>
&lt;p>This release includes a change from MySQL JDBC drivers to AWS drivers. We have seen this cause issues when the database is NOT in a utf8mb4 format.&lt;/p>
&lt;h3 id="update-kubernetes-v2-provider-accounts-that-use-the-aws-iam-authenticator">Update Kubernetes v2 provider accounts that use the &lt;code>aws-iam-authenticator&lt;/code>&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the aws-iam-authenticator binary to a 0.5.5 release. Due to the fact that the default value of the apiVersion for the aws-iam-authenticator has changed strictly to client.authentication.k8s.io/v1beta1, you may experience failures for the Kubernetes V2 provider accounts that still use client.authentication.k8s.io/v1alpha1. To mitigate the authentication failures, update your relevant kubeconfigs to use client.authentication.k8s.io/v1beta1.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="update-kubectl-to-120">Update kubectl to 1.20&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>With 2.28 of Spinnaker, we’ve updated the kubectl binary to a 1.20 release. You may have potential caching issues as a result due to certain resources in Kubernetes being removed and/or no longer supported. Look for failures in your log files and exclude resources that don’t match your target cluster. For example, adding “PodPreset” to the “omitKinds” on your Kubernetes account configs would cause Spinnaker to skip trying to cache resources that no longer be able to be cached in newer kubernetes releases.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="pipelines-as-code-slack-notifications-stop-working">Pipelines-as-Code Slack notifications stop working&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>After upgrading to 2.27.x, your Pipelines-as-Code Slack notifications may stop working even though they were working previously.&lt;/p>
&lt;p>&lt;strong>Hotfix&lt;/strong>&lt;/p>
&lt;p>See the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010573&amp;amp;sys_kb_id=c0befa03dbd2811079f53ec8f496192a&amp;amp;spa=1">Dinghy Slack Notifications not working&lt;/a> KB article for the Hotfix.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.27.0&lt;/p>
&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;h3 id="supported-terraform-versions">Supported Terraform Versions&lt;/h3>
&lt;p>Armory removed support for older, non-supported versions of Terraform (older than 0.13).&lt;/p>
&lt;h3 id="plugin-compatibility">Plugin Compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory CD 2.28.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/">Scale Agent for Spinnaker and Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.11.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.3.0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;h4 id="when-auth-z-is-enabled-access-denied-on-deployments-using-accounts-that-have-empty-permissions">When Auth Z is enabled, Access Denied on deployments using accounts that have empty permissions&lt;/h4>
&lt;p>Users report that when attempting to use FIAT-defined User Accounts/Service Accounts/Service Principals that have empty permissions or roles, they receive an &lt;code>Exception: Access denied to account ***&lt;/code> message. For example, &lt;code>Exception: Access denied to account aws&lt;/code>. This is contrary to expected behavior in Spinnaker/Armory Continuous Deployment.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Users can add roles to the accounts in FIAT that are affected, even &amp;ldquo;dummy&amp;rdquo; roles.&lt;/p>
&lt;p>See the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010748">How to Audit for Empty Roles in FIAT using Redis/MySQL&lt;/a> KB article for how to locate affected user accounts, service accounts, or service principals.&lt;/p>
&lt;p>Customers can also now &lt;a href="https://docs.armory.io/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-28-4/#fixed-issues">upgrade to Armory CD 2.28.4&lt;/a>, which resolves this known issue&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.0-2.28.3&lt;/p>
&lt;h3 id="application-attributes-section-displays-this-application-has-not-been-configured">&lt;strong>Application Attributes&lt;/strong> section displays &amp;ldquo;This Application has not been configured&amp;rdquo;&lt;/h3>
&lt;p>There is a known issue that relates to the &lt;strong>Application Attributes&lt;/strong> section under the &lt;strong>Config&lt;/strong> menu. An application that was already created and configured in Spinnaker displays the message, “This application has not been configured.” While the information is missing, there is no functional impact.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.28.0&lt;/p>
&lt;h3 id="google-app-engine-account-authentication">Google App Engine account authentication&lt;/h3>
&lt;p>Spinnaker 1.28 introduced a new API to allow adding accounts to Spinnaker. This change required all existing providers to register themselves with the credentials repo system. Several cloud providers were missed as part of the migration, including Google and AppEngine providers. It’s possible other non-supported providers may also be broken. The result of this is that users cannot see any Google or App Engine accounts listed in the UI, and non-admin users get an Access Denied error when trying to run pipelines as no permissions are granted. Admins can still deploy to these accounts since they bypass any permissions restrictions.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.28.X or later: Replace the Clouddriver image in 2.28 with the Armory Clouddriver 2.27 image&lt;/p>
&lt;p>1.28.X or later: Replace the Clouddriver image in 1.28 with the OSS Clouddriver 1.27 image&lt;/p>
&lt;h3 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h3>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;h3 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h3>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: Armory CD 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;h3 id="general-fixes">General Fixes&lt;/h3>
&lt;ul>
&lt;li>Added the ability to limit a specific pipeline from executing more than a certain number of instances in parallel by using a setting similar to the already available limitConcurrent setting.&lt;/li>
&lt;li>Added support for cancelling Google Cloud Build Account.&lt;/li>
&lt;li>To allow better customizations of CloseableHttpClient, adding HttpClientProperties as an additional property in UserConfiguredUrlRestrictions that we can use in HttpClientUtils. This will allow us to enable/disable retry options and configure other HttpClient options. For example, you will now be able to configure httpClientProperties.&lt;/li>
&lt;li>When allowDeleteActive: true, then in the ShrinkCluster stage, disableCluster step is performed before shrinking the cluster.&lt;/li>
&lt;li>The Google Cloud Platform RETRY_ERROR_CODES list is modified to include 429 , 503 error codes.&lt;/li>
&lt;li>Updated account permission check to check for WRITE instead of EXECUTE because account permissions do not currently have
EXECUTE defined as a potential permission type.&lt;/li>
&lt;li>Refactor of launch template roll out config into its own class for reuse and readability.&lt;/li>
&lt;li>Use new Github teams API as old one has been deprecated.&lt;/li>
&lt;li>Prevent oauth2 redirect loops.&lt;/li>
&lt;li>Transition restarted stages to NOT_STARTED so there is visual indication on Deck, and don&amp;rsquo;t allow multiple queuing of the same restarted stage&lt;/li>
&lt;li>Bring back template validation messages in Deck.&lt;/li>
&lt;li>Bump the JVM version used by all appropriate services to ensure all services are using the same JVM version.&lt;/li>
&lt;/ul>
&lt;h3 id="maximum-concurrent-pipeline-executions">Maximum Concurrent Pipeline Executions&lt;/h3>
&lt;p>Added support for max concurrent pipeline executions. If concurrent pipeline execution is enabled, pipelines will queue when the max concurrent pipeline executions is reached. Any queued pipelines will be allowed to run once the number of running pipeline executions drops below the max. If the max is set to 0, then pipelines will not queue.&lt;/p>
&lt;h3 id="show-added-to-terraform-integration-stage">&lt;strong>Show&lt;/strong> Added to Terraform Integration Stage&lt;/h3>
&lt;p>There is a new Terraform action available as part of the Terraform Integration stage. This action is the equivalent of running the Terraform &lt;code>show&lt;/code> command with Terraform. The JSON output from your planfile can be used in subsequent stages.&lt;/p>
&lt;p>To use the stage, select &lt;strong>Terraform&lt;/strong> for the stage type and &lt;strong>Show&lt;/strong> as the action in the Stage Configuration UI. Note that the &lt;strong>Show&lt;/strong> stage depends on your &lt;strong>Plan&lt;/strong> stage. For more information, see &lt;a href="/plugins/terraform/use/#example-terraform-integration-stage">Show Stage section in the Terraform Integration docs&lt;/a>.&lt;/p>
&lt;h3 id="terraform-remote-backends-provided-by-terraform-cloud-and-terraform-enterprise">Terraform remote backends provided by Terraform Cloud and Terraform Enterprise&lt;/h3>
&lt;p>Terraform now supports remote backends provided by Terraform Cloud and Terraform Enterprise - see &lt;a href="/plugins/terraform/install/configure/">Remote Backends section in the Terraform Integration docs&lt;/a>.&lt;/p>
&lt;h3 id="clouddriver">Clouddriver&lt;/h3>
&lt;ul>
&lt;li>Improvements to Docker Registry Account Management, including integration of Docker Registry Clouddriver accounts to take advantage of the new self-service on-boarding account management API.&lt;/li>
&lt;li>Updated account management API to refactor some things in preparation for user secrets support along. Updated the type discriminator handling for account definitions.&lt;/li>
&lt;li>Access to Bitbucket through token files without having to restart Clouddriver.&lt;/li>
&lt;li>Added an experimental API for storing and loading account credentials definitions from an external durable store such as a SQL database. Secrets can be referenced through the existing Kork SecretEngine API which will be fetched on demand. Initial support is for Kubernetes accounts given the lack of existing Kubernetes cluster federation standards compared to other cloud providers, though this API is made generic to allow for other cloud provider APIs to participate in this system.&lt;/li>
&lt;li>To extend the memory feature, a boolean flag is introduced in the validateInstanceType.&lt;/li>
&lt;li>Added a Fiat configuration option for the Account Management API in Clouddriver for listing which roles are allowed to manage accounts in the API.&lt;/li>
&lt;/ul>
&lt;h3 id="performance">Performance&lt;/h3>
&lt;ul>
&lt;li>Fix in Lambda to remove parallel streams to improve performance.&lt;/li>
&lt;li>Refactor(artifacts/s3) - share the AmazonS3 client in S3ArtifactCredentials across downloads instead of constructing a new one for each download. There is likely a performance win from this, but the primary motivation was to make it easier to test.&lt;/li>
&lt;/ul>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: adbe01b56d31389c9cad1274b894c740835c3834
version: 2.28.0
deck:
commit: 108847b83576abf24d437a0c89015a65f337ec54
version: 2.28.0
dinghy:
commit: 403640bc88ad42cc55105bff773408d5f845e49c
version: 2.28.0
echo:
commit: 488477dd85edfc6206337bb31f76892e641d1803
version: 2.28.0
fiat:
commit: 5728f3484b01459e9b246117cdfbb54f9d00768c
version: 2.28.0
front50:
commit: 1bc61a77916acf5bf7b13041005e730bdac8cd8e
version: 2.28.0
gate:
commit: 938dccc232f849bae4446376579a39755267904b
version: 2.28.0
igor:
commit: c10937f0110f81bd2f17dfea79bfbf01f53598a5
version: 2.28.0
kayenta:
commit: 7bfe2c300432c865f10f07985d81decb58b1ee48
version: 2.28.0
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 30ca83945081107105b9186461730988fabd11d5
version: 2.28.0
rosco:
commit: 36a55d07da5f25fc385e67922e35f387f13a6fb1
version: 2.28.0
terraformer:
commit: c3c07a7c4f09752409183f906fb9fa5458e7d602
version: 2.28.0
timestamp: "2022-07-19 18:54:16"
version: 2.28.0
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="terraformer---22732280">Terraformer™ - 2.27.3&amp;hellip;2.28.0&lt;/h4>
&lt;h4 id="armory-clouddriver---22732280">Armory Clouddriver - 2.27.3&amp;hellip;2.28.0&lt;/h4>
&lt;h4 id="armory-rosco---22732280">Armory Rosco - 2.27.3&amp;hellip;2.28.0&lt;/h4>
&lt;h4 id="armory-deck---22732280">Armory Deck - 2.27.3&amp;hellip;2.28.0&lt;/h4>
&lt;h4 id="armory-front50---22732280">Armory Front50 - 2.27.3&amp;hellip;2.28.0&lt;/h4>
&lt;h4 id="dinghy---22732280">Dinghy™ - 2.27.3&amp;hellip;2.28.0&lt;/h4>
&lt;h4 id="armory-kayenta---22732280">Armory Kayenta - 2.27.3&amp;hellip;2.28.0&lt;/h4>
&lt;h4 id="armory-echo---22732280">Armory Echo - 2.27.3&amp;hellip;2.28.0&lt;/h4>
&lt;h4 id="armory-orca---22732280">Armory Orca - 2.27.3&amp;hellip;2.28.0&lt;/h4>
&lt;h4 id="armory-gate---22732280">Armory Gate - 2.27.3&amp;hellip;2.28.0&lt;/h4>
&lt;h4 id="armory-igor---22732280">Armory Igor - 2.27.3&amp;hellip;2.28.0&lt;/h4>
&lt;h4 id="armory-fiat---22732280">Armory Fiat - 2.27.3&amp;hellip;2.28.0&lt;/h4></description></item><item><title>Continuous-Deployment: v2.27.3 Armory Continuous Deployment Release (Spinnaker™ v1.27.0)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-3/</link><pubDate>Fri, 11 Mar 2022 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-3/</guid><description>
&lt;h2 id="20220311-release-notes">2022/03/11 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-operator-version">Required Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.27.3, use one of the following tools:&lt;/p>
&lt;ul>
&lt;li>Armory Operator 1.6.0 or later&lt;/li>
&lt;/ul>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="pipelines-as-code-slack-notifications-stop-working">Pipelines-as-Code Slack notifications stop working&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>After upgrading to 2.27.x, your Pipelines-as-Code Slack notifications may stop working even though they were working previously.&lt;/p>
&lt;p>&lt;strong>Hotfix&lt;/strong>&lt;/p>
&lt;p>See the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010573&amp;amp;sys_kb_id=c0befa03dbd2811079f53ec8f496192a&amp;amp;spa=1">Dinghy Slack Notifications not working&lt;/a> KB article for the Hotfix.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.27.0&lt;/p>
&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;h4 id="plugin-compatibility">Plugin compatibility&lt;/h4>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory Continuous Deployment 2.27.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/release-notes/agent-plugin/">Armory Agent for Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.10.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.9&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.2.1-rc&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>&lt;h4 id="deck-minimize-navbar-button">Deck minimize navbar button&lt;/h4>
&lt;p>The Deck minimize navbar button doesn&amp;rsquo;t work without refreshing the screen.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.27.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Manually refresh your browser window.&lt;/p>
&lt;h4 id="bake-failures">Bake failures&lt;/h4>
&lt;p>The Packer version included with Rosco disregards package overrides that use the &lt;code>-var-file=&lt;/code> option. This may cause bakes to fail.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.22.2 and later&lt;/p>
&lt;h4 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h4>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;h4 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h4>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;h3 id="cloud-foundry">Cloud Foundry&lt;/h3>
&lt;ul>
&lt;li>Fixed an issue where Fiat crashed due to invalid Cloud Foundry accounts.&lt;/li>
&lt;li>Performance optimization to reduce unnecessary api calls to Cloud Foundry during caching cycles.&lt;/li>
&lt;/ul>
&lt;h3 id="show-added-to-terraform-integration-stage">&lt;strong>Show&lt;/strong> Added to Terraform Integration Stage&lt;/h3>
&lt;p>There is a new Terraform action available as part of the Terraform Integration stage. This action is the equivalent of running the Terraform &lt;code>show&lt;/code> command with Terraform. The JSON output from your planfile can be used in subsequent stages.&lt;/p>
&lt;p>To use the stage, select &lt;strong>Terraform&lt;/strong> for the stage type and &lt;strong>Show&lt;/strong> as the action in the Stage Configuration UI. Note that the &lt;strong>Show&lt;/strong> stage depends on your &lt;strong>Plan&lt;/strong> stage. For more information, see &lt;a href="/plugins/terraform/use/#example-terraform-integration-stage">Show Stage section in the Terraform Integration docs&lt;/a>.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>artifactSources:
dockerRegistry: docker.io/armory
dependencies:
redis:
commit: null
version: 2:2.8.4-2
services:
clouddriver:
commit: 5eb6c8598e22a90ca6eb8c5d7dcb5daddeade04f
version: 2.27.3
deck:
commit: ea911f8927180bb5223f3c6149005568111ad294
version: 2.27.3
dinghy:
commit: ee2e7f8b9778741dae1a5571cb47ac6c76c51d81
version: 2.27.3
echo:
commit: aa794fa58437bbaae6b3f7c32f4844e5da937c92
version: 2.27.3
fiat:
commit: e285a77d97d73304e3a1f75fd67c736eac804a37
version: 2.27.3
front50:
commit: e60edec818a2c0633c9e809b1cca66a03e640d9a
version: 2.27.3
gate:
commit: f4f1b1c0511d7d20e948541eceb020112acc9f52
version: 2.27.3
igor:
commit: 97986b3554e3501507989335e73618a832357f71
version: 2.27.3
kayenta:
commit: 800b14c9162cc0f486f4e7f510f87ec8db9b5e98
version: 2.27.3
monitoring-daemon:
commit: null
version: 2.26.0
monitoring-third-party:
commit: null
version: 2.26.0
orca:
commit: 4fe016e9539cfae5cf79b39888227afc11a5741b
version: 2.27.3
rosco:
commit: 44f38498ade0864c5c8373f43560a984c2c91432
version: 2.27.3
terraformer:
commit: 89dd4af83b669d6a12de41611ea0bdf57857dd73
version: 2.27.3
timestamp: "2022-03-02 19:10:56"
version: 2.27.3
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-igor---22722273">Armory Igor - 2.27.2&amp;hellip;2.27.3&lt;/h4>
&lt;ul>
&lt;li>chore(build): Autobump armory-commons: 3.10.0 (#280)&lt;/li>
&lt;li>chore(build): update mergify config (backport #283) (#284)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2022.01.19.07.32.50.release-1.27.x (#282)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.1 (#287)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.2 (#291)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22722273">Armory Gate - 2.27.2&amp;hellip;2.27.3&lt;/h4>
&lt;ul>
&lt;li>chore(build): Autobump armory-commons: 3.10.0 (#363)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.01.19.07.39.09.release-1.27.x (#378)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.01.19.07.39.09.release-1.27.x (#370)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.01.19.07.39.09.release-1.27.x (#366)&lt;/li>
&lt;li>chore(build): update mergify config (backport #373) (#374)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2022.02.03.20.15.21.release-1.27.x (#382)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.1 (#385)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.2 (#389)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---22722273">Armory Orca - 2.27.2&amp;hellip;2.27.3&lt;/h4>
&lt;ul>
&lt;li>[create-pull-request] automated change (#403)&lt;/li>
&lt;li>chore(build): update mergify config (backport #408) (#409)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.01.19.07.10.29.release-1.27.x (#405)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.01.19.07.10.29.release-1.27.x (#407)&lt;/li>
&lt;li>chore(gradle): upgrade gradle wrapper to 7.3.3 (#412)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.1 (#415)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.02.11.18.48.53.release-1.27.x (#417)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.02.14.23.53.57.release-1.27.x (#419)&lt;/li>
&lt;li>chore(cd): update base orca version to 2022.02.15.22.24.23.release-1.27.x (#421)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.2 (#420)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---22722273">Armory Kayenta - 2.27.2&amp;hellip;2.27.3&lt;/h4>
&lt;ul>
&lt;li>chore(build): update mergify config (backport #297) (#298)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.1 (#301)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2022.02.16.00.31.30.release-1.27.x (#302)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.2 (#304)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22722273">Armory Rosco - 2.27.2&amp;hellip;2.27.3&lt;/h4>
&lt;ul>
&lt;li>[create-pull-request] automated change (#338)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.1 (#348)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2022.01.19.07.33.06.release-1.27.x (#346)&lt;/li>
&lt;li>fix(tests): remove tests intended for Spinnaker Cloud (#314) (#351)&lt;/li>
&lt;li>fix(build): remove redhat publishing (#301)&lt;/li>
&lt;li>fix(test): increase timeout for AMI bake int test (#350) (#356)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.2 (#358)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---22722273">Terraformer™ - 2.27.2&amp;hellip;2.27.3&lt;/h4>
&lt;ul>
&lt;li>feat(terraform): Adds show option for terraform stage (#447) (#448)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---22722273">Armory Deck - 2.27.2&amp;hellip;2.27.3&lt;/h4>
&lt;ul>
&lt;li>feat(terraform): Adds show option for terraform stage (backport #1149) (#1150)&lt;/li>
&lt;li>chore(cd): update base deck version to 2021.0.0-20211217214939.release-1.27.x (#1158)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20220119092715.release-1.27.x (#1163)&lt;/li>
&lt;li>chore(cd): update base deck version to 2022.0.0-20220119092715.release-1.27.x (#1166)&lt;/li>
&lt;li>chore(build): update mergify config (#1167)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---22722273">Armory Clouddriver - 2.27.2&amp;hellip;2.27.3&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2021.12.17.10.45.12.release-1.27.x (#513)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.12.22.18.20.08.release-1.27.x (#518)&lt;/li>
&lt;li>chore(build): Autobump armory-commons: 3.10.0 (#517)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.01.19.07.03.15.release-1.27.x (#524)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.01.19.07.33.22.release-1.27.x (#528)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.1 (#537)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.2 (#541)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.02.22.16.52.45.release-1.27.x (#544)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.02.24.19.52.46.release-1.27.x (#549)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---22722273">Armory Echo - 2.27.2&amp;hellip;2.27.3&lt;/h4>
&lt;ul>
&lt;li>chore(build): Autobump armory-commons: 3.10.0 (#400)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.01.19.07.51.20.release-1.27.x (#410)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.01.19.07.51.20.release-1.27.x (#403)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2022.01.19.07.51.20.release-1.27.x (#404)&lt;/li>
&lt;li>chore(build): update mergify config (backport #406) (#407)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.1 (#411)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.2 (#413)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---22722273">Dinghy™ - 2.27.2&amp;hellip;2.27.3&lt;/h4>
&lt;ul>
&lt;li>chore(build): update mergify config (#457) (#458)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---22722273">Armory Front50 - 2.27.2&amp;hellip;2.27.3&lt;/h4>
&lt;ul>
&lt;li>chore(build): Autobump armory-commons: 3.10.0 (#346)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.01.19.08.45.30.release-1.27.x (#355)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2022.01.19.08.45.30.release-1.27.x (#349)&lt;/li>
&lt;li>chore(build): update mergify config (backport #351) (#352)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.1 (#356)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.2 (#359)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---22722273">Armory Fiat - 2.27.2&amp;hellip;2.27.3&lt;/h4>
&lt;ul>
&lt;li>chore(build): Autobump armory-commons: 3.10.0 (#286)&lt;/li>
&lt;li>chore(build): update mergify config (backport #293) (#294)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.01.19.08.14.32.release-1.27.x (#289)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.01.19.08.14.32.release-1.27.x (#292)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.1 (#298)&lt;/li>
&lt;li>chore(cd): update armory-commons version to 3.10.2 (#301)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2022.03.02.18.55.09.release-1.27.x (#308)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.26.5 Armory Continuous Deployment Release (Spinnaker™ v1.26.6)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-26-5/</link><pubDate>Mon, 21 Feb 2022 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-26-5/</guid><description>
&lt;h2 id="20220121-release-notes">2022/01/21 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-halyard-or-operator-version">Required Halyard or Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.26.5, use one of the following tools:
​&lt;/p>
&lt;ul>
&lt;li>Armory-extended Halyard 1.12 or later
&lt;ul>
&lt;li>2.26.x is the last minor release that you can use Halyard to install or manage. Future releases require the Armory Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.
​&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Armory Operator 1.2.6 or later&lt;/li>
&lt;/ul>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
​
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
​
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;p>&lt;h4 id="bake-failures">Bake failures&lt;/h4>
&lt;p>The Packer version included with Rosco disregards package overrides that use the &lt;code>-var-file=&lt;/code> option. This may cause bakes to fail.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.22.2 and later&lt;/p>
&lt;h4 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h4>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;h4 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h4>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;h4 id="secrets-do-not-work-with-spring-cloud-config">Secrets do not work with Spring Cloud Config&lt;/h4>
&lt;p>If you enable &lt;a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config&lt;/a>
all the properties
(e.g. &lt;a href="https://github.com/spinnaker/clouddriver/blob/1d442d40e1a1eac851288fd1d45e7f19177896f9/clouddriver-docker/src/main/java/com/netflix/spinnaker/config/DockerRegistryConfiguration.java#L58">Docker&lt;/a>)
using &lt;a href="/continuous-deployment/armory-admin/secrets/">Secrets&lt;/a>
are not resolved when Spring Cloud tries to refresh.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>2.26.x and later&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Known Affected providers in Clouddriver&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Kubernetes&lt;/li>
&lt;li>Cloudfoundry&lt;/li>
&lt;li>Docker&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>Do not use secrets for properties that are annotated with &lt;code>@RefreshScope&lt;/code>.&lt;/p>
&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="terraform-show-stage">Terraform Show stage&lt;/h3>
&lt;p>There is a new Terraform Show stage available as part of the Terraform Integration. This stage is the equivalent of running the &lt;code>terraform show&lt;/code> command with Terraform. The JSON output from your &lt;code>planfile&lt;/code> can be used in subsequent stages.&lt;/p>
&lt;p>To use the stage, select &lt;strong>Terraform&lt;/strong> for the stage type and &lt;strong>Show&lt;/strong> as the action in the stage configuration UI. Note that the Show stage depends on your Plan stage. For more information, see the &lt;a href="/plugins/terraform/use/#example-terraform-integration-stage">Show Stage section in the Terraform Integration docs&lt;/a>.&lt;/p>
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.26.6-changelog/">Spinnaker v1.26.6&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>version: 2.26.5
timestamp: "2022-01-19 21:15:17"
services:
clouddriver:
commit: 2957f1021447910d60f0f6e9e290988c9b5a11e0
version: 2.26.25
deck:
commit: 0180fcf0a08b0121c5d9af9d3c589487368ad7f4
version: 2.26.12
dinghy:
commit: d1406fad85771d7f44a266d3302d6195c00d7ec2
version: 2.26.13
echo:
commit: ce4f4ed265be8cb746784c6fd4bed7bf5156107e
version: 2.26.13
fiat:
commit: e46182a670fc9bac7c02f809df7ffe65c89ba148
version: 2.26.14
front50:
commit: 7e14c30538a9b97468aba0360408abf4a06bc0dd
version: 2.26.15
gate:
commit: 41c92b2d613e47521c60d2c9036504ff405fbb91
version: 2.26.13
igor:
commit: 889135384533cd723c0a6377a37a7365cf92a8b2
version: 2.26.13
kayenta:
commit: 2403ad86e76898a65939ebdf879bf287fa8b1429
version: 2.26.14
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
orca:
commit: 624af61e6bf75bc92e67a6bef6439f8ae29ec79a
version: 2.26.19
rosco:
commit: cbb42562fad6583e6efcb24a7378cb6fd84668f0
version: 2.26.19
terraformer:
commit: 0cded7056eeecbb85a70a1b94fe1ce83613295bf
version: 2.26.15
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-kayenta---2261322614">Armory Kayenta - 2.26.13&amp;hellip;2.26.14&lt;/h4>
&lt;h4 id="dinghy---2261222613">Dinghy™ - 2.26.12&amp;hellip;2.26.13&lt;/h4>
&lt;h4 id="armory-deck---2261122612">Armory Deck - 2.26.11&amp;hellip;2.26.12&lt;/h4>
&lt;ul>
&lt;li>feat(terraform): Adds show option for terraform stage (backport #1149) (#1151)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---2261422615">Terraformer™ - 2.26.14&amp;hellip;2.26.15&lt;/h4>
&lt;ul>
&lt;li>feat(terraform): Adds show option for terraform stage (#447) (#449)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---2261222613">Armory Igor - 2.26.12&amp;hellip;2.26.13&lt;/h4>
&lt;h4 id="armory-clouddriver---2262422625">Armory Clouddriver - 2.26.24&amp;hellip;2.26.25&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2021.12.30.00.36.21.release-1.26.x (#514)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2022.01.19.07.05.30.release-1.26.x (#525)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---2261822619">Armory Orca - 2.26.18&amp;hellip;2.26.19&lt;/h4>
&lt;h4 id="armory-echo---2261222613">Armory Echo - 2.26.12&amp;hellip;2.26.13&lt;/h4>
&lt;h4 id="armory-gate---2261222613">Armory Gate - 2.26.12&amp;hellip;2.26.13&lt;/h4>
&lt;h4 id="armory-fiat---2261322614">Armory Fiat - 2.26.13&amp;hellip;2.26.14&lt;/h4>
&lt;h4 id="armory-front50---2261422615">Armory Front50 - 2.26.14&amp;hellip;2.26.15&lt;/h4>
&lt;h4 id="armory-rosco---2261822619">Armory Rosco - 2.26.18&amp;hellip;2.26.19&lt;/h4></description></item><item><title>Continuous-Deployment: v2.25.1 Armory Continuous Deployment Release (Spinnaker™ v1.25.3)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-25-1/</link><pubDate>Wed, 15 Dec 2021 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-25-1/</guid><description>
&lt;h2 id="20211215-release-notes">2021/12/15 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Armory Continuous Deployment, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;p>For information about what Armory supports for this version, see the [ &lt;a href="https://v2-25.docs.armory.io/docs/armory-enterprise-matrix/">Armory Continuous Deployment v2.25 compatibility matrix&lt;/a>.&lt;/p>
&lt;h2 id="required-halyard-or-operator-version">Required Halyard or Operator version&lt;/h2>
&lt;p>​
To install, upgrade, or configure Armory 2.25.1, use one of the following tools:&lt;/p>
&lt;ul>
&lt;li>Armory-extended Halyard 1.12 or later&lt;/li>
&lt;li>Armory Operator 1.2.6 or later
​
For information about upgrading, Operator, see &lt;a href="/continuous-deployment/installation/armory-operator/op-manage-operator/#upgrade-the-operator">Upgrade the Operator&lt;/a>.
​&lt;/li>
&lt;/ul>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>​
Armory scans the codebase as we develop and release software. For information about CVE scans for this release, see the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010414">Support Portal&lt;/a>. Note that you must be logged in to the portal to see the information.&lt;/p>
&lt;p>This release includes a security fix. For more information, see the Critical Notification that Armory&amp;rsquo;s Support Team sent out on 14 December 2021, contact your Armory account rep, or see this (login required) Support article: &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520">https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520&lt;/a>.
​&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;h3 id="suffix-no-longer-added-to-jobs-created-by-kubernetes-run-job-stage">Suffix no longer added to jobs created by Kubernetes Run Job stage&lt;/h3>
&lt;p>Spinnaker no longer automatically appends a unique suffix to the name of jobs created by the Kubernetes Run Job stage. Prior to this release, if you specified &lt;code>metadata.name: my-job&lt;/code>, Spinnaker updates the name to &lt;code>my-job-[random-string]&lt;/code> before deploying the job to Kubernetes. As of this release, the job&amp;rsquo;s name will be passed through to Kubernetes exactly as supplied.&lt;/p>
&lt;p>To continue having a random suffix added to the job name, set the &lt;code>metadata.generateName&lt;/code> field instead of &lt;code>metadata.name&lt;/code>, which causes the Kubernetes API to append a random suffix to the name.&lt;/p>
&lt;p>This change is particularly important for users who are using the preconfigured job stage for Kubernetes or are sharing job stages among different pipelines. In these cases, jobs often running concurrently, and it is important that each job have a unique name. In order to retain the previous behavior, manually update your Kubernetes job manifests to use the &lt;code>generateName&lt;/code> field.&lt;/p>
&lt;p>Previously, this behavior was opt-in.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>As of Armory 2.22, this behavior is the default. Users can still opt out of the new behavior by setting &lt;code>kubernetes.jobs.append-suffix: true&lt;/code> in &lt;code>clouddriver-local.yml&lt;/code>. This causes Spinnaker to continue to append a suffix to the name of jobs as in prior releases.&lt;/p>
&lt;p>The ability to opt out of the new behavior will be removed in Armory 2.23 (OSS 1.23). The above setting will have no effect, and Spinnaker will no longer append a suffix to job names. We recommended that 2.22 users note which jobs are using the old behavior and prepare to remove the setting before upgrading to Armory 2.23 in the future.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory 2.22&lt;/p>
​
&lt;h4 id="zombie-executions">Zombie Executions&lt;/h4>
&lt;p>Starting in Spinnaker 2.23.0, ManifestForceCacheRefreshTask was removed, as Kubernetes manifest related stages now do live lookups. While upgrading to Spinnaker 2.23.0 or later, if there is a running pipeline that contains a Kubernetes manifest related stage, it becomes a &lt;a href="https://spinnaker.io/guides/runbooks/orca-zombie-executions/">zombie execution&lt;/a>. This causes Orca, Spinnaker&amp;rsquo;s orchestration service, to fail to complete any Kubernetes manifest related stage in that pipeline.&lt;/p>
&lt;p>&lt;strong>Workarounds&lt;/strong>:&lt;/p>
&lt;p>To resolve the issue, cancel any zombie executions. For information about how to cancel them, see the &lt;a href="https://spinnaker.io/guides/runbooks/orca-zombie-executions/#cancel-the-execution">Orca Zombie Execution runbook&lt;/a>.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.23.0 and later&lt;/p>
​
&lt;h4 id="manifestforcecacherefreshtask-removed-from-orca">ManifestForceCacheRefreshTask removed from Orca&lt;/h4>
&lt;p>When you upgrade to 2.23.0 or later, you might encounter the following error:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>2021-01-29 23:57:19.691 ERROR &lt;span style="color:#bd93f9">1&lt;/span> --- &lt;span style="color:#ff79c6">[&lt;/span> scheduler-2&lt;span style="color:#ff79c6">]&lt;/span> c.netflix.spinnaker.q.redis.RedisQueue : Failed to &lt;span style="color:#8be9fd;font-style:italic">read&lt;/span> message 8f072714f1df6dbf3af93a4f4fe4cae2, requeuing...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.fasterxml.jackson.databind.JsonMappingException: No task found &lt;span style="color:#ff79c6">for&lt;/span> &lt;span style="color:#f1fa8c">&amp;#39;com.netflix.spinnaker.orca.clouddriver.tasks.manifest.ManifestForceCacheRefreshTask&amp;#39;&lt;/span> &lt;span style="color:#ff79c6">(&lt;/span>through reference chain: com.netflix.spinnaker.orca.q.RunTask&lt;span style="color:#ff79c6">[&lt;/span>&lt;span style="color:#f1fa8c">&amp;#34;taskType&amp;#34;&lt;/span>&lt;span style="color:#ff79c6">])&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The &lt;code>ManifestForceCacheRefreshTask&lt;/code> task is no longer a required task when deploying a manifest. In earlier releases, forcing the cache to refresh was part of the deployment process for manifests. Because of this change, if a task was running or retried before the upgrade, the error shows up in logs as an exception.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Before starting, make sure that you have access to the Redis instance that Orca uses.&lt;/p>
&lt;p>To resolve this issue, delete the message from the queue:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Verify that there are pipeline execution failure messages that contain &lt;code>ManifestForceCacheRefreshTask&lt;/code>:&lt;/p>
&lt;p>&lt;strong>Redis&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>hgetall orca.task.queue.messages
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The command returns information similar to the following:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>1) &amp;#34;93ac65e03399a4cfd3678e1355936ab2&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2) &amp;#34;{\&amp;#34;kind\&amp;#34;:\&amp;#34;runTask\&amp;#34;,\&amp;#34;executionType\&amp;#34;:\&amp;#34;PIPELINE\&amp;#34;,\&amp;#34;executionId\&amp;#34;:\&amp;#34;01EVFCCDG3Q2209E0Z1QTNC0FS\&amp;#34;, \&amp;#34;application\&amp;#34;:\&amp;#34;armoryhellodeploy\&amp;#34;,\&amp;#34;stageId\&amp;#34;:\&amp;#34;01EVFCCDG3TJ7AFPYEJT1N8RDJ\&amp;#34;,\&amp;#34;taskId\&amp;#34;:\&amp;#34;5\&amp;#34;,\&amp;#34;taskType\&amp;#34;:\&amp;#34;com.netflix.spinnaker. orca.clouddriver.tasks.manifest.ManifestForceCacheRefreshTask\&amp;#34;,\&amp;#34;attributes\&amp;#34;:[{\&amp;#34;kind\&amp;#34;:\&amp;#34;attempts\&amp;#34;,\&amp;#34;attempts\&amp;#34;:1}], \&amp;#34;ackTimeoutMs\&amp;#34;:600000}&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Delete the message(s):&lt;/p>
&lt;p>&lt;strong>Redis&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>hdel orca.task.queue.messages
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The command returns information similar to the following:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>93ac65e03399a4cfd3678e1355936ab2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(integer) 1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
​&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>​
&lt;h4 id="bake-failures">Bake failures&lt;/h4>
&lt;p>The Packer version included with Rosco disregards package overrides that use the &lt;code>-var-file=&lt;/code> option. This may cause bakes to fail.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.22.2 and later&lt;/p>
&lt;h4 id="lambda-ui-issue">Lambda UI issue&lt;/h4>
&lt;p>There is a &lt;a href="https://github.com/spinnaker/spinnaker/issues/6271">UI bug&lt;/a> related to the caching agent that prevents Lambda functions from being displayed in the UI when there are no other clusters associated with the Application. In other words, in order for the function to show up in &amp;ldquo;Functions&amp;rdquo; tab, there needs to be a cluster (such as an AWS ASG/EC2 instance) deployed for that application.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.23.0 (1.23.0) - 2.26.2
&lt;strong>Fixed version&lt;/strong>: 2.26.3&lt;/p>
&lt;h4 id="pipelineid-for-pipelines-as-code">&lt;code>pipelineID&lt;/code> for Pipelines-as-Code&lt;/h4>
&lt;p>There is a known issue where the &lt;code>pipelineID&lt;/code> function does not work the first time, which causes pipelines to not be updated. Subsequent changes to the &lt;code>dinghyfile&lt;/code> update the pipelines correctly.&lt;/p>
&lt;p>Affected versions: 2.21.1 - 2.26.0
Fixed version: 2.26.1&lt;/p>
​
​&lt;/p>
&lt;h4 id="git-repo-artifact-provider-cannot-checkout-shas">Git repo artifact provider cannot checkout SHAs&lt;/h4>
&lt;p>​
Only branches are currently supported. For more information, see &lt;a href="https://github.com/spinnaker/spinnaker/issues/6363">6363&lt;/a>.
​&lt;/p>
&lt;h4 id="server-groups">Server groups&lt;/h4>
&lt;!-- ENG-5847 -->
&lt;p>There is a known issue where you cannot edit AWS server groups with the &lt;strong>Edit&lt;/strong> button in the UI. The edit window closes immediately after you open it.
​
&lt;strong>Workaround&lt;/strong>: To make changes to your server groups, edit the stage JSON directly by clicking on the &lt;strong>Edit stage as JSON&lt;/strong> button.
​&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;p>​
This release includes a security fix. For more information, see the Critical Notification that Armory&amp;rsquo;s Support Team sent out on 14 December 2021, contact your Armory account rep, or see this (login required) Support article: &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520">https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520&lt;/a>.&lt;/p>
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://spinnaker.io/changelogs/1.25.3-changelog/">Spinnaker v1.25.3&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>version: 2.25.1
timestamp: "2021-12-15 17:23:28"
services:
clouddriver:
commit: a764fa3dd360655e8ebd9b81e2217fce554f434c
version: 2.25.6
deck:
commit: 3be7d16e0ba22113b38a7e8a1862f9769a119d10
version: 2.25.6
dinghy:
commit: 7feba3a7b859b9595758c7c9e09782e651d9f0f8
version: 2.25.5
echo:
commit: d4254bb69d38e8bf9216c045c4380933ff4582e1
version: 2.25.4
fiat:
commit: fe60b6210c6ce00167aa42143a4dffebcf03fb9f
version: 2.25.5
front50:
commit: 3d2302240be46ca85600e488c20059a9990f13d4
version: 2.25.4
gate:
commit: eab05d036bef8c391274baa7fb3d294862fad37e
version: 2.25.7
igor:
commit: 670df68838b5183faa5ab42db3559b20bbfb29c9
version: 2.25.4
kayenta:
commit: f859543dc93fe2438cca2b7907fde957dde9f64c
version: 2.25.4
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
orca:
commit: 8f84752ec39945409533737c25beb2a853fa22d0
version: 2.25.3
rosco:
commit: 8ef53c816490ac4350813003e098d9ccdff33b0b
version: 2.25.8
terraformer:
commit: 4551e4c1976da52d1f96033f2849d97dc4c9131c
version: 2.25.9
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-deck---22532256">Armory Deck - 2.25.3&amp;hellip;2.25.6&lt;/h4>
&lt;ul>
&lt;li>fix(settings): add MPTv2 and Dinghy Events flags back (#776)&lt;/li>
&lt;li>fix(build): include cd actions &amp;amp; use cd dependencies (#1144)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---22522254">Armory Kayenta - 2.25.2&amp;hellip;2.25.4&lt;/h4>
&lt;ul>
&lt;li>fix(build): add cd workflow / use io.spinnaker deps (#284)&lt;/li>
&lt;li>chore(cd): update base service version to kayenta:2021.12.08.00.12.05.release-1.25.x (#291)&lt;/li>
&lt;li>chore(armory-commons): autobump armory-commons to 3.8.6 (#293)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---22512255">Dinghy™ - 2.25.1&amp;hellip;2.25.5&lt;/h4>
&lt;ul>
&lt;li>fix(config): bit more err checking on initial config load (#380)&lt;/li>
&lt;li>fix(crash_on_module_updates): remove call to log.fatal() (#366) (#367) (#428)&lt;/li>
&lt;li>chore(build): include workflow to onboard dinghy in cd images (#456)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---22532256">Armory Clouddriver - 2.25.3&amp;hellip;2.25.6&lt;/h4>
&lt;ul>
&lt;li>fix(build): use baseServiceVersion as base for the extension (#482)&lt;/li>
&lt;li>fix(build): update workflows to produce CD images (#483)&lt;/li>
&lt;li>fix(build): use the correct dependencies from baseServiceVersion (#485)&lt;/li>
&lt;li>chore(build): bump armory.settings plugin to 1.7.2 (#495)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.12.07.22.20.09.release-1.25.x (#504)&lt;/li>
&lt;li>chore(armory-commons): autobump armory-commons to 3.8.6 (#507)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---22532255">Armory Fiat - 2.25.3&amp;hellip;2.25.5&lt;/h4>
&lt;ul>
&lt;li>fix(build): onboard 2.25.x with astrolabe cd (#265)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2021.12.07.22.20.53.release-1.25.x (#277)&lt;/li>
&lt;li>chore(armory-commons): autobump armory-commons to 3.8.6 (#280)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---22502259">Terraformer™ - 2.25.0&amp;hellip;2.25.9&lt;/h4>
&lt;ul>
&lt;li>chore(build): add gcloud sdk + anthoscli (#374) (#375)&lt;/li>
&lt;li>chore(versions): add terraform 13.6 through 14.10 (bp #376) (#377)&lt;/li>
&lt;li>security(versions): secure terraform binaries (backport #390) (#391)&lt;/li>
&lt;li>chore(versions): update tf installer to use new hashi keys (#396) (#398)&lt;/li>
&lt;li>chore(tests): retrieve secrets from s3, not vault (#418) (#422)&lt;/li>
&lt;li>task(tf_versions): update tf bundled versions script to use new key-server (#417) (#424)&lt;/li>
&lt;li>task(tf_versions): update tf bundled versions script to use new key (#428) (#430)&lt;/li>
&lt;li>fix(build): add cd workflow (#446)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---22522254">Armory Front50 - 2.25.2&amp;hellip;2.25.4&lt;/h4>
&lt;ul>
&lt;li>fix(build): onboard front50 with astrolabe cd build (#326)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2021.12.07.22.22.25.release-1.25.x (#338)&lt;/li>
&lt;li>chore(armory-commons): autobump armory-commons to 3.8.6 (#341)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22552257">Armory Gate - 2.25.5&amp;hellip;2.25.7&lt;/h4>
&lt;ul>
&lt;li>fix(build): onboard 2.25.x with cd process (#340)&lt;/li>
&lt;li>feat(gradle): Add stack trace to gradle build (backport #359) (#360)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2021.12.15.00.04.16.release-1.25.x (#357)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---22522253">Armory Orca - 2.25.2&amp;hellip;2.25.3&lt;/h4>
&lt;ul>
&lt;li>fix(build): add cd workflow for Astrolabe (#374)&lt;/li>
&lt;li>chore(cd): update base orca version to 2021.12.07.23.35.56.release-1.25.x (#391)&lt;/li>
&lt;li>chore(armory-commons): autobump armory-commons to 3.8.6 (#396)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22522258">Armory Rosco - 2.25.2&amp;hellip;2.25.8&lt;/h4>
&lt;ul>
&lt;li>Update gradle.yml&lt;/li>
&lt;li>fix(build): add cd workflows / build using artifact (#320)&lt;/li>
&lt;li>chore(cd): update base service version to rosco:2021.12.07.23.36.04.release-1.25.x (#330)&lt;/li>
&lt;li>chore(armory-commons): autobump armory-commons to 3.8.6 (#333)&lt;/li>
&lt;li>fix(tests): remove tests intended for Spinnaker Cloud (#314) (#322)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---22522254">Armory Igor - 2.25.2&amp;hellip;2.25.4&lt;/h4>
&lt;ul>
&lt;li>fix(build): include workflows for CD with Astrolabe (#265)&lt;/li>
&lt;li>chore(cd): update base service version to igor:2021.12.07.23.57.30.release-1.25.x (#273)&lt;/li>
&lt;li>chore(armory-commons): autobump armory-commons to 3.8.6 (#276)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---22522254">Armory Echo - 2.25.2&amp;hellip;2.25.4&lt;/h4>
&lt;ul>
&lt;li>fix(build): onboard 2.25.x with astrolabe cd process (#376)&lt;/li>
&lt;li>chore(build): bump armory gradle 1.7.2 (#378)&lt;/li>
&lt;li>chore(cd): update base service version to echo:2021.12.07.22.20.45.release-1.25.x (#390)&lt;/li>
&lt;li>chore(armory-commons): bump armory-commons to 3.8.6 (#394)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.26.4 Armory Continuous Deployment Release (Spinnaker™ v1.26.6)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-26-4/</link><pubDate>Wed, 15 Dec 2021 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-26-4/</guid><description>
&lt;h2 id="20211215-release-notes">2021/12/15 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Armory Continuous Deployment, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-halyard-or-operator-version">Required Halyard or Operator version&lt;/h2>
&lt;p>​
To install, upgrade, or configure Armory 2.26.4, use one of the following tools:
​&lt;/p>
&lt;ul>
&lt;li>Armory-extended Halyard 1.12 or later
&lt;ul>
&lt;li>2.26.x is the last minor release that you can use Halyard to install or manage. Future releases require the Armory Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.
​&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Armory Operator 1.2.6 or later
​
For information about upgrading, Operator, see &lt;a href="/continuous-deployment/installation/armory-operator/op-manage-operator/#upgrade-the-operator">Upgrade the Operator&lt;/a>.
​
​&lt;/li>
&lt;/ul>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>​
Armory scans the codebase as we develop and release software. For information about CVE scans for this release, see the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010414">Support Portal&lt;/a>. Note that you must be logged in to the portal to see the information.&lt;/p>
&lt;p>This release includes a security fix. For more information, see the Critical Notification that Armory&amp;rsquo;s Support Team sent out on 14 December 2021, contact your Armory account rep, or see this (login required) Support article: &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520">https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520&lt;/a>.
​&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;p>​
&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
​
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
​
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
​&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;p>​
&lt;h4 id="bake-failures">Bake failures&lt;/h4>
&lt;p>The Packer version included with Rosco disregards package overrides that use the &lt;code>-var-file=&lt;/code> option. This may cause bakes to fail.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.22.2 and later&lt;/p>
&lt;h4 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h4>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;h4 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h4>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
​&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;p>​
This release includes a security fix. For more information, see the Critical Notification that Armory&amp;rsquo;s Support Team sent out on 14 December 2021, contact your Armory account rep, or see this (login required) Support article: &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520">https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520&lt;/a>.&lt;/p>
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.26.6-changelog/">Spinnaker v1.26.6&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>version: 2.26.4
timestamp: "2021-12-15 17:47:54"
services:
clouddriver:
commit: 18729608df655fa9ffdf28a968e4bdf22e140e59
version: 2.26.24
deck:
commit: 198d62eae2710dceed1f462e50a183abba613fef
version: 2.26.11
dinghy:
commit: d1406fad85771d7f44a266d3302d6195c00d7ec2
version: 2.26.12
echo:
commit: ce4f4ed265be8cb746784c6fd4bed7bf5156107e
version: 2.26.12
fiat:
commit: e46182a670fc9bac7c02f809df7ffe65c89ba148
version: 2.26.13
front50:
commit: 7e14c30538a9b97468aba0360408abf4a06bc0dd
version: 2.26.14
gate:
commit: 41c92b2d613e47521c60d2c9036504ff405fbb91
version: 2.26.12
igor:
commit: 889135384533cd723c0a6377a37a7365cf92a8b2
version: 2.26.12
kayenta:
commit: 2403ad86e76898a65939ebdf879bf287fa8b1429
version: 2.26.13
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
orca:
commit: 624af61e6bf75bc92e67a6bef6439f8ae29ec79a
version: 2.26.18
rosco:
commit: cbb42562fad6583e6efcb24a7378cb6fd84668f0
version: 2.26.18
terraformer:
commit: 2dc177734c1445252dfeb3b8353ce94596c8a4c3
version: 2.26.14
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-igor---2261122612">Armory Igor - 2.26.11&amp;hellip;2.26.12&lt;/h4>
&lt;ul>
&lt;li>chore(build): bump armory-commons 3.9.6 (backport #260) (#262)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---2262022624">Armory Clouddriver - 2.26.20&amp;hellip;2.26.24&lt;/h4>
&lt;ul>
&lt;li>chore(build): Autobump armory-commons: 3.9.6 (backport #364) (#458)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---2261222613">Armory Kayenta - 2.26.12&amp;hellip;2.26.13&lt;/h4>
&lt;ul>
&lt;li>chore(build): remove platform build (#279)&lt;/li>
&lt;li>chore(build): Autobump armory-commons: 3.9.6 (backport #268) (#281)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---2261122612">Armory Echo - 2.26.11&amp;hellip;2.26.12&lt;/h4>
&lt;ul>
&lt;li>chore(build): Autobump armory-commons: 3.9.6 (backport #351) (#372)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---2261022611">Armory Deck - 2.26.10&amp;hellip;2.26.11&lt;/h4>
&lt;h4 id="armory-orca---2261722618">Armory Orca - 2.26.17&amp;hellip;2.26.18&lt;/h4>
&lt;ul>
&lt;li>chore(build): remove platform build (#364)&lt;/li>
&lt;li>chore(build): Autobump armory-commons: 3.9.6 (backport #335) (#368)&lt;/li>
&lt;/ul>
&lt;h4 id="terraformer---2261322614">Terraformer™ - 2.26.13&amp;hellip;2.26.14&lt;/h4>
&lt;h4 id="armory-gate---2261122612">Armory Gate - 2.26.11&amp;hellip;2.26.12&lt;/h4>
&lt;ul>
&lt;li>chore(build): Autobump armory-commons: 3.9.6 (backport #305) (#329)&lt;/li>
&lt;li>chore(cd): update base service version to gate:2021.12.14.23.45.08.release-1.26.x (#356)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---2261122612">Dinghy™ - 2.26.11&amp;hellip;2.26.12&lt;/h4>
&lt;h4 id="armory-rosco---2261522618">Armory Rosco - 2.26.15&amp;hellip;2.26.18&lt;/h4>
&lt;ul>
&lt;li>chore(build): Autobump armory-commons: 3.9.6 (backport #286) (#310)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---2261222613">Armory Fiat - 2.26.12&amp;hellip;2.26.13&lt;/h4>
&lt;ul>
&lt;li>chore(build): Autobump armory-commons: 3.9.6 (backport #232) (#257)&lt;/li>
&lt;li>chore(cd): update base service version to fiat:2021.12.14.22.49.55.release-1.26.x (#283)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-front50---2261322614">Armory Front50 - 2.26.13&amp;hellip;2.26.14&lt;/h4>
&lt;ul>
&lt;li>chore(build): remove platform build (#312)&lt;/li>
&lt;li>chore(build): Autobump armory-commons: 3.9.6 (backport #285) (#318)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.24.3 Armory Continuous Deployment Release</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-24-3/</link><pubDate>Tue, 14 Dec 2021 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-24-3/</guid><description>
&lt;blockquote>
&lt;p>2.24.x is not a supported version.&lt;/p>
&lt;/blockquote>
&lt;h2 id="20211214-release-notes">2021/12/14 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-halyard-or-operator-version">Required Halyard or Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.24.3, use one of the following tools:&lt;/p>
&lt;ul>
&lt;li>Armory-extended Halyard 1.10 or later&lt;/li>
&lt;li>Armory Operator 1.2.1 or later
For information about upgrading, Operator, see &lt;a href="/continuous-deployment/installation/armory-operator/op-manage-operator/#upgrade-the-operator">Upgrade the Operator&lt;/a>.&lt;/li>
&lt;/ul>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. For information about CVE scans for this release, see the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010414">Support Portal&lt;/a>. Note that you must be logged in to the portal to see the information.&lt;/p>
&lt;p>This release includes a security fix. For more information, see the Critical Notification that Armory&amp;rsquo;s Support Team sent out on 14 December 2021, contact your Armory account rep, or see this (login required) Support article: &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520">https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520&lt;/a>.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="suffix-no-longer-added-to-jobs-created-by-kubernetes-run-job-stage">Suffix no longer added to jobs created by Kubernetes Run Job stage&lt;/h3>
&lt;p>Spinnaker no longer automatically appends a unique suffix to the name of jobs created by the Kubernetes Run Job stage. Prior to this release, if you specified &lt;code>metadata.name: my-job&lt;/code>, Spinnaker updates the name to &lt;code>my-job-[random-string]&lt;/code> before deploying the job to Kubernetes. As of this release, the job&amp;rsquo;s name will be passed through to Kubernetes exactly as supplied.&lt;/p>
&lt;p>To continue having a random suffix added to the job name, set the &lt;code>metadata.generateName&lt;/code> field instead of &lt;code>metadata.name&lt;/code>, which causes the Kubernetes API to append a random suffix to the name.&lt;/p>
&lt;p>This change is particularly important for users who are using the preconfigured job stage for Kubernetes or are sharing job stages among different pipelines. In these cases, jobs often running concurrently, and it is important that each job have a unique name. In order to retain the previous behavior, manually update your Kubernetes job manifests to use the &lt;code>generateName&lt;/code> field.&lt;/p>
&lt;p>Previously, this behavior was opt-in.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>As of Armory 2.22, this behavior is the default. Users can still opt out of the new behavior by setting &lt;code>kubernetes.jobs.append-suffix: true&lt;/code> in &lt;code>clouddriver-local.yml&lt;/code>. This causes Spinnaker to continue to append a suffix to the name of jobs as in prior releases.&lt;/p>
&lt;p>The ability to opt out of the new behavior will be removed in Armory 2.23 (OSS 1.23). The above setting will have no effect, and Spinnaker will no longer append a suffix to job names. We recommended that 2.22 users note which jobs are using the old behavior and prepare to remove the setting before upgrading to Armory 2.23 in the future.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory 2.22&lt;/p>
&lt;!-- Moved this to Breaking changes instead of KI. Didn't bother renaming it. -->
&lt;h4 id="zombie-executions">Zombie Executions&lt;/h4>
&lt;p>Starting in Spinnaker 2.23.0, ManifestForceCacheRefreshTask was removed, as Kubernetes manifest related stages now do live lookups. While upgrading to Spinnaker 2.23.0 or later, if there is a running pipeline that contains a Kubernetes manifest related stage, it becomes a &lt;a href="https://spinnaker.io/guides/runbooks/orca-zombie-executions/">zombie execution&lt;/a>. This causes Orca, Spinnaker&amp;rsquo;s orchestration service, to fail to complete any Kubernetes manifest related stage in that pipeline.&lt;/p>
&lt;p>&lt;strong>Workarounds&lt;/strong>:&lt;/p>
&lt;p>To resolve the issue, cancel any zombie executions. For information about how to cancel them, see the &lt;a href="https://spinnaker.io/guides/runbooks/orca-zombie-executions/#cancel-the-execution">Orca Zombie Execution runbook&lt;/a>.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.23.0 and later&lt;/p>
&lt;h4 id="manifestforcecacherefreshtask-removed-from-orca">ManifestForceCacheRefreshTask removed from Orca&lt;/h4>
&lt;p>When you upgrade to 2.23.0 or later, you might encounter the following error:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>2021-01-29 23:57:19.691 ERROR &lt;span style="color:#bd93f9">1&lt;/span> --- &lt;span style="color:#ff79c6">[&lt;/span> scheduler-2&lt;span style="color:#ff79c6">]&lt;/span> c.netflix.spinnaker.q.redis.RedisQueue : Failed to &lt;span style="color:#8be9fd;font-style:italic">read&lt;/span> message 8f072714f1df6dbf3af93a4f4fe4cae2, requeuing...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.fasterxml.jackson.databind.JsonMappingException: No task found &lt;span style="color:#ff79c6">for&lt;/span> &lt;span style="color:#f1fa8c">&amp;#39;com.netflix.spinnaker.orca.clouddriver.tasks.manifest.ManifestForceCacheRefreshTask&amp;#39;&lt;/span> &lt;span style="color:#ff79c6">(&lt;/span>through reference chain: com.netflix.spinnaker.orca.q.RunTask&lt;span style="color:#ff79c6">[&lt;/span>&lt;span style="color:#f1fa8c">&amp;#34;taskType&amp;#34;&lt;/span>&lt;span style="color:#ff79c6">])&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The &lt;code>ManifestForceCacheRefreshTask&lt;/code> task is no longer a required task when deploying a manifest. In earlier releases, forcing the cache to refresh was part of the deployment process for manifests. Because of this change, if a task was running or retried before the upgrade, the error shows up in logs as an exception.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Before starting, make sure that you have access to the Redis instance that Orca uses.&lt;/p>
&lt;p>To resolve this issue, delete the message from the queue:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Verify that there are pipeline execution failure messages that contain &lt;code>ManifestForceCacheRefreshTask&lt;/code>:&lt;/p>
&lt;p>&lt;strong>Redis&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>hgetall orca.task.queue.messages
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The command returns information similar to the following:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>1) &amp;#34;93ac65e03399a4cfd3678e1355936ab2&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2) &amp;#34;{\&amp;#34;kind\&amp;#34;:\&amp;#34;runTask\&amp;#34;,\&amp;#34;executionType\&amp;#34;:\&amp;#34;PIPELINE\&amp;#34;,\&amp;#34;executionId\&amp;#34;:\&amp;#34;01EVFCCDG3Q2209E0Z1QTNC0FS\&amp;#34;, \&amp;#34;application\&amp;#34;:\&amp;#34;armoryhellodeploy\&amp;#34;,\&amp;#34;stageId\&amp;#34;:\&amp;#34;01EVFCCDG3TJ7AFPYEJT1N8RDJ\&amp;#34;,\&amp;#34;taskId\&amp;#34;:\&amp;#34;5\&amp;#34;,\&amp;#34;taskType\&amp;#34;:\&amp;#34;com.netflix.spinnaker. orca.clouddriver.tasks.manifest.ManifestForceCacheRefreshTask\&amp;#34;,\&amp;#34;attributes\&amp;#34;:[{\&amp;#34;kind\&amp;#34;:\&amp;#34;attempts\&amp;#34;,\&amp;#34;attempts\&amp;#34;:1}], \&amp;#34;ackTimeoutMs\&amp;#34;:600000}&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Delete the message(s):&lt;/p>
&lt;p>&lt;strong>Redis&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>hdel orca.task.queue.messages
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The command returns information similar to the following:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>93ac65e03399a4cfd3678e1355936ab2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(integer) 1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;p>&lt;h4 id="bake-failures">Bake failures&lt;/h4>
&lt;p>The Packer version included with Rosco disregards package overrides that use the &lt;code>-var-file=&lt;/code> option. This may cause bakes to fail.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.22.2 and later&lt;/p>
&lt;h4 id="lambda-ui-issue">Lambda UI issue&lt;/h4>
&lt;p>There is a &lt;a href="https://github.com/spinnaker/spinnaker/issues/6271">UI bug&lt;/a> related to the caching agent that prevents Lambda functions from being displayed in the UI when there are no other clusters associated with the Application. In other words, in order for the function to show up in &amp;ldquo;Functions&amp;rdquo; tab, there needs to be a cluster (such as an AWS ASG/EC2 instance) deployed for that application.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.23.0 (1.23.0) - 2.26.2
&lt;strong>Fixed version&lt;/strong>: 2.26.3&lt;/p>
&lt;h4 id="pipelines-as-code-fails-unexpectedly-when-updating-modules">Pipelines-as-Code fails unexpectedly when updating modules&lt;/h4>
&lt;!--BOB-30145 -->
&lt;p>The container for the Dinghy service that Pipelines-as-Code uses fails when updating pipelines using modules stored in GitHub. The error you encounter references a failure related to GitHub, such as one of the following:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>422 Validation Failed [{Resource:CommitComment Field:body Code:custom Message:body is too long (maximum is 65536 characters)}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>or&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>422 No commit found for SHA: &amp;lt;SHA for a commit&amp;gt; []
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This results in only some pipelines in your deployment getting updated when a module gets updated.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;ol>
&lt;li>Use the &lt;code>arm CLI&lt;/code> to render the JSON for your &lt;code>dinghyfiles&lt;/code>.&lt;/li>
&lt;li>Update pipelines manually using the UI.&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.22.x, 2.23.x, 2.24.0
&lt;strong>Fixed versions&lt;/strong>: 2.25.0&lt;/p>
&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;p>This release includes a security fix. For more information, see the Critical Notification that Armory&amp;rsquo;s Support Team sent out on 14 December 2021, contact your Armory account rep, or see this (login required) Support article: &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520">https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520&lt;/a>.&lt;/p></description></item><item><title>Continuous-Deployment: v2.27.2 Armory Continuous Deployment Release LTS (Spinnaker™ v1.27.0)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-2/</link><pubDate>Tue, 14 Dec 2021 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-2/</guid><description>
&lt;h2 id="20211214-release-notes">2021/12/14 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-operator-version">Required Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.27.2, use the following Operator version:&lt;/p>
&lt;ul>
&lt;li>Armory Operator 1.4.0 or later&lt;/li>
&lt;/ul>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;p>This release includes a security fix. For more information, see the Critical Notification that Armory&amp;rsquo;s Support Team sent out on 14 December 2021, contact your Armory account rep, or see this (login required) Support article: &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520">https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520&lt;/a>.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;h3 id="pipelines-as-code-slack-notifications-stop-working">Pipelines-as-Code Slack notifications stop working&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>After upgrading to 2.27.x, your Pipelines-as-Code Slack notifications may stop working even though they were working previously.&lt;/p>
&lt;p>&lt;strong>Hotfix&lt;/strong>&lt;/p>
&lt;p>See the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010573&amp;amp;sys_kb_id=c0befa03dbd2811079f53ec8f496192a&amp;amp;spa=1">Dinghy Slack Notifications not working&lt;/a> KB article for the Hotfix.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.27.0&lt;/p>
&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;h4 id="plugin-compatibility">Plugin compatibility&lt;/h4>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory Continuous Deployment 2.27.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/release-notes/agent-plugin/">Armory Agent for Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.10.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.9&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.2.1-rc&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>&lt;h4 id="bake-failures">Bake failures&lt;/h4>
&lt;p>The Packer version included with Rosco disregards package overrides that use the &lt;code>-var-file=&lt;/code> option. This may cause bakes to fail.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.22.2 and later&lt;/p>
&lt;h4 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h4>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;h4 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h4>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;p>This release includes a security fix. For more information, see the Critical Notification that Armory&amp;rsquo;s Support Team sent out on 14 December 2021, contact your Armory account rep, or see this (login required) Support article: &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520">https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010520&lt;/a>.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>version: 2.27.2
timestamp: "2021-12-14 23:38:36"
services:
clouddriver:
commit: a9bd461d8e5e862925b4c04f77774da97e2ecd73
version: 2.27.2
deck:
commit: d2a44f00f618e01853ef7890abe1ed6d2ce62c2e
version: 2.27.2
dinghy:
commit: 71f2ed003fe6b75d8e4f43e800725f2ff3a8a1fe
version: 2.27.2
echo:
commit: 5ec4a67ff921c2bdefc776dda03a0780ff853bcf
version: 2.27.2
fiat:
commit: f23a1b97346816afc4e8e85dfc3ac137282af64a
version: 2.27.2
front50:
commit: f6339ea78bf6edc39250289b1a9e5545d53bc94f
version: 2.27.2
gate:
commit: 10936c03e0722b42a8d632f7869e4c1ad29610a6
version: 2.27.2
igor:
commit: 9f4db42f060f6fb45aad4c038525d71528a2f9f5
version: 2.27.2
kayenta:
commit: 1cdf69a42c359a1f12077b6b1cba5606ac3e5daf
version: 2.27.2
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
orca:
commit: 522655a252c5a1a97f7745fe622ba06bccb99a8c
version: 2.27.2
rosco:
commit: ac6fe57054e435c6058911c4caa177cba5fa64b3
version: 2.27.2
terraformer:
commit: 5e69c32279c6516047eaf6de261d3632095677aa
version: 2.27.2
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-rosco---22712272">Armory Rosco - 2.27.1&amp;hellip;2.27.2&lt;/h4>
&lt;h4 id="dinghy---22712272">Dinghy™ - 2.27.1&amp;hellip;2.27.2&lt;/h4>
&lt;h4 id="armory-kayenta---22712272">Armory Kayenta - 2.27.1&amp;hellip;2.27.2&lt;/h4>
&lt;h4 id="armory-front50---22712272">Armory Front50 - 2.27.1&amp;hellip;2.27.2&lt;/h4>
&lt;h4 id="armory-fiat---22712272">Armory Fiat - 2.27.1&amp;hellip;2.27.2&lt;/h4>
&lt;h4 id="armory-deck---22712272">Armory Deck - 2.27.1&amp;hellip;2.27.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2021.0.0-20211115175155.release-1.27.x (#1148)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22712272">Armory Gate - 2.27.1&amp;hellip;2.27.2&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to gate:2021.12.14.20.34.14.release-1.27.x (#355)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---22712272">Armory Orca - 2.27.1&amp;hellip;2.27.2&lt;/h4>
&lt;h4 id="armory-echo---22712272">Armory Echo - 2.27.1&amp;hellip;2.27.2&lt;/h4>
&lt;h4 id="armory-clouddriver---22712272">Armory Clouddriver - 2.27.1&amp;hellip;2.27.2&lt;/h4>
&lt;h4 id="terraformer---22712272">Terraformer™ - 2.27.1&amp;hellip;2.27.2&lt;/h4>
&lt;h4 id="armory-igor---22712272">Armory Igor - 2.27.1&amp;hellip;2.27.2&lt;/h4></description></item><item><title>Continuous-Deployment: v2.27.1 Armory Continuous Deployment Release LTS (Spinnaker™ v1.27.0)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-1/</link><pubDate>Thu, 18 Nov 2021 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-27-1/</guid><description>
&lt;h2 id="20211118-release-notes">2021/11/18 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-operator-version">Required Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.27.1, use the following Operator version:&lt;/p>
&lt;ul>
&lt;li>Armory Operator 1.4.0 or later&lt;/li>
&lt;/ul>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;blockquote>
&lt;p>Breaking changes are kept in this list for 3 minor versions from when the change is introduced. For example, a breaking change introduced in 2.21.0 appears in the list up to and including the 2.24.x releases. It would not appear on 2.25.x release notes.&lt;/p>
&lt;/blockquote>
&lt;h3 id="pipelines-as-code-slack-notifications-stop-working">Pipelines-as-Code Slack notifications stop working&lt;/h3>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>After upgrading to 2.27.x, your Pipelines-as-Code Slack notifications may stop working even though they were working previously.&lt;/p>
&lt;p>&lt;strong>Hotfix&lt;/strong>&lt;/p>
&lt;p>See the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010573&amp;amp;sys_kb_id=c0befa03dbd2811079f53ec8f496192a&amp;amp;spa=1">Dinghy Slack Notifications not working&lt;/a> KB article for the Hotfix.&lt;/p>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.27.0&lt;/p>
&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h4 id="halyard-deprecation">Halyard deprecation&lt;/h4>
&lt;p>Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/p>
&lt;h4 id="plugin-compatibility">Plugin compatibility&lt;/h4>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory Continuous Deployment 2.27.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/release-notes/agent-plugin/">Armory Agent for Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.10.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.9&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.2.1-rc&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;p>&lt;h4 id="bake-failures">Bake failures&lt;/h4>
&lt;p>The Packer version included with Rosco disregards package overrides that use the &lt;code>-var-file=&lt;/code> option. This may cause bakes to fail.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.22.2 and later&lt;/p>
&lt;h4 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h4>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;h4 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h4>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="deployment-targets">Deployment targets&lt;/h3>
&lt;h4 id="general-fixes">General fixes&lt;/h4>
&lt;ul>
&lt;li>Fixed an NPE related to the &lt;code>kubesvcCredentialsLoader&lt;/code>.&lt;/li>
&lt;li>Fixed an issue where new namespaces failed to get created as part of a Deploy Manifest Stage. This issue occurred because of a validation problem. &lt;!--BOB-30448-->&lt;/li>
&lt;li>The Clouddriver service is now more resilient when starting. Previously, the service failed to start if an account that gets added has permission errors.&lt;/li>
&lt;li>Fixed an issue where a stage never completes if the manifest getting deployed is of the kind &lt;code>CSIDriver&lt;/code>. &lt;!-- BOB-30402-->&lt;/li>
&lt;/ul>
&lt;h4 id="aws-lambda">AWS Lambda&lt;/h4>
&lt;blockquote>
&lt;p>Note that these updates also require v1.0.9 of the AWS Lambda plugin.&lt;/p>
&lt;/blockquote>
&lt;ul>
&lt;li>Fixed an issue in the UI where a stack trace gets displayed when you try to view functions. &lt;!--BOB-30359-->&lt;/li>
&lt;li>Fixed an issue where the UI did not show functions for an application if there are no configured clusters. Functions now appear instead of a 404 error. &lt;!--BOB-30260-->&lt;/li>
&lt;li>Caching behavior and performance have been improved. The changes include fixes for the following issues:
&lt;ul>
&lt;li>The Lambda API returns request conflicts (HTTP status 409).&lt;/li>
&lt;li>Event Source Mapping of ARNs fails after initially succeeding. This occured during the Lambda Event Configuration Task.&lt;/li>
&lt;li>Underscores (_) in environment variable names caused validation errors.&lt;/li>
&lt;li>An exception related to event configs occurred intermittently during the Lambda Event Configuration Task.&lt;/li>
&lt;li>Lambda function creation using the Deploy Lambda stage failed causing subsequent runs of the pipeline to encounter an error that states the function already exists.&lt;/li>
&lt;li>The Lambda Cache Refresh Task did not refresh the cache. This led to issues where downstream tasks referenced older versions.&lt;/li>
&lt;li>A permission issue caused the Infrastructure view in the UI (Deck) to not display Lambda functions.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h4 id="cloud-foundry">Cloud Foundry&lt;/h4>
&lt;ul>
&lt;li>
&lt;p>Improved the resiliency of the Cloud Foundry provider. Invalid permissions for a caching agent, such as if permissions are missing for one region, no longer cause all deployments to that account to fail. &lt;!--BOB-304707 -->&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Improved the caching behavior for the provider. Previously, the cache on a dedicated caching pod (such as when cache sharding or HA is enabled) may not have been updated if a different pod performed an operation that modifies the cache. This led to situations where the Cloud Foundry provider attempts actions for Server Groups that no longer existed. You can configure this behavior with the following properties: &lt;!--BOB-30408-->&lt;/p>
&lt;ul>
&lt;li>&lt;code>expireAfterWrite&lt;/code>: the amount of time (in seconds) to wait before expiring the cache after a write operation&lt;/li>
&lt;li>&lt;code>expireAfterAccess&lt;/code>: the amount of time (in seconds) to wait before expiring the cache after a access operation&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Improved error handling when a caching agent has insufficient permissions. A &lt;code>RuntimeException&lt;/code> no longer occurs.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;ul>
&lt;li>
&lt;p>Added an Unbind Service Stage to the Cloud Foundry provider. Services must be unbound before they can be deleted. Use this stage prior to a Destroy Service stage. Alternatively, you can unbind all services before they are deleted in the Destroy Service stage by selecting the checkbox in the stage to do this. &lt;!--PIT-98 BOB-30233-->&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Improved error handling when a Deploy Service stage fails &lt;!--BOB-30273-->&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The Cloud Foundry provider now supports the following manifest attributes:&lt;/p>
&lt;ul>
&lt;li>Processes Health&lt;/li>
&lt;li>Timeout&lt;/li>
&lt;li>Random route&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Fixed an issue where attributes that involved &lt;code>health-check-type&lt;/code> parameters were not respected. Armory Continuous Deployment (Spinnaker) now allows single parameters, such as &lt;code>timeout&lt;/code>, to be set. Note that Armory Continuous Deployment does not perform validation on parameters, so you may encounter runtime exceptions for Cloud Foundry if you provide invalid parameters. &lt;!--BOB-30473-->&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="instance-registration">Instance registration&lt;/h3>
&lt;p>When you log in to the UI, you are prompted to register your Armory Continuous Deployment (Spinnaker) instance. When you register an instance, Armory provides you with a client ID and client secret that you add to your Operator manifest.&lt;/p>
&lt;p>Registration is required for certain features to work.&lt;/p>
&lt;p>Note that registration does not automatically turn on Armory Diagnostics. This means that registration does not send information about your apps and pipelines to Armory. If you are sending diagnostic information to Armory, registering your deployment ensures that Armory can know which logs are yours, improving Armory&amp;rsquo;s ability to provide support.&lt;/p>
&lt;p>For more information, see &lt;a href="/continuous-deployment/installation/ae-instance-reg/">Instance Registration&lt;/a>.&lt;/p>
&lt;h3 id="plugin-compatibility-1">Plugin compatibility&lt;/h3>
&lt;p>Due to changes in the underlying services, older versions of some plugins may not work with Armory Continuous Deployment 2.27.x or later.&lt;/p>
&lt;p>The following table lists the plugins and their required minimum version:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Plugin&lt;/th>
&lt;th>Version&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="/plugins/scale-agent/release-notes/agent-plugin/">Armory Agent for Kubernetes Clouddriver Plugin&lt;/a>&lt;/td>
&lt;td>0.10.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>App Name&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/spinnaker-plugins/aws-lambda-deployment-plugin-spinnaker/releases">AWS Lambda&lt;/a>&lt;/td>
&lt;td>1.0.9&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/evaluate-artifacts-releases/releases">Evaluate Artifacts&lt;/a>&lt;/td>
&lt;td>0.1.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/external-accounts/releases">External Accounts&lt;/a>&lt;/td>
&lt;td>0.2.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/armory-observability-plugin/releases">Observability Plugin&lt;/a>&lt;/td>
&lt;td>1.3.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://github.com/armory-plugins/policy-engine-releases/releases">Policy Engine&lt;/a>&lt;/td>
&lt;td>0.2.1-rc&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>version: 2.27.1
timestamp: "2021-11-04 21:25:35"
services:
clouddriver:
commit: a9bd461d8e5e862925b4c04f77774da97e2ecd73
version: 2.27.1
deck:
commit: 8912ef4f4a4f171384497b787aee0e83847ffd5c
version: 2.27.1
dinghy:
commit: 71f2ed003fe6b75d8e4f43e800725f2ff3a8a1fe
version: 2.27.1
echo:
commit: 5ec4a67ff921c2bdefc776dda03a0780ff853bcf
version: 2.27.1
fiat:
commit: f23a1b97346816afc4e8e85dfc3ac137282af64a
version: 2.27.1
front50:
commit: f6339ea78bf6edc39250289b1a9e5545d53bc94f
version: 2.27.1
gate:
commit: 68ccfd60091751f192cebde89572fe555b914ea5
version: 2.27.1
igor:
commit: 9f4db42f060f6fb45aad4c038525d71528a2f9f5
version: 2.27.1
kayenta:
commit: 1cdf69a42c359a1f12077b6b1cba5606ac3e5daf
version: 2.27.1
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
orca:
commit: 522655a252c5a1a97f7745fe622ba06bccb99a8c
version: 2.27.1
rosco:
commit: ac6fe57054e435c6058911c4caa177cba5fa64b3
version: 2.27.1
terraformer:
commit: 5e69c32279c6516047eaf6de261d3632095677aa
version: 2.27.1
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-orca---22702271">Armory Orca - 2.27.0&amp;hellip;2.27.1&lt;/h4>
&lt;ul>
&lt;li>[create-pull-request] automated change (#335) (#367)&lt;/li>
&lt;li>[create-pull-request] automated change (#371) (#372)&lt;/li>
&lt;li>Revert &amp;ldquo;[create-pull-request] automated change (#371) (#372)&amp;rdquo; (#373)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---22702271">Armory Deck - 2.27.0&amp;hellip;2.27.1&lt;/h4>
&lt;h4 id="armory-echo---22702271">Armory Echo - 2.27.0&amp;hellip;2.27.1&lt;/h4>
&lt;h4 id="armory-front50---22702271">Armory Front50 - 2.27.0&amp;hellip;2.27.1&lt;/h4>
&lt;ul>
&lt;li>chore(build): remove platform build (#311)&lt;/li>
&lt;li>chore(cd): update base service version to front50:2021.10.28.01.40.53.release-1.27.x (#324)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-igor---22702271">Armory Igor - 2.27.0&amp;hellip;2.27.1&lt;/h4>
&lt;h4 id="terraformer---22702271">Terraformer™ - 2.27.0&amp;hellip;2.27.1&lt;/h4>
&lt;ul>
&lt;li>Updating Terraform Versions 1.0.8 1.0.9 (#444) (#445)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---22702271">Armory Rosco - 2.27.0&amp;hellip;2.27.1&lt;/h4>
&lt;ul>
&lt;li>[create-pull-request] automated change (#286) (#309)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---22702271">Armory Clouddriver - 2.27.0&amp;hellip;2.27.1&lt;/h4>
&lt;ul>
&lt;li>[create-pull-request] automated change (#364) (#457)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.10.12.23.25.53.release-1.27.x (#462)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.10.12.23.52.07.release-1.27.x (#463)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.10.18.21.53.46.release-1.27.x (#466)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.10.19.23.47.12.release-1.27.x (#467)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.11.01.21.19.09.release-1.27.x (#476)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.11.02.19.30.35.release-1.27.x (#478)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.11.03.20.45.14.release-1.27.x (#480)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---22702271">Dinghy™ - 2.27.0&amp;hellip;2.27.1&lt;/h4>
&lt;h4 id="armory-kayenta---22702271">Armory Kayenta - 2.27.0&amp;hellip;2.27.1&lt;/h4>
&lt;ul>
&lt;li>[create-pull-request] automated change (#268) (#280)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---22702271">Armory Gate - 2.27.0&amp;hellip;2.27.1&lt;/h4>
&lt;ul>
&lt;li>[create-pull-request] automated change (#305) (#328)&lt;/li>
&lt;li>Rebuild artifacts (#336)&lt;/li>
&lt;li>chore(release): Bump armory header version (#337) (#338)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---22702271">Armory Fiat - 2.27.0&amp;hellip;2.27.1&lt;/h4>
&lt;ul>
&lt;li>[create-pull-request] automated change (#232) (#256)&lt;/li>
&lt;li>[create-pull-request] automated change (#261) (#262)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.26.3 Armory Continuous Deployment Release (Spinnaker™ v1.26.6)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-26-3/</link><pubDate>Fri, 24 Sep 2021 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-26-3/</guid><description>
&lt;h2 id="20210924-release-notes">2021/09/24 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-halyard-or-operator-version">Required Halyard or Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.26.3, use one of the following tools:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Armory-extended Halyard 1.12 or later&lt;/p>
&lt;ul>
&lt;li>2.26.x is the last minor release that you can use Halyard to install or manage. Future releases require the Armory Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Armory Operator 1.2.6 or later&lt;/p>
&lt;p>For information about upgrading, Operator, see &lt;a href="/continuous-deployment/installation/armory-operator/op-manage-operator/#upgrade-the-operator">Upgrade the Operator&lt;/a>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. For information about CVE scans for this release, see the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010414">Support Portal&lt;/a>. Note that you must be logged in to the portal to see the information.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;p>&lt;h4 id="bake-failures">Bake failures&lt;/h4>
&lt;p>The Packer version included with Rosco disregards package overrides that use the &lt;code>-var-file=&lt;/code> option. This may cause bakes to fail.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.22.2 and later&lt;/p>
&lt;h4 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h4>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;h4 id="pipelines-as-code-github-comments">Pipelines-as-Code GitHub comments&lt;/h4>
&lt;p>There is a known issue where Pipelines-as-Code can generate hundreds of comments in a GitHub Pull Request (PR) when updates are made, such as when a module that is used by multiple &lt;code>dinghyfiles&lt;/code> gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>You can either manually resolve the comments so that you can merge any PRs or turn the notifications that Pipelines-as-Code sends to GitHub.&lt;/p>
&lt;p>For information about about how to disable this functionality, see &lt;a href="/plugins/pipelines-as-code/install/configure/#github-notifications">GitHub Notifications&lt;/a>.&lt;/p>
&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="aws-lambda">AWS Lambda&lt;/h3>
&lt;ul>
&lt;li>Fixed an issue where infrastructure for Lambda functions was not being displayed in the UI. This was related to Lambda functions and their event source mappings.&lt;/li>
&lt;/ul>
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.26.6-changelog/">Spinnaker v1.26.6&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>version: 2.26.3
timestamp: "2021-09-23 02:12:12"
services:
clouddriver:
commit: d361f7e62fe555fda9dd5682b64627f4703563a8
version: 2.26.20
deck:
commit: 198d62eae2710dceed1f462e50a183abba613fef
version: 2.26.10
dinghy:
commit: d1406fad85771d7f44a266d3302d6195c00d7ec2
version: 2.26.11
echo:
commit: c1e9ced6759392159ee628e63cc5808a1c5d8fdd
version: 2.26.11
fiat:
commit: ea4874e41748992d24e0a36a5534bc37d0aa0d31
version: 2.26.12
front50:
commit: ba5b33e616e51dc0e655f40da18277c9434ca5fe
version: 2.26.13
gate:
commit: a7242aa7506dff2f342c69562666308c653fae17
version: 2.26.11
igor:
commit: d1ad3f87ee857a73f6e546ea4cc410286e87cea9
version: 2.26.11
kayenta:
commit: 4f668d1297a5d205d516667c1af6902d0d9f380f
version: 2.26.12
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
orca:
commit: a3463f61ff082502c1c6cb35ea7b01aeee5456a9
version: 2.26.17
rosco:
commit: 1dfc60f1f70ccdadc2cc03ff9f27b5ca39bb9c39
version: 2.26.15
terraformer:
commit: 2dc177734c1445252dfeb3b8353ce94596c8a4c3
version: 2.26.13
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-igor---2261022611">Armory Igor - 2.26.10&amp;hellip;2.26.11&lt;/h4>
&lt;ul>
&lt;li>chore(build): remove platform build (#257)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-clouddriver---2261922620">Armory Clouddriver - 2.26.19&amp;hellip;2.26.20&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2021.09.01.22.20.35.release-1.26.x (#412)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.09.02.07.27.19.release-1.26.x (#413)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.09.02.07.44.26.release-1.26.x (#414)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.09.02.17.47.50.release-1.26.x (#416)&lt;/li>
&lt;li>chore(build): remove platform build (#426)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.09.09.21.52.53.release-1.26.x (#432)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.09.09.23.19.30.release-1.26.x (#433)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.09.10.19.35.46.release-1.26.x (#438)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.09.17.17.07.10.release-1.26.x (#445)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.09.17.18.53.46.release-1.26.x (#447)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-fiat---2261122612">Armory Fiat - 2.26.11&amp;hellip;2.26.12&lt;/h4>
&lt;ul>
&lt;li>chore(build): remove platform build (#251)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-kayenta---2261122612">Armory Kayenta - 2.26.11&amp;hellip;2.26.12&lt;/h4>
&lt;h4 id="terraformer---2261222613">Terraformer™ - 2.26.12&amp;hellip;2.26.13&lt;/h4>
&lt;ul>
&lt;li>chore(build): remove platform build (#440)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---226922610">Armory Deck - 2.26.9&amp;hellip;2.26.10&lt;/h4>
&lt;ul>
&lt;li>chore(build): remove platform build (#1116)&lt;/li>
&lt;li>fix(build): use same name than GHA (#1119)&lt;/li>
&lt;li>chore(cd): update base deck version to 2021.0.0 20210922221550.release-1.26.x-166666656 (#1120)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-gate---2261022611">Armory Gate - 2.26.10&amp;hellip;2.26.11&lt;/h4>
&lt;ul>
&lt;li>chore(build): remove platform build (#326)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---2261422615">Armory Rosco - 2.26.14&amp;hellip;2.26.15&lt;/h4>
&lt;h4 id="armory-front50---2261222613">Armory Front50 - 2.26.12&amp;hellip;2.26.13&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to front50:2021.06.25.20.05.12.release-1.26.x (#307)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---2261622617">Armory Orca - 2.26.16&amp;hellip;2.26.17&lt;/h4>
&lt;ul>
&lt;li>fix(build): remove redhat publishing (#357)&lt;/li>
&lt;/ul>
&lt;h4 id="dinghy---2261022611">Dinghy™ - 2.26.10&amp;hellip;2.26.11&lt;/h4>
&lt;ul>
&lt;li>chore(build): remove platform build (#455)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---2261022611">Armory Echo - 2.26.10&amp;hellip;2.26.11&lt;/h4>
&lt;ul>
&lt;li>chore(build): remove platform build (#368)&lt;/li>
&lt;/ul></description></item><item><title>Continuous-Deployment: v2.26.2 Armory Continuous Deployment Release (Spinnaker™ v1.26.6)</title><link>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-26-2/</link><pubDate>Fri, 03 Sep 2021 00:00:00 +0000</pubDate><guid>/continuous-deployment/release-notes/rn-armory-spinnaker/armoryspinnaker_v2-26-2/</guid><description>
&lt;h2 id="20210903-release-notes">2021/09/03 Release Notes&lt;/h2>
&lt;blockquote>
&lt;p>Note: If you&amp;rsquo;re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to &lt;a href="http://go.armory.io/support">http://go.armory.io/support&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="required-halyard-or-operator-version">Required Halyard or Operator version&lt;/h2>
&lt;p>To install, upgrade, or configure Armory 2.26.2, use one of the following tools:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Armory-extended Halyard 1.12 or later&lt;/p>
&lt;ul>
&lt;li>2.26.x is the last minor release that you can use Halyard to install or manage. Future releases require the Armory Operator. For more information, see &lt;a href="/continuous-deployment/feature-status/deprecations/halyard-deprecation/">Halyard Deprecation&lt;/a>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Armory Operator 1.2.6 or later&lt;/p>
&lt;p>For information about upgrading, Operator, see &lt;a href="/continuous-deployment/installation/armory-operator/op-manage-operator/#upgrade-the-operator">Upgrade the Operator&lt;/a>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="security">Security&lt;/h2>
&lt;p>Armory scans the codebase as we develop and release software. For information about CVE scans for this release, see the &lt;a href="https://support.armory.io/support?id=kb_article_view&amp;amp;sysparm_article=KB0010414">Support Portal&lt;/a>. Note that you must be logged in to the portal to see the information.&lt;/p>
&lt;h2 id="breaking-changes">Breaking changes&lt;/h2>
&lt;!-- Copy/paste from the previous version if there are recent ones. We can drop breaking changes after 3 minor versions. Add new ones from OSS and Armory. -->
&lt;h3 id="java-11011-tls-11-communication-failure">Java 11.0.11+, TLS 1.1 communication failure&lt;/h3>
&lt;blockquote>
&lt;p>This is an issue between Java 11.0.11 and TLSv1.1. Only installations using TLSv1.1 will encounter communication failures between services when those services upgrade to Java 11.0.11+.&lt;/p>
&lt;/blockquote>
&lt;p>TLSv1.1 was deprecated in March of 2020 and reached end-of-life in March of 2021. You should no longer be using TLSv1.1 for secure communication.&lt;/p>
&lt;p>Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java &lt;a href="https://www.oracle.com/java/technologies/javase/11all-relnotes.html#JDK-8202343">release notes&lt;/a> for details.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any services running under Java 11.0.11+ &lt;strong>and&lt;/strong> using TLSv1.1 will encounter a communication failure. For example, you will see a communication failure between an Armory CD service running under Java 11.0.1 and MySQL 5.7 if the MySQL driver is using TLSv1.1.&lt;/p>
&lt;p>The version of Java depends on the version used by the Docker container&amp;rsquo;s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which &lt;strong>does not&lt;/strong> use Java 11.0.11. However, Alpine 3.11 is end-of-life in November of 2021, and 3.12 is end-of-life in May of 2022. There is no guarantee that Java 11.0.11+ won’t be added to those container images by some other manner. &lt;strong>You should modify your TLSv1.1 environment now&lt;/strong> so you don&amp;rsquo;t encounter communication failures.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>&lt;/p>
&lt;p>Choose the option that best fits your environment.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Disable TLSv1.1 and enable TLSv1.2 (preferred):&lt;/p>
&lt;p>See Knowledge Base articles &lt;a href="https://support.armory.io/support?sys_kb_id=6d38e4bfdba47c1079f53ec8f49619c2&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=2&amp;amp;sysparm_tsqueryId=f93349771b3d385013d4fe6fdc4bcb35">Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used&lt;/a> and &lt;a href="https://support.armory.io/support?sys_kb_id=e06335f11b202c1013d4fe6fdc4bcbf8&amp;amp;id=kb_article_view&amp;amp;sysparm_rank=1&amp;amp;sysparm_tsqueryId=3b0341771b3d385013d4fe6fdc4bcb6a">How to fix TLS error &amp;ldquo;Reason: extension (5) should not be presented in certificate_request&amp;rdquo;&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Add a query parameter to the MySQL JDBC URIs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>?enabledTLSProtocols=TLSv1.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note that this only fixes communication between Armory CD and MySQL.&lt;/p>
&lt;p>See &lt;a href="https://support.armory.io/support?id=kb_article&amp;amp;sysparm_article=KB0010376">MySQL communication failure when using TSL1.1&lt;/a> for more information.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="kubernetes-version-for-deployment-targets">Kubernetes version for deployment targets&lt;/h3>
&lt;p>Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Any Kubernetes deployment target must run version 1.16 or higher. If you try to deploy to clusters older than 1.16, you may see errors like the following in the UI:&lt;/p>
&lt;figure>
&lt;img src="/images/release/226/bc-k8s-version-pre1-16.jpg"
alt="The UI shows an Unexpected Task Failure error." width="50%" height="50%"/>
&lt;/figure>
&lt;p>Additionally, errors like the following appear in the Clouddriver logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-04 21:17:16.032 WARN 1 --- [0.0-7002-exec-9] c.n.s.c.k.c.ManifestController : Failed to read manifest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>2021-05-05 14:29:09.653 WARN 1 --- [utionAction-538] c.n.s.c.k.c.a.KubernetesCachingAgent : kubernetes/KubernetesCoreCachingAgent[1/1]: Failure adding relationships for service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>If you are affected by this change, perform the following tasks to update your applications:&lt;/p>
&lt;ul>
&lt;li>Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.&lt;/li>
&lt;li>If you have manifest files using deprecated APIs, update them to use newer APIs. For more information on which APIs are deprecated in each Kubernetes version and how to migrate, see the &lt;a href="https://kubernetes.io/docs/reference/using-api/deprecation-guide/">Kubernetes Deprecated API Migration Guide&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h3 id="kubernetes-infrastructure-in-the-ui">Kubernetes infrastructure in the UI&lt;/h3>
&lt;p>Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.&lt;/p>
&lt;p>When you navigate to the &lt;strong>Infrastructure&lt;/strong> tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as &lt;strong>Create&lt;/strong> or &lt;strong>Delete&lt;/strong>), including Clusters, Load Balancers, and Firewalls, are no longer available.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>&lt;/p>
&lt;p>Users do not see these actions in the UI by default. You must configure the UI to display them if you want your users to be able to perform them through the UI.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>&lt;/p>
&lt;p>Whether or not these actions are available in the UI is controlled by the following property in &lt;code>settings-local.yml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = &amp;lt;boolean&amp;gt;;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting does not completely prevent users from modifying Kubernetes infrastructure through Armory CD. To do so, you must use the Policy Engine and write policies using the &lt;code>spinnaker.http.authz&lt;/code> package.&lt;/p>
&lt;p>If you use the Policy Engine to control which user roles can see the UI actions and be able to use them, you must set this property to &lt;code>true&lt;/code>. Setting the value to &lt;code>false&lt;/code> hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.&lt;/p>
&lt;p>This property affects Kubernetes infrastructure only. The behavior is slightly different depending on if the application has only the Kubernetes provider configured or Kubernetes and other providers, such as AWS.&lt;/p>
&lt;p>If the application only has the Kubernetes provider configured, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes the actions to be unavailable to users. This prevents users from manually creating and deleting Kubernetes infrastructure from the UI. The users can still view the infrastructure but cannot make changes through the UI.&lt;/li>
&lt;/ul>
&lt;p>If the application includes Kubernetes and other providers, the following applies:&lt;/p>
&lt;ul>
&lt;li>When set to &lt;code>true&lt;/code>, this property causes the UI to function as it did in previous releases. This allows people to manually create and delete Kubernetes infrastructure from the UI. Users can continue to select whether they want to create Kubernetes or other infrastructure in the UI.&lt;/li>
&lt;li>When set to &lt;code>false&lt;/code>, this property causes Kubernetes to be unavailable as an option when trying to modify infrastructure from the UI. Users can still make changes to infrastructure for the application from cloud providers, such as AWS, but not Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Introduced in&lt;/strong>: Armory CD 2.26.0&lt;/p>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;!-- Copy/paste known issues from the previous version if they're not fixed. Add new ones from OSS and Armory. If there aren't any issues, state that so readers don't think we forgot to fill out this section. -->
&lt;p>&lt;h4 id="bake-failures">Bake failures&lt;/h4>
&lt;p>The Packer version included with Rosco disregards package overrides that use the &lt;code>-var-file=&lt;/code> option. This may cause bakes to fail.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.22.2 and later&lt;/p>
&lt;h4 id="lambda-ui-issue">Lambda UI issue&lt;/h4>
&lt;p>There is a &lt;a href="https://github.com/spinnaker/spinnaker/issues/6271">UI bug&lt;/a> related to the caching agent that prevents Lambda functions from being displayed in the UI when there are no other clusters associated with the Application. In other words, in order for the function to show up in &amp;ldquo;Functions&amp;rdquo; tab, there needs to be a cluster (such as an AWS ASG/EC2 instance) deployed for that application.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.23.0 (1.23.0) - 2.26.2
&lt;strong>Fixed version&lt;/strong>: 2.26.3&lt;/p>
&lt;h4 id="spel-expressions-and-artifact-binding">SpEL expressions and artifact binding&lt;/h4>
&lt;p>There is an issue where it appears that SpEL expressions are not being evaluated properly in artifact declarations (such as container images) for events such as the Deploy Manifest stage. What is actually happening is that an artifact binding is overriding the image value.&lt;/p>
&lt;p>&lt;strong>Workaround&lt;/strong>:&lt;/p>
&lt;p>2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: &lt;code>enableArtifactBinding: false&lt;/code>.&lt;/p>
&lt;p>2.26.x or later: Change the artifact binding behavior in &lt;code>spec.spinnakerConfig.profiles.clouddriver&lt;/code> (Operator) or &lt;code>clouddriver-local.yml&lt;/code> (Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kubernetes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">artifact-binding&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">docker-image&lt;/span>: match-name-only
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This setting only binds the version when the tag is missing, such as &lt;code>image: nginx&lt;/code> without a version number.&lt;/p>
&lt;p>&lt;strong>Affected versions&lt;/strong>: 2.26.x and later&lt;/p>
&lt;/p>
&lt;h4 id="lambda-icon-missing">Lambda icon missing&lt;/h4>
&lt;p>In the left navigation of the UI, the icon for Lambda functions is missing. This does not affect any functionality.&lt;/p>
&lt;h2 id="highlighted-updates">Highlighted updates&lt;/h2>
&lt;!--
Each item category (such as UI) under here should be an h3 (###). List the following info that service owners should be able to provide:
- 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.
- Fixes to any known issues from previous versions that we have in release notes. These can all be grouped under a Fixed issues H3.
-->
&lt;h3 id="artifacts">Artifacts&lt;/h3>
&lt;p>This release includes the following improvements for git-based artifact providers:&lt;/p>
&lt;ul>
&lt;li>The GitRepo artifact provider now supports token files. Use the &lt;code>tokenFile:&lt;/code> (Operator) or &lt;code>--token-file&lt;/code> (Halyard) parameters to specify a token file.&lt;/li>
&lt;li>The GitHub, GitLab, and GitRepo artifact providers now support token files that are dynamically updated. The token file is automatically reloaded when Armory Continuous Deployment makes a request.&lt;/li>
&lt;/ul>
&lt;h3 id="aws-ecs">AWS ECS&lt;/h3>
&lt;p>Resolved an issue where the subnets and server groups were not being cached.&lt;/p>
&lt;h3 id="aws-lambda">AWS Lambda&lt;/h3>
&lt;blockquote>
&lt;p>These improvements require version 1.0.8 of the AWS Lambda Plugin in addition to Armory Continuous Deployment 2.26.2.&lt;/p>
&lt;/blockquote>
&lt;p>This release includes the following new features and improvements for the Lambda provider:&lt;/p>
&lt;ul>
&lt;li>Improved cache performance including fixes to cache issues found in 2.24.2&lt;/li>
&lt;li>New configuration properties that give you greater control over how Armory Continuous Deployment behaves when connection or cache issues occur.&lt;/li>
&lt;/ul>
&lt;p>Configure the following properties in your Operator manifest (&lt;code>spinnakerservice.yml&lt;/code> by default). Note that all these properties are optional and use the default if omitted.&lt;/p>
&lt;p>&lt;code>spec.spinnakerConfig.profiles.orca.spinnaker.&lt;/code>:&lt;/p>
&lt;ul>
&lt;li>&lt;code>cloudDriverReadTimeout&lt;/code>: Integer. The timeout (in seconds) when attempting to read from Lambda. (Defaults to 60 seconds.)&lt;/li>
&lt;li>&lt;code>cloudDriverConnectTimeout&lt;/code>: Integer. The connection timeout (in seconds) when trying to connect to AWS Lambda from Clouddriver. (Defaults to 15 seconds.)&lt;/li>
&lt;li>&lt;code>cacheRefreshRetryWaitTime&lt;/code>: Integer. The time (in seconds) to wait between retries when attempting to refresh the Lambda cache stored in Clouddriver. (Defaults to 15 seconds.)&lt;/li>
&lt;li>&lt;code>cacheOnDemandRetryWaitTime&lt;/code>: Integer. The time (in seconds) to wait between retries when attempting to refresh the cache on-demand. (Defaults to 15 seconds.)&lt;/li>
&lt;/ul>
&lt;p>For example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6272a4"># This example only shows the location of the properties. The rest of the manifest is omitted for brevity.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">orca&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">lambdaPluginConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cloudDriverReadTimeout&lt;/span>: &lt;span style="color:#bd93f9">30&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cloudDriverConnectTimeout&lt;/span>: &lt;span style="color:#bd93f9">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">cacheRefreshRetryWaitTime&lt;/span>: &lt;span style="color:#bd93f9">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">CacheOnDemandRetryWaitTime&lt;/span>: &lt;span style="color:#bd93f9">10&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>spec.spinnakerConfig.profiles.clouddriver.aws.lambda.&lt;/code>:&lt;/p>
&lt;ul>
&lt;li>&lt;code>retry.timeout&lt;/code>: Integer. The time (in minutes) that Clouddriver will wait before timing out when attempting to connect to the Lambda client. (Defaults to 15 minutes.)&lt;/li>
&lt;li>&lt;code>concurrency.threads&lt;/code>: Integer. The maximum number of threads to use for calls to the Lambda client. (Defaults to 10 threads.)&lt;/li>
&lt;/ul>
&lt;p>For example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6272a4"># This example only shows the location of the properties. The rest of the manifest is omitted for brevity.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">clouddriver&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">aws&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">lambda&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">enabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">retry&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">timeout&lt;/span>: &lt;span style="color:#bd93f9">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">concurrency&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">threads&lt;/span>: &lt;span style="color:#bd93f9">5&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="pipelines-as-code">Pipelines-as-Code&lt;/h3>
&lt;h4 id="strict-json-validation">Strict JSON Validation&lt;/h4>
&lt;p>Pipelines-as-Code (PaC) will now attempt a strict JSON validation of template modules and pipelines to catch certain syntactical errors sooner. This behavior may break existing users that make heavy use of template language constructs. If you find that behavior has changed and need to revert to the previous parsing behavior, add the &lt;code>jsonValidationDisabled&lt;/code> config to your PaC profile:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spinnakerConfig&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">profiles&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">dinghy&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">jsonValidationDisabled&lt;/span>: &lt;span style="color:#ff79c6">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="event-notifications-honor-global-config">Event notifications honor global config&lt;/h4>
&lt;p>PaC will now honor configurations that define a self-hosted GitHub Enterprise instance when sending GitHub notifications. No configuration change is necessary for this fix to take effect.&lt;/p>
&lt;h3 id="spinnaker-community-contributions">Spinnaker Community Contributions&lt;/h3>
&lt;p>There have also been numerous enhancements, fixes, and features across all of Spinnaker&amp;rsquo;s other services. See the
&lt;a href="https://www.spinnaker.io/changelogs/1.26.6-changelog/">Spinnaker v1.26.6&lt;/a> changelog for details.&lt;/p>
&lt;h2 id="detailed-updates">Detailed updates&lt;/h2>
&lt;h3 id="bill-of-materials-bom">Bill Of Materials (BOM)&lt;/h3>
&lt;p>Here&amp;rsquo;s the BOM for this version.&lt;/p>
&lt;details>&lt;summary>Expand&lt;/summary>
&lt;pre class="highlight">
&lt;code>version: 2.26.2
timestamp: "2021-09-02 18:30:45"
services:
clouddriver:
commit: 942f74be6aa77ebd34f9183437171848e3b9fd35
version: 2.26.19
deck:
commit: a2296787ab03efc53c85d03cbf8eecddedab6094
version: 2.26.9
dinghy:
commit: 0796be13e88a77c72d94d4e0538a4fab152366b8
version: 2.26.10
echo:
commit: b2f76d93f06a0434987fb00daa77a22396c54658
version: 2.26.10
fiat:
commit: 6aba766ef74c6fe186d7f047095a775936bef71f
version: 2.26.11
front50:
commit: 8bdd585434b9bde9834bf580d96fdd42d12dc933
version: 2.26.12
gate:
commit: 1d66c8a302ed4bf7ad07ce3944b7d7e43baae0a0
version: 2.26.10
igor:
commit: 4f76b327913693263e18a670dc8782d77bbc8ee1
version: 2.26.10
kayenta:
commit: 4f668d1297a5d205d516667c1af6902d0d9f380f
version: 2.26.11
monitoring-daemon:
version: 2.26.0
monitoring-third-party:
version: 2.26.0
orca:
commit: 6b547ff4ac81742d1c4cb7fab713a16f6deefd34
version: 2.26.16
rosco:
commit: 1dfc60f1f70ccdadc2cc03ff9f27b5ca39bb9c39
version: 2.26.14
terraformer:
commit: d20745f6ac1fb87b876dbd255b0b26004fb0341a
version: 2.26.12
dependencies:
redis:
version: 2:2.8.4-2
artifactSources:
dockerRegistry: docker.io/armory
&lt;/code>
&lt;/pre>
&lt;/details>
&lt;h3 id="armory">Armory&lt;/h3>
&lt;h4 id="armory-fiat---2261022611">Armory Fiat - 2.26.10&amp;hellip;2.26.11&lt;/h4>
&lt;h4 id="armory-front50---2261122612">Armory Front50 - 2.26.11&amp;hellip;2.26.12&lt;/h4>
&lt;h4 id="terraformer---226922612">Terraformer™ - 2.26.9&amp;hellip;2.26.12&lt;/h4>
&lt;h4 id="armory-clouddriver---2261222619">Armory Clouddriver - 2.26.12&amp;hellip;2.26.19&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base service version to clouddriver:2021.07.28.19.49.01.release-1.26.x (#381)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.07.28.23.39.00.release-1.26.x (#382)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.07.29.00.03.42.release-1.26.x (#383)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.07.29.00.21.10.release-1.26.x (#384)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.08.17.07.55.22.release-1.26.x (#396)&lt;/li>
&lt;li>chore(cd): update base service version to clouddriver:2021.08.18.19.46.18.release-1.26.x (#397)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-deck---22672269">Armory Deck - 2.26.7&amp;hellip;2.26.9&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base deck version to 2021.0.0-20210820171135.release-1.26.x (#1112)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-rosco---2261322614">Armory Rosco - 2.26.13&amp;hellip;2.26.14&lt;/h4>
&lt;h4 id="armory-igor---226922610">Armory Igor - 2.26.9&amp;hellip;2.26.10&lt;/h4>
&lt;h4 id="armory-gate---226922610">Armory Gate - 2.26.9&amp;hellip;2.26.10&lt;/h4>
&lt;h4 id="armory-kayenta---2261022611">Armory Kayenta - 2.26.10&amp;hellip;2.26.11&lt;/h4>
&lt;h4 id="dinghy---226622610">Dinghy™ - 2.26.6&amp;hellip;2.26.10&lt;/h4>
&lt;ul>
&lt;li>fix(notif): honor github endpoint in notifier constructor (backport #447) (#448)&lt;/li>
&lt;li>fix(build): add dinghy to stackfile (#449)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-orca---2261522616">Armory Orca - 2.26.15&amp;hellip;2.26.16&lt;/h4>
&lt;ul>
&lt;li>chore(cd): update base orca version to 2021.08.17.08.55.02.release-1.26.x (#354)&lt;/li>
&lt;/ul>
&lt;h4 id="armory-echo---226922610">Armory Echo - 2.26.9&amp;hellip;2.26.10&lt;/h4></description></item></channel></rss>