Delegate release notes
These release notes describe recent changes to Harness Delegate.
- Progressive deployment: Harness deploys changes to Harness SaaS clusters on a progressive basis. This means that the features described in these release notes may not be immediately available in your cluster. To identify the cluster that hosts your account, go to your Account Overview page in Harness. In the new UI, go to Account Settings, Account Details, General, Account Details, and then Platform Service Versions.
- Security advisories: Harness publishes security advisories for every release. Go to the Harness Trust Center to request access to the security advisories.
- More release notes: Go to Harness Release Notes to explore all Harness release notes, including module, delegate, Self-Managed Enterprise Edition, and FirstGen release notes.
Deprecation notice
Kustomize 3.4.5
To safeguard your operations and protect against potential security vulnerabilities, Harness deprecated the Kustomize 3.4.5 binary from delegates with an immutable image type (image tag yy.mm.verno
). For information on delegate types, go to Delegate image types.
In place of Kustomize, Harness now uses the kubectl
binary to conduct Kustomize operations. Recent enhancements (versions 1.14 and higher) have made the kubectl
binary fully capable of supporting Kustomize operations. For more information, go to Kustomization in the Kubernetes documentation.
If your delegate is set to auto-upgrade, Harness automatically removed the binary from your delegate. This will result in pipeline and workflow failures for services that use Kustomize 3.4.5.
If your development team still uses Kustomize 3.4.5, you can reintroduce the binary on the delegate. Harness is not responsible for any vulnerabilities or risks that might result from reintroducing the Kustomize 3.4.5 binary.
For more information about updating your delegates to reintroduce Kustomize 3.4.5, go to:
Contact Harness Support if you have any questions.
This is an End of Support (EOS) notice for the Delegate-Legacy image type. This image type reached End of Support (EOS) as of January 31, 2024.
End of Support means the following:
- Harness Support will no longer accept support requests for the Delegate-Legacy image type in both Harness FirstGen and Harness NextGen (including Harness Self-Managed Enterprise Edition (SMP)).
- Security fixes will still be addressed.
- Product defects will not be addressed.
Harness has updated the delegate expiration policy to 6 months with a 2-month EOL upgrade period.
Six months after a delegate image is released, the delegate reaches End of Support (EOS). Eight months after a delegate image is released, the delegate is End of Life (EOL). Delegates expire if not upgraded 6 months after the image is released. If delegates are past their EOS date, Harness does not support them. Expired delegates might not work as intended. For issues with expired delegates, Harness Support will request that you upgrade your delegate(s).
For more information, go to Delegate expiration support policy.
June 2024
Version 24.06.83203
- Delegate logs were displaying entire bearer tokens when using the IDP Kubernetes connector. Added log sanitization to delegate logs to mask commonly used secret patterns. These patterns can be extended per-use-case by adding them to the
/opt/harness-delegate/sanitize-patterns.txt
file inside the delegate. (PL-50889, ZD-64069)
Version 24.06.83004
Hotfix
- Secrets were being printed in plain text when using a custom secret manager, exposing sensitive information. Implemented masking of the
script
field in the custom secret manager to prevent logging of secrets used within the script. (PL-51535, ZD-64069)
Version 24.06.83003
Hotfix
- Resolved an issue with missing labels for Karpenter-managed nodes. (CCM-18139)
May 2024
Version 24.05.82711
Hotfix
- Resolved an issue where delegates created Kubernetes services when starting up. (PL-51548, PL-51550, ZD-64345)
Version 24.05.83001
New features and enhancements
- Added support for proxies via Secure Connect for GitHub App connectors. (CI-12130, ZD-61883)
Version 24.05.82904
Hotfix
- Tanzu steps will resolve the PCF CLI plugins path by checking the
HOME
environment variable. (CDS-95794, ZD-61882)
Version 24.05.82205
Hotfix
- Delegates will now include memory resource statistics in their logs, providing valuable additional insight for troubleshooting memory-related issues. (PL-51027)
Version 24.05.82903
Hotfix
- Resolved an issue with the Google artifact registry trigger of a pipeline when using a GCP connector with OIDC authentication. (CDS-96627, ZD-62986)
Version 24.05.82902
Hotfix
- Resolved an issue with the delegate health endpoint, enabling the delegate to perform several websocket reconnection attempts before Kubernetes evicts the pod. (PL-50540, ZD-59551, ZD-62207)
Version 24.04.82901
Fixed issues
-
Delegates with mTLS enabled were able to send a heartbeat to Harness Manager despite being configured with a non-agent endpoint. Resolved this by ensuring the
isNg
flag is correctly propagated when delegates send heartbeats to Harness Manager. (PL-48891, ZD-60974) -
Intermittent socket timeout exceptions occurred in running pipelines due to secret decryption failures, triggering unnecessary re-broadcasts on the delegate side. Resolved the issue of intermittent secret decryption failures within pipelines, ensuring stable and uninterrupted pipeline execution. (PL-47940, ZD-58006)
-
Local login was failing for users assigned admin permissions via a user group. The method to verify if a user is an account admin only considered direct user assignments and did not account for user group roles. Revised the validation process to include both user and user group assignments when checking for admin status. Now, to be recognized as an admin, users must have the specific role assignments outlined below; assigning the
_account_admin
role alone is no longer sufficient for admin rights. (PL-47632)- Role:
_account_admin
. - Resource-group:
_all_resources_including_child_scopes
,_all_account_level_resources
.
- Role:
April 2024
Version 24.04.82804
Fixed issues
-
The delegate task rejection metric was designed to reflect tasks rejected by a delegate due to system-related reasons (such as lack of resources or exceeding the limit of parallel tasks) but did not include specific details like
taskType
ortask ID
. We have enhanced the task rejection metrics by addingtaskType
andtaskId
labels. (PL-48488) -
Users were being logged out when testing a Git connector with invalid credentials due to the Git client's 401 response being propagated to the UI. We have implemented error handling to convert a 401 response from the test connection step to a 400, while preserving the original error message, preventing unintended user logouts. (PL-47753, ZD-58629)
-
2FA reset emails failed to display the QR code properly due to the recent deprecation of Google APIs. The method for generating QR codes has been updated, resolving the issue and ensuring QR codes are now correctly included in 2FA reset emails. (PL-48980, ZD-61314, ZD-61420, ZD-61486)
Version 24.04.82707
New features and enhancements
-
Docker delegate images are no longer pushed to
app.harness.io/registry
. To pull images, usegcr.io/gcr-prod/harness/delegate:<IMAGE_TAG>
. (PL-46947) -
We've added an optional registry mirror configuration for delegate
upgrader
. If you use Docker pull through registry cache (https://docs.docker.com/docker-hub/mirror/
), you can configureupgrader
to use an optional registry mirror for your delegate images. For more information, go to Configure an optional registry mirror for delegate images. (PL-47920, ZD-59005)
Fixed issues
-
Slack channel notifications failed due to an error related to explicitly setting the Host header as
hooks.slack.com
. We have removed the explicit Host header setting to support both Slack-specific webhook URLs and regular URLs, resolving the issue. (PL-47914) -
In SCIM, creating a new user with special characters in their name failed, preventing the user from being added to Harness and resulting in discrepancies in user group membership between the Identity Provider and Harness. The name of a user will be sanitized if it does not follow Harness naming conventions during user addition flows. (PL-47614)
-
Builds triggered by Bitbucket Server push events had incorrect date information in the build history. This issue occurred due to missing date information in the
commits
object returned by the Bitbucket Server API. (CI-11556, ZD-58798) -
Delegate utilization metrics failed to decrease below a set threshold, even when rejecting all tasks. To solve this, memory-based threshold checks have been removed from the delegate due to functional discrepancies. (PL-48781, ZD-60713)
Version 24.04.82705
Hotfix
- Added support for network load balancers in ASG Blue Green deployments. (CDS-95510, ZD-60182)
Version 24.04.82603
Hotfix
- Added additional retries on failures when verifying Docker images during CD deployments. (CDS-93180, ZD-58933, ZD-59370, ZD-60138)
March 2024
Version 24.03.82601
Hotfix
- Added multiple log lines for debugging an issue. (CDS-93910)
Version 24.03.82600
New features and enhancements
- In the recent update to
ng-manager
version 1.28.0, we have implemented enhancements to the validation mechanism for secret identifiers. We now provide more flexibility and precision in validating secret identifiers, particularly regarding hyphen usage. While previously disallowed, secret identifiers can now contain hyphens. However, there are specific rules governing their usage. Hyphens are now permitted anywhere in the secret identifier, including at the end of the string. The updated validation allows for multiple occurrences of hyphens within the secret identifier. Secret identifiers cannot start with a hyphen, following best practices. (PL-46959)
Fixed issues
-
The delegate metrics endpoint
/api/metrics
had its content type set asapplication/json
, causing scraping issues with certain versions of Prometheus due to content type incompatibility. Attempts to switch to text/plain resulted in a 406 response code. We have revised the endpoint to deliver metrics inplainText
. You can now specify the desired content formatplainText
orJSON
by setting the "Accept" header in your request, ensuring broader compatibility with different Prometheus versions. (PL-46976, ZD-57489) -
Fixed an issue where Bitbucket connectors with API access enabled sometimes became unresponsive. (CDS-93298, ZD-56619, ZD-58844, ZD-59381)
-
Setting up a monitored service using cloud metrics from the Google Cloud Operations health source was unable to list dashboards to build query. (CDS-92355)
Version 24.03.82505
Hotfix
- The
ap-south-2
region is now supported for use with AWS Secrets Manager. (CDS-92541, ZD-58686)
Version 24.03.82502
New features and enhancements
-
Introduced separate environment variables to manage delegate resource thresholds for CPU and Memory when dynamic handling is enabled. Use
CPU_USAGE_THRESHOLD
for CPU control (default: no limit). UseMEMORY_USAGE_THRESHOLD
for memory control (default: 80%). If you are usingRESOURCE_USAGE_THRESHOLD
(deprecated), it exclusively controls the memory threshold. (PL-47746) -
OPA policy enforcement has been introduced to three new entities: Service Accounts, API Keys, and Tokens. For Service Accounts and API Keys, naming convention policies are enforced, while for Tokens, Time-To-Live (TTL) policies are enforced. These enforcement mechanisms are seamlessly integrated into both create and update operations, ensuring adherence to predefined standards during the
onSave
action. (PL-46778) -
Support added to enable OPA policy for naming convention enforcement while creating or updating a service account. (PL-46777)
Fixed issues
-
Attempts to use the
harness_platform_user
resource to create or delete users resulted in an error. The message "Request failed as you have an older version of an entity, please reload the page and try again" was displayed and the Terraform state went out of sync with Harness. This issue has been fixed. (PL-39870, ZD-47107) -
Continuous Verification for Google Cloud Operations logged error for the
resourceName
field. This issue is fixed by changing the identifier in the request body fromprojectId
toresourceName
for data collection tasks as mentioned in the Google API documentation. (CDS-89441)
Version 24.03.82408
Hotfix
-
Fixed an infinite loop issue in the delegate SCM service. (PL-48043)
-
Added support for GitOps pipeline steps with Harness Code and bumped the SCM version to
d78720584
. (CODE-1572)
Version 24.02.82406
Hotfix
- Previously, during the creation of rollback data, AWS Lambda would use string values for function versions. However, it now considers the integer values of function versions. This means that if you have deployed function versions
{8,9,10}
and you are currently deploying version{11}
, the previous rollback version will be{10}
, instead of{9}
. (CDS-92300)
February 2024
Version 24.02.82404
Hotfix
- Updated the behavior of the Scale step. After the Scale step is executed, all workload pods are published as new pods, as the scale step can be used to scale pods and change traffic on the pods. (CDS-91534, ZD-54319)
Version 24.02.82402
Fixed issues
-
The retry interval for attempting to create or read secrets from HashiCorp Vault was fixed at 1 second after each failure. (PL-46595, ZD-57053)
The retry interval has now been modified to increase by a factor of 2 times the number of failures. Consequently, after the first failure, the second attempt will occur after a 2-second delay, and the third attempt will be made after a 4-second delay, enhancing the robustness of secret management operations.
-
When linking an SSO group with over 1,000 users, only 1,000 users were syncing in Harness due to a limitation with LDAP groups syncing. (PL-46492, ZD-56741)
Implemented LDAP to perform paginated queries by default for large groups, with a fallback to non-paginated calls, ensuring complete user synchronization.
-
Pipelines were failing due to errors related to the inability to acquire delegate tasks. (PL-42600, ZD-54025, ZD-54324)
The logic for calculating CPU and Memory usage has been improved, specifically for scenarios utilizing the dynamic task request handling feature in delegates, enhancing the reliability of task allocation and pipeline execution.
-
A null pointer exception was occurring for enforcement limit accounts, triggered by the introduction of the startup plan. (GTM-3247)
This issue has been resolved by implementing an appropriate error message code for enforcement limit accounts when customers reach their enforcement limits, eliminating the null pointer exception.
-
Users were unable to create custom queries as a heath source for monitored services. (CDS-91181, ZD-57562)
This issue is fixed by making the service instance field configurable for users.
Version 24.02.82309
Hotfix
- We identified and resolved a high memory and CPU utilization issue in our delegate pods, traced back to improper handling of Chronicle libraries. The fix involved ensuring the StoreTailer objects are closed after each use, significantly improving system performance and stability. (CCM-16052)
Version 24.02.82308
Hotfix
- Upgraded the SDK for the ASG swimlane. (CDS-91937)
Version 24.02.82306
Hotfix
- Added default values for minimum healthy percentage as 90 and maximum healthy percentage as 110 for the instance refresh operation that is performed during ASG Rolling deployments to prevent service downtime. (CDS-91335, ZD-57686)
Version 24.02.82304
Hotfix
- Fixed an issue in ECS Blue Green deployments where the ECS service was deleted after the first or second deployment. (CDS-91499, ZD-57892)
Version 24.02.82303
Hotfix
- Fixed an issue for GitHub connectors when Fetch Files failed because of an NPE error. (CDS-91176, ZD-57550)
Version 24.02.82302
Behavior changes
- In the blue/green stage scale down step, we used to scale down deployments, statefulsets, daemonsets, deploymentConfig and delete HPA, and PDB resources. During scale down, we updated the field
replicas
to 0. In Kubernetes, if HPA is configured it is not mandatory to define replicas. So when another deployment happens and we apply the same old deployments manifest it does not update the replicas field and it remains set to 0. This results in no deployment even though the pipeline is successful. This issue has not been resolved. Instead, we scale down only DaemonSets and delete deployment, deploymentConfig, HPA, PDB, and statefulset resources. (CDS-88999, ZD-56645)
Fixed issues
-
Addressed an issue where pod deletion didn't trim excess whitespace in namespace names, which could prevent pod cleanup. (CI-10636, ZD-54688)
-
Fixed an issue where pipelines could fail when triggered by BitBucket PRs with more than 25 commits. This error was due to an infinite loop situation that could occur when there was pagination in the BitBucket List PR Commits API payload. (CI-11220, ZD-57421)
-
Harness CI no longer stores clone tokens for public GitHub repositories as environment variables, because a token isn't needed to clone public repos. (CI-10938)
-
The error message text for the
no eligible delegates present
error now includes additional potential causes. (CI-10933, ZD-55977)
January 2024
Version 24.01.82202
Fixed issues
-
The Azure endpoints were not being set according to the Azure environment selected, which caused the Azure connectors to function properly only for the Azure public cloud but not for other Azure cloud variations such as Azure Gov, Azure China, and so on. (PL-43333, ZD-54717)
Now, the correct Azure resource manager endpoint will be chosen based on the environment selected in the connector.
-
PR status updates now send correctly when using a GitHub App in a GitHub connector with a secret (instead of plain text) for the Application ID. (CI-11025, ZD-56177)
Version 24.01.82110
Hotfix
-
You can now hide sensitive log information in the Harness UI based on regular expression patterns. (PL-46531, ZD-56849)
For more information, go to Hide log information using regex patterns.