swift-island-27000
10/15/2024, 4:20 PMmicroscopic-river-74022
10/15/2024, 4:20 PMmicroscopic-river-74022
10/15/2024, 4:20 PMvalues
field in the action configuration. This field allows you to provide parameters to the Helm chart you're using. The values you provide will create a new YAML and pass it to Helm when rendering/deploying the chart. This is particularly useful when you want to template in the values.
Here's an example of how you can use templating in a Helm Deploy action:
yaml
kind: Deploy
type: helm
name: helm-deploy
...
spec:
values:
some:
key: some-value
In this example, some.key
is set to some-value
. This value will be passed to Helm when rendering/deploying the chart.
You can also use conditional objects with $if
, $then
, and $else
keys to conditionally set values. Here's an example:
yaml
kind: Deploy
spec:
command:
$if: ${this.mode == "sync"}
$then: [npm, run, watch]
$else: [npm, start]
In this example, spec.command
is set to [npm, run, watch]
when the action is in sync mode, otherwise to [npm, start]
.
For more complex cases, you can use the jsonEncode
templating function to set non-primitive values like maps and arrays.
Sources:
- Providing values to the Helm chart ()
- If/else conditional objects ()
- kubernetes
Deploy action type example with shared manifests ()
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------microscopic-river-74022
10/15/2024, 4:20 PMswift-island-27000
10/15/2024, 4:28 PMmicroscopic-river-74022
10/15/2024, 4:28 PMmicroscopic-river-74022
10/15/2024, 4:28 PMname
field is used in various contexts and its usage varies depending on the specific configuration key. Here are some examples:
1. For a Helm Deploy action, the spec.chart.name
field represents a valid Helm chart name or URI. This is the same as you'd input to helm install
. It's required if the action doesn't contain the Helm chart itself. For example:
yaml
spec:
...
chart:
...
name: "ingress-nginx"
Source ()
2. In the general configuration keys for a Helm Deploy action, the name
field is a valid name for the action. It must be unique across all actions of the same kind in your project. This is a required field. Source ()
3. In the spec.defaultTarget.name
, spec.sync.overrides**].target.name
, spec.localMode.target.name
, and spec.sync.paths[].target.name
fields, the name
represents the name of the resource, of the specified kind
. If specified, you must also specify kind
. This is not a required field. [Source 1** (), Source 2 (), Source 3 (), Source 4 ()
4. In the spec.portForwards**].name
field, the name
is an identifier to describe the port forward. This is not a required field. [Source** ()microscopic-river-74022
10/15/2024, 4:28 PM${actions.deploy.<action-name>.name}
, the name
represents the name of the action. Source ()
6. In the Kubernetes Deploy action, the spec.manifests**].metadata.name
field represents the name of the resource. This is a required field. [Source** ()
7. In the Helm-pod Test action, the spec.chart.name
field represents a valid Helm chart name or URI. This is the same as you'd input to helm install
. It's required if the action doesn't contain the Helm chart itself. For example:
yaml
spec:
...
chart:
...
name: "ingress-nginx"
Source ()
Please refer to the specific context in the Garden documentation for more details on how to use the name
field.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------microscopic-river-74022
10/15/2024, 4:28 PM