Prepares the ArgoCD manifest files for deployment. Fills in the required fields and updates the Helm chart values. This action is used to deploy an application using ArgoCD. It updates the application manifest with the provided values and deploys it to the specified namespace.
- Common updates:
- All values provided in the
chart-valuesinput are injected into the Helm chart at their specified YAML paths. Each entry must include apath(YAML key) and avalue. - The deployment ID is automatically added to the chart values as
.deploymentId, allowing the chart to reference the current deployment instance. - The step validates that each chart value entry contains both
pathandvalueproperties, ensuring correct input structure.
- Vendor-specific updates for the chart version and other properties:
- Updates the
tags.datadoghq.com/versionkey to the chart version in Helm values.
- The ArgoCD application manifest file (input
application-file) is updated with:
- Metadata:
- Name: set to the target namespace
- Annotations:
- "argocd.argoproj.io/application-repository": set to the application repository
- "argocd.argoproj.io/deployment-id": set to the deployment ID
- Spec:
- Destination:
- Namespace: set to the target namespace
- Source or Sources: supports both singular
sourceand multiplesourcesarray formats- Chart/RepoURL: validated against the provided
chart-nameandchart-repositoryinputs; the action fails if they do not match the manifest contents - TargetRevision: set to the Helm chart version
- Source Selection: when multiple
sourcesentries exist, only the entry (or entries) whose chart and repoURL match the provided inputs is updated; the action fails if no entry matches - Plugin - hoverkraft-deployment (if exists in source or any sources[]):
- Environment variable
HOVERKRAFT_DEPLOYMENT_ID: updated with the deployment ID to trigger sync detection
- Environment variable
- Helm Values:
- Chart values: custom values provided via the
chart-valuesinput, allowing dynamic configuration of the Helm chart (e.g., application URIs, feature flags). - Deployment ID: injected as a value to identify the deployment instance within the chart values.
- Vendor-specific values: additional values set for integrations, such as updating
tags.datadoghq.com/versionfor Datadog monitoring/versioning.
- Chart values: custom values provided via the
- Chart/RepoURL: validated against the provided
- Destination:
Example with singular source format:
metadata:
name: my-namespace
annotations:
argocd.argoproj.io/application-repository: https://github.com/my-org/my-app
argocd.argoproj.io/deployment-id: deploy-1234
spec:
destination:
namespace: my-namespace
source:
chart: my-chart
repoURL: https://charts.example.com
targetRevision: 1.2.3
# If using ArgoCD plugin (optional):
plugin:
name: hoverkraft-deployment
env:
- name: HOVERKRAFT_DEPLOYMENT_ID
value: deploy-1234
helm:
values:
application:
appUri: https://my-app-review-app-1234.my-org.com
deploymentId: deploy-1234
tags:
datadoghq.com:
version: 1.2.3Example with multiple sources array format:
metadata:
name: my-namespace
annotations:
argocd.argoproj.io/application-repository: https://github.com/my-org/my-app
argocd.argoproj.io/deployment-id: deploy-1234
spec:
destination:
namespace: my-namespace
sources:
- chart: my-chart
repoURL: https://charts.example.com
targetRevision: 1.2.3
# If using ArgoCD plugin (optional):
plugin:
name: hoverkraft-deployment
env:
- name: HOVERKRAFT_DEPLOYMENT_ID
value: deploy-1234
helm:
values:
application:
appUri: https://my-app-review-app-1234.my-org.com
deploymentId: deploy-1234
tags:
datadoghq.com:
version: 1.2.3- The extra manifest file (input
manifest-file) is updated with:
- Metadata:
- Name: set to the target namespace (if the
metadata.namefield exists) - Annotations:
- "app.kubernetes.io/instance": set to the target namespace (if the annotation exists)
- Namespace: set to the target namespace (if the
metadata.namespacefield exists)
- Name: set to the target namespace (if the
Example:
metadata:
name: my-namespace
annotations:
app.kubernetes.io/instance: my-namespace- uses: hoverkraft-tech/ci-github-publish/actions/deploy/argocd-manifest-files@2c8e24b416226074aea1e240468f043edefc5760 # 0.23.2
with:
# Deployment ID to be used in the ArgoCD application manifest
# This input is required.
deployment-id: ""
# Namespace to deploy the application
# This input is required.
namespace: ""
# Name of the Helm chart
# This input is required.
chart-name: ""
# Repository URL of the Helm chart
# This input is required.
chart-repository: ""
# Version of the Helm chart
# This input is required.
chart-version: ""
# Values to be replaced in the chart.
# Example:
# ```json
# [
# { "path": "application.appUri", "value": "https://my-app-review-app-1234.my-org.com" }
# ]
# ```
chart-values: ""
# Repository of the application
# This input is required.
application-repository: ""
# Path to the application manifest file
# This input is required.
application-file: ""
# Path to the extra manifest file
# This input is required.
manifest-file: ""
# Username to record as having initiated the sync operation
# This input is required.
initiated-by: ""| Input | Description | Required | Default |
|---|---|---|---|
deployment-id |
Deployment ID to be used in the ArgoCD application manifest | true | - |
namespace |
Namespace to deploy the application | true | - |
chart-name |
Name of the Helm chart | true | - |
chart-repository |
Repository URL of the Helm chart | true | - |
chart-version |
Version of the Helm chart | true | - |
chart-values |
Values to be replaced in the chart. | false | - |
| Example: | |||
[
{ "path": "application.appUri", "value": "https://my-app-review-app-1234.my-org.com" }
] |
|||
application-repository |
Repository of the application | true | - |
application-file |
Path to the application manifest file | true | - |
manifest-file |
Path to the extra manifest file | true | - |
initiated-by |
Username to record as having initiated the sync operation | true | - |
Contributions are welcome! Please see the contributing guidelines for more details.
This project is licensed under the MIT License.
SPDX-License-Identifier: MIT
Copyright © 2026 Hoverkraft
For more details, see the license.
This documentation was automatically generated by CI Dokumentor.