v2.27.8 Armory Continuous Deployment Release (Spinnaker™ v1.27.0)
2023/04/18 Release Notes
Note: If you’re experiencing production issues after upgrading Spinnaker, rollback to a previous working version and please report issues to http://go.armory.io/support.
Required Armory Operator version
To install, upgrade, or configure Armory 2.27.8, use Armory Operator 1.70 or later.
Security
Armory scans the codebase as we develop and release software. Contact your Armory account representative for information about CVE scans for this release.
Breaking changes
Kubernetes version for deployment targets
Armory CD 2.26 no longer supports Kubernetes deployment targets prior to version 1.16.
Impact
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:
Additionally, errors like the following appear in the Clouddriver logs:
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
com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.status(KubernetesReplicaSetHandler.java:98) ~[clouddriver-kubernetes.jar:na]
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
com.netflix.spinnaker.clouddriver.kubernetes.op.handler.UnsupportedVersionException: No replicaSet is supported at api version extensions/v1beta1
at com.netflix.spinnaker.clouddriver.kubernetes.op.handler.KubernetesReplicaSetHandler.getPodTemplateLabels(KubernetesReplicaSetHandler.java:167)
Workaround
If you are affected by this change, perform the following tasks to update your applications:
- Upgrade the Kubernetes clusters that you are trying to deploy to. They must run version 1.16 or higher.
- 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 Kubernetes Deprecated API Migration Guide.
Introduced in: Armory CD 2.26.0
Kubernetes infrastructure in the UI
Starting in 2.26, the UI has been updated to more closely follow immutable infrastructure principles.
When you navigate to the Infrastructure tab in the UI for an application that has the Kubernetes provider configured, actions that change the Kubernetes infrastructure (such as Create or Delete), including Clusters, Load Balancers, and Firewalls, are no longer available.
Impact
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.
Workaround
Whether or not these actions are available in the UI is controlled by the following property in settings-local.yml
:
window.spinnakerSettings.kubernetesAdHocInfraWritesEnabled = <boolean>;
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 spinnaker.http.authz
package.
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 true
. Setting the value to false
hides the buttons for all users regardless of whether you grant specific users access to the buttons through the Policy Engine.
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.
If the application only has the Kubernetes provider configured, the following applies:
- When set to
true
, 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. - When set to
false
, 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.
If the application includes Kubernetes and other providers, the following applies:
- When set to
true
, 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. - When set to
false
, 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.
Introduced in: Armory CD 2.26.0
Halyard deprecation
Halyard is no longer supported for installing Armory Continuous Deployment 2.27.0 and later. Use the Operator. For more information, see Halyard Deprecation.
Due to changes in the underlying services, older versions of some plugins may not work with Armory Continuous Deployment 2.27.x or later.
The following table lists the plugins and their required minimum version:
Plugin | Version |
---|---|
Armory Agent for Kubernetes Clouddriver Plugin | 0.10.0 |
App Name | 0.2.0 |
AWS Lambda | 1.0.9 |
Evaluate Artifacts | 0.1.1 |
External Accounts | 0.2.0 |
Observability Plugin | 1.3.1 |
Policy Engine | 0.2.1-rc |
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.
Known issues
Dinghy fails to start with SQL enabled
Known bug with the java version
enabledTLSProtocols=TLSv1.2
needs to be added as an argument on newer JVMs.
SpEL expressions and artifact binding
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.
Workaround:
2.27.x or later: Disable artifact binding by adding the following parameter to the stage JSON: enableArtifactBinding: false
.
2.26.x or later: Change the artifact binding behavior in spec.spinnakerConfig.profiles.clouddriver
(Operator) or clouddriver-local.yml
(Halyard) to the following, which causes artifacts to only bind the version when the tag is missing:
kubernetes:
artifact-binding:
docker-image: match-name-only
This setting only binds the version when the tag is missing, such as image: nginx
without a version number.
Affected versions: 2.26.x and later
Pipelines-as-Code GitHub comments
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 dinghyfiles
gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.
Affected versions: 2.26.x and later
Workaround:
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.
For information about about how to disable this functionality, see GitHub Notifications.
Secrets do not work with Spring Cloud Config
If you enable Spring Cloud Config all the properties (e.g. Docker) using Secrets are not resolved when Spring Cloud tries to refresh.
Affected versions:
- 2.26.x and later
Known Affected providers in Clouddriver:
- Kubernetes
- Cloudfoundry
- Docker
Workaround:
Do not use secrets for properties that are annotated with @RefreshScope
.
Pipelines-as-Code GitHub comments
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 dinghyfiles
gets changed. These comments may prevent the GitHub UI from loading or related API calls may lead to rate limiting.
Affected versions: Armory CD 2.26.x and later
Workaround:
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.
For information about about how to disable this functionality, see GitHub Notifications.
Early Access Features
Dynamic Rollback Timeout
To make the dynamic timeout available, you need to enable the feature flag in Orca and Deck.
On the Orca side, the feature flag overrides the default value rollback timeout - 5min - with a UI input from the user.
{
"yaml,"
"orca.yml,"
"rollback:"
"timeout:"
"enabled: true"
}
On the Deck side, the feature flag enhances the Rollback Cluster stage UI with timeout input.
window.spinnakerSettings.feature.dynamicRollbackTimeout = true;
The default is used if there is no value set in the UI.
Pipelines as Code multi-branch enhancement
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 Multiple branches for how to enable and configure this feature.
Automatically Cancel Jenkins Jobs
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 documentation.
Fixes
- Clouddriver: Two credentials with same accountId confuses EcrImageProvider with different regions
- Clouddriver: Renamed a query parameter for template tags
- Alpine updates for Deck, Dinghy, and Terraformer
Spinnaker Community Contributions
There have also been numerous enhancements, fixes, and features across all of Spinnaker’s other services. See the Spinnaker v1.27.0 changelog for details.
Detailed updates
Bill Of Materials (BOM)
Here’s the BOM for this version.
Expand
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
Armory
Armory Fiat - 2.27.7…2.27.8
- chore(cd): update base service version to fiat:2023.02.28.17.42.01.release-1.27.x (#439)
- chore(cd): update base service version to fiat:2023.03.16.17.57.42.release-1.27.x (#447)
Armory Igor - 2.27.7…2.27.8
- chore(cd): update base service version to igor:2023.02.28.17.45.14.release-1.27.x (#417)
- chore(cd): update base service version to igor:2023.02.28.19.16.26.release-1.27.x (#418)
Armory Gate - 2.27.7…2.27.8
- chore(cd): update base service version to gate:2023.02.28.17.43.36.release-1.27.x (#520)
- chore(cd): update base service version to gate:2023.02.28.19.18.24.release-1.27.x (#521)
Armory Orca - 2.27.7…2.27.8
- chore(cd): update base orca version to 2023.02.28.17.51.52.release-1.27.x (#594)
- chore(cd): update base orca version to 2023.02.28.19.23.37.release-1.27.x (#595)
Armory Kayenta - 2.27.7…2.27.8
- chore(cd): update base service version to kayenta:2023.02.28.21.15.17.release-1.27.x (#392)
Terraformer™ - 2.27.7…2.27.8
- chore(alpine): Update alpine version (backport #497) (#498)
Armory Rosco - 2.27.7…2.27.8
- chore(cd): update base service version to rosco:2023.02.28.17.41.47.release-1.27.x (#498)
Armory Deck - 2.27.7…2.27.8
- chore(alpine): Upgrade alpine version (backport #1302) (#1304)
Armory Clouddriver - 2.27.7…2.27.8
- chore(cd): update base service version to clouddriver:2023.02.22.23.00.31.release-1.27.x (#805)
- chore(cd): update base service version to clouddriver:2023.02.28.18.06.11.release-1.27.x (#809)
- chore(cd): update base service version to clouddriver:2023.02.28.19.32.28.release-1.27.x (#811)
- chore(cd): update base service version to clouddriver:2023.03.21.20.22.35.release-1.27.x (#822)
Armory Echo - 2.27.7…2.27.8
- chore(cd): update base service version to echo:2023.02.28.17.42.44.release-1.27.x (#540)
- chore(cd): update base service version to echo:2023.02.28.19.16.55.release-1.27.x (#541)
Dinghy™ - 2.27.7…2.27.8
- chore(dependencies): bumped oss dinghy version to 20230201103309-a73a68c80965 (#479)
- chore(alpine): Upgrade alpine version (backport #481) (#483)
Armory Front50 - 2.27.7…2.27.8
Spinnaker
Spinnaker Fiat - 1.27.0
- chore(dependencies): Autobump korkVersion (#1024)
- fix(logs): Redacted secret data in logs. (#1029) (#1032)
Spinnaker Igor - 1.27.0
- chore(dependencies): Autobump korkVersion (#1091)
- chore(dependencies): Autobump fiatVersion (#1092)
Spinnaker Gate - 1.27.0
- chore(dependencies): Autobump korkVersion (#1621)
- chore(dependencies): Autobump fiatVersion (#1622)
Spinnaker Orca - 1.27.0
- chore(dependencies): Autobump korkVersion (#4401)
- chore(dependencies): Autobump fiatVersion (#4402)
Spinnaker Kayenta - 1.27.0
- chore(dependencies): Autobump orcaVersion (#934)
Spinnaker Rosco - 1.27.0
- chore(dependencies): Autobump korkVersion (#957)
Spinnaker Deck - 1.27.0
Spinnaker Clouddriver - 1.27.0
- fix(ecr): Two credentials with same accountId confuses EcrImageProvider with different regions (#5885) (#5886)
- chore(dependencies): Autobump korkVersion (#5894)
- chore(dependencies): Autobump fiatVersion (#5895)
- fix(core): Renamed a query parameter for template tags (#5906) (#5907)
Spinnaker Echo - 1.27.0
- chore(dependencies): Autobump korkVersion (#1259)
- chore(dependencies): Autobump fiatVersion (#1260)
Spinnaker Front50 - 1.27.0
Feedback
Was this page helpful?
Thank you for letting us know!
Sorry to hear that. Please tell us how we can improve.
Last modified December 6, 2023: (a0529dfe)