v2.26.4 Armory Continuous Deployment Release (Spinnaker™ v1.26.6)
2021/12/15 Release Notes
Note: If you’re experiencing production issues after upgrading Armory Continuous Deployment, rollback to a previous working version and please report issues to http://go.armory.io/support.
Required Halyard or Operator version
To install, upgrade, or configure Armory 2.26.4, use one of the following tools:
- Armory-extended Halyard 1.12 or later
- 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 Halyard Deprecation.
- Armory Operator 1.2.6 or later For information about upgrading, Operator, see Upgrade the Operator.
Security
Armory scans the codebase as we develop and release software. For information about CVE scans for this release, see the Support Portal. Note that you must be logged in to the portal to see the information.
This release includes a security fix. For more information, see the Critical Notification that Armory’s Support Team sent out on 14 December 2021, contact your Armory account rep, or see this (login required) Support article: https://support.armory.io/support?id=kb_article_view&sysparm_article=KB0010520.
Breaking changes
Java 11.0.11+, TLS 1.1 communication failure
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+.
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.
Oracle released Java 11.0.11 in April of 2021. Java 11.0.11 dropped support for TLSv1.1. See the Java release notes for details.
Impact
Any services running under Java 11.0.11+ and 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.
The version of Java depends on the version used by the Docker container’s OS. Most Armory CD services are using Alpine 3.11 or 3.12, which does not 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. You should modify your TLSv1.1 environment now so you don’t encounter communication failures.
Fix
Choose the option that best fits your environment.
Disable TLSv1.1 and enable TLSv1.2 (preferred):
See Knowledge Base articles Disabling TLS 1.1 in Spinnaker and Specifying the Protocols to be used and How to fix TLS error “Reason: extension (5) should not be presented in certificate_request”.
Add a query parameter to the MySQL JDBC URIs:
?enabledTLSProtocols=TLSv1.2
Note that this only fixes communication between Armory CD and MySQL.
See MySQL communication failure when using TSL1.1 for more information.
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
Known issues
Bake failures
The Packer version included with Rosco disregards package overrides that use the -var-file=
option. This may cause bakes to fail.
Affected versions: 2.22.2 and later
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.
Highlighted updates
This release includes a security fix. For more information, see the Critical Notification that Armory’s Support Team sent out on 14 December 2021, contact your Armory account rep, or see this (login required) Support article: https://support.armory.io/support?id=kb_article_view&sysparm_article=KB0010520.
Spinnaker Community Contributions
There have also been numerous enhancements, fixes, and features across all of Spinnaker’s other services. See the Spinnaker v1.26.6 changelog for details.
Detailed updates
Bill Of Materials (BOM)
Here’s the BOM for this version.
Expand
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
Armory
Armory Igor - 2.26.11…2.26.12
- chore(build): bump armory-commons 3.9.6 (backport #260) (#262)
Armory Clouddriver - 2.26.20…2.26.24
- chore(build): Autobump armory-commons: 3.9.6 (backport #364) (#458)
Armory Kayenta - 2.26.12…2.26.13
- chore(build): remove platform build (#279)
- chore(build): Autobump armory-commons: 3.9.6 (backport #268) (#281)
Armory Echo - 2.26.11…2.26.12
- chore(build): Autobump armory-commons: 3.9.6 (backport #351) (#372)
Armory Deck - 2.26.10…2.26.11
Armory Orca - 2.26.17…2.26.18
- chore(build): remove platform build (#364)
- chore(build): Autobump armory-commons: 3.9.6 (backport #335) (#368)
Terraformer™ - 2.26.13…2.26.14
Armory Gate - 2.26.11…2.26.12
- chore(build): Autobump armory-commons: 3.9.6 (backport #305) (#329)
- chore(cd): update base service version to gate:2021.12.14.23.45.08.release-1.26.x (#356)
Dinghy™ - 2.26.11…2.26.12
Armory Rosco - 2.26.15…2.26.18
- chore(build): Autobump armory-commons: 3.9.6 (backport #286) (#310)
Armory Fiat - 2.26.12…2.26.13
- chore(build): Autobump armory-commons: 3.9.6 (backport #232) (#257)
- chore(cd): update base service version to fiat:2021.12.14.22.49.55.release-1.26.x (#283)
Armory Front50 - 2.26.13…2.26.14
- chore(build): remove platform build (#312)
- chore(build): Autobump armory-commons: 3.9.6 (backport #285) (#318)
Feedback
Was this page helpful?
Thank you for letting us know!
Sorry to hear that. Please tell us how we can improve.
Last modified March 3, 2023: (22c29bf4)