Skip to content

Commit 6bfed6e

Browse files
authored
Merge branch 'master' into runner-helm-refactoring
2 parents 2d5407d + fbcba86 commit 6bfed6e

26 files changed

+820
-253
lines changed

_data/home-content.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
localurl: /docs/integrations/codefresh-hosted-gitops/
3434
- title: Git providers
3535
localurl: /docs/integrations/git-providers/
36+
- title: OpenID Connect
37+
localurl: /docs/integrations/oidc-pipelines/
3638
- title: Kubernetes
3739
localurl: /docs/integrations/kubernetes/
3840
- title: Amazon Web Services

_data/nav.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,8 @@
213213
url: "/codefresh-hosted-gitops"
214214
- title: Git Providers
215215
url: "/git-providers"
216+
- title: OpenID Connect
217+
url: "/oidc-pipelines"
216218
- title: Kubernetes
217219
url: "/kubernetes"
218220
- title: Amazon Web Services
@@ -398,7 +400,7 @@
398400
- title: Deploy
399401
url: "/deploy"
400402
- title: Approval
401-
url: "/approval"
403+
url: "/approval"
402404
- title: Triggers in pipelines
403405
url: "/triggers"
404406
sub-pages:

_docs/deployments/gitops/create-application.md

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,24 @@ toc: true
1010

1111
Codefresh provides all the options and functionality to create and manage Argo CD applications in the Codefresh UI.
1212
* Create Argo CD applications that are fully GitOps compliant, from generating the application configuration manifest, committing it to Git, and syncing and deploying to the cluster.
13-
Creating an application in Codefresh includes:
14-
* Application definitions
13+
Creating an application in Codefresh includes defining:
14+
* Application name and location
1515
* General configuration settings
1616
* Advanced configuration settings
1717

18+
1819
The Create application wizard guides you through the process of creating an application. For how-to information, see [Create an application](#create-an-application).
19-
For example Argo CD applications, see this [repo](https://github.com/oleksandr-codefresh/argocd-example-apps){:target="_blank"}.
20+
For example Argo CD applications, see this [repo](https://github.com/oleksandr-codefresh/argocd-example-apps){:target="_blank"}.
21+
22+
Remember you need a valid [Git Source]({{site.baseurl}}/docs/installation/gitops/git-sources/) to be able to create and commit a GitOps application.
23+
2024

21-
* Edit and delete applications
22-
Once the application is created and synced to the cluster, it is displayed in the GitOps Apps dashboard. Here, you can select an application to update the application's configuration settings, or delete it.
23-
To monitor the health and sync status, deployments, and resources for the application, see [Monitoring GitOps applications]({{site.baseurl}}/docs/deployments/gitops/applications-dashboard/).
25+
* Monitor GitOps applications
26+
After creating an application, and it is synced to the cluster, the application is displayed in the GitOps Apps dashboard. Here,
27+
Here you can monitor its health and sync status, deployments, and resources. See [Monitoring GitOps applications]({{site.baseurl}}/docs/deployments/gitops/applications-dashboard/).
28+
29+
* Manage GitOps applications
30+
You can also select an application and update the application's configuration settings, or delete it. For all available options, see [Managing GitOps applications]({{site.baseurl}}/docs/deployments/gitops/manage-application/).
2431

2532
## Application: Definitions
2633
Application definitions include the name, runtime, and the name of the YAML manifest. By default, the YAML manifest has the same name as that of the application.
@@ -172,17 +179,18 @@ The tool used to create the application's manifests. Codefresh supports definin
172179
For example applications, go to the [Argo CD example applications repo](https://github.com/argoproj/argocd-example-apps){:target="_blank"}.
173180

174181

175-
<br />
182+
<br>
176183

177184
## Create an application
178185
Create a new application from the GitOps Apps dashboard with the Add Application wizard.
179186
Edit the manifest directly in YAML mode, or define the settings in the Form mode. Toggle between the modes as convenient. You can also edit the YAML manifest directly at all stages, after defining configuration settings, and before the final commit.
180187

181188
**Before you begin**
189+
* Make sure you have a valid [Git Source]({{site.baseurl}}/docs/installation/gitops/git-sources/)
182190

183-
Review:
184-
[General configuration](#application-general-configuration-settings)
185-
[Advanced configuration](#application-advanced-configuration-settings)
191+
* Review:
192+
[General configuration](#application-general-configuration-settings)
193+
[Advanced configuration](#application-advanced-configuration-settings)
186194

187195

188196
**How to**

_docs/deployments/helm/using-helm-in-codefresh-pipeline.md

Lines changed: 42 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@ toc: true
1414

1515
We created a [special Helm step](https://codefresh.io/steps/step/helm){:target="\_blank"} for easy integration of Helm in Codefresh pipelines. The Helm step facilitates authentication, configuration, and execution of Helm commands.
1616

17-
> If you have a special use case that is not covered by the Codefresh Helm step, you can always use the regular `helm` cli in a freestyle step.
18-
In this case, you can use the simpler container `codefresh/kube-helm` which includes only Kubectl and helm tools. `kube-helm` is available on DockerHub: [https://hub.docker.com/r/codefresh/kube-helm/](https://hub.docker.com/r/codefresh/kube-helm/){:target="\_blank"}.
17+
>**NOTE:**
18+
If you have a special use case that is not covered by the Codefresh Helm step, you can always use the regular `helm` CLI command in a `freestyle` step.
19+
In this case, you can use the simpler container `codefresh/kube-helm` which includes only Kubectl and helm tools. `kube-helm` is available on DockerHub: [https://hub.docker.com/r/codefresh/kube-helm/](https://hub.docker.com/r/codefresh/kube-helm/){:target="\_blank"}.
1920

20-
If you are just starting with Helm, refer to our [Helm quick start guide]({{site.baseurl}}/docs/quick-start/ci-quick-start/deploy-with-helm/) . And, if you prefer to work directly with code, see our [full Helm example]({{site.baseurl}}/docs/example-catalog/cd-examples/helm/).
21+
If you are just starting with Helm, refer to our [Helm quick start guide]({{site.baseurl}}/docs/quick-start/ci-quick-start/deploy-with-helm/). If you prefer to work directly with code, see our [full Helm example]({{site.baseurl}}/docs/example-catalog/cd-examples/helm/).
2122

2223
## Helm setup
2324

@@ -71,9 +72,8 @@ max-width="70%"
7172

7273
### Step 3: Define a Helm repository
7374

74-
To push your chart to a Helm repository, configure the target repository to work with.
75-
Always a good practice to save Helm charts in Helm repositories, Codefresh supports a variety of private, authenticated Helm repositories
76-
in addition to public HTTP repositories. Codefresh also provides a free, managed Helm repository for every account.
75+
To push your chart to a Helm repository, configure the target repository to work with. It is always a good practice to save Helm charts in Helm repositories.
76+
Codefresh supports a variety of private, authenticated Helm repositories, in addition to public HTTP repositories. Codefresh also provides a free, managed Helm repository for every account.
7777

7878
* Either [connect your repository with Codefresh]({{site.baseurl}}/docs/deployments/helm/helm-charts-and-repositories/)
7979
OR
@@ -107,8 +107,9 @@ This concludes the Helm setup for Codefresh. Now you can use the Helm freestyle
107107

108108
You can now use the Helm freestyle step in the `codefresh.yml` file. This step is only needed in pipelines that actually upload/fetch Helm charts to/from Helm repositories. If your pipeline directly installs a Helm chart from the Git filesystem, there is no need to import a Helm configuration.
109109

110-
>Currently, you can use only one Helm configuration in the same pipeline. We are aware
111-
of this limitation and will soon improve the way Codefresh works with multiple Helm configurations.
110+
>**NOTE:**
111+
Currently, you can use only one Helm configuration in the same pipeline. We are aware
112+
of this limitation, and will soon improve the way Codefresh works with multiple Helm configurations.
112113

113114

114115

@@ -135,7 +136,7 @@ deploy:
135136
136137
#### Helm step action modes
137138
138-
The Helm step can operate in one of three modes, as defined by the `action` field, which can be one of the following:
139+
The Helm step can operate in one of three modes, as defined by the `action` argument, which can be one of the following:
139140

140141
1. `install`: Installs the Helm chart into a Kubernetes cluster. This is the default mode if one is not explicitly set.
141142
2. `push`: Packages the Helm chart and pushes it to the repository.
@@ -153,7 +154,7 @@ For a description of these and other arguments, see [Helm step configuration fie
153154

154155
#### Helm values
155156

156-
* To supply a value file, add to the Helm step, `custom_values_file`, with the value pointing to an existing values file.
157+
* To supply a `values` file, add to the Helm step, `custom_values_file`, with the value pointing to an existing values file.
157158
* To override specific values, add to the Helm step, `custom_values` followed by the path to the value to set. For example, `myservice_imageTag`. Note that `.` (dot) should be replaced with `_` (underscore). The value of the variable is used to override or set the templated property.
158159

159160
Examples:
@@ -175,7 +176,8 @@ results in:
175176
results in:
176177
`--values values-prod.yaml`
177178

178-
If a variable already contains a `_` (underscore) in its name, replace it with `__` (double underscore).
179+
If a variable already contains an underscore (`_`) in its name, replace it with a double underscore (`__`).
180+
).
179181

180182
## Helm usage examples
181183

@@ -195,7 +197,7 @@ deploy:
195197
type: helm
196198
arguments:
197199
action: install
198-
chart_name: path/to/charts
200+
chart_name: /home/user/charts/mywebapp
199201
release_name: first
200202
helm_version: 3.0.3
201203
kube_context: my-kubernetes-context
@@ -214,7 +216,7 @@ deploy:
214216
chart_repo_url: 'cm://h.cfcr.io/useraccount/default'
215217
```
216218

217-
> **Notes**:
219+
> **NOTES**:
218220
- Assumes that a Git repository with the Helm chart files was cloned as a part of the pipeline.
219221
- The Git repository contains the chart files in the `chart` directory.
220222
- `chart_repo_url` is optional. If a [Helm repository configuration](#step-4-optional-import-the-helm-configuration-into-your-pipeline-definition) is attached to the pipeline, this setting is ignored.
@@ -255,38 +257,38 @@ my_custom_helm_command:
255257
{% endraw %}
256258
{% endhighlight %}
257259

258-
> Notes:
259-
- The directory that contains a chart MUST have the same name as the chart. Thus, a chart named `my-chart` MUST be created in a directory called `my-chart/`. This is a requirement of the [Helm Chart format](https://helm.sh/docs/chart_template_guide/){:target="\_blank"}.
260+
> **NOTES**:
261+
The directory that contains a chart MUST have the same name as the chart. Thus, a chart named `my-chart` MUST be created in a directory called `my-chart/`. This is a requirement of the [Helm Chart format](https://helm.sh/docs/chart_template_guide/){:target="\_blank"}.
260262

261263
## Helm step configuration fields
262264

263265
{: .table .table-bordered .table-hover}
264-
|Name|Required|Description|
266+
|Name|Description|Required|
265267
|---|---|---|
266-
|action|defaults to `install`| Operation mode: `install`/`push`/`auth`|
267-
|chart_name|required for install/push|Chart reference to use, adhering to Helm's lookup rules (path to chart folder, or name of packaged chart). There's no need to prefix with `/reponame` if referencing a chart in a repository, this is handled automatically. a.k.a `CHART_NAME` but `CHART_NAME` shouldn't be used anymore. |
268-
|chart_repo_url|optional|Helm chart repository URL. If a [Helm repository configuration](#step-4-optional---import-the-helm-configuration-in-your-pipeline-definition) is attached to the pipeline, this setting is ignored.|
269-
|chart_subdir |optional | The subfolder where the chart is located in the JFrog Artifactory Helm repository.|
270-
|chart_version|optional|Override or set the chart version.|
271-
|cmd_ps|optional|Command Postscript - this will be appended as is to the generated helm command string. Can be used to set additional parameters supported by the command but not exposed as configuration options.|
272-
|commands|optional|commands to execute in plugin after auth action.|
273-
|credentials_in_arguments | optional | The username and password credentials to add to the Helm command as arguments. If not added to the Helm command, the credentials are passed in the URL `http(s)://username:password@url`. Should be enabled for JFrog Artifactory Helm repositories.|
274-
|custom_value_files|optional|values file to provide to Helm as --values or -f.|
275-
|custom_values|optional|values to provide to Helm as --set.|
276-
|helm_repository_context | optional |The name of the Helm repository integration configured in Codefresh.|
277-
|helm_version|optional|version of [cfstep-helm image](https://hub.docker.com/r/codefresh/cfstep-helm/tags).|
278-
|kube_context|required for install|Kubernetes context to use. The name of the cluster as [configured in Codefresh]({{site.baseurl}}/docs/integrations/kubernetes/#connect-a-kubernetes-cluster).|
279-
|namespace|optional|Target Kubernetes namespace to deploy to.|
280-
|primary_helm_context |optional |Required for `install` and `push` actions when the pipeline has multiple Helm contexts. The Helm context to use for the Helm command. When omitted, the repo most recently added to the pipeline is used.|
281-
|release_name|used for `install`|The Helm release name. If the release exists, it is upgraded.|
282-
|repos|optional|array of custom repositories.|
283-
|set_file | optional | Set values from the respective files specified by the command line in `key=value` format. To specify multiple key-value pairs, separate them with commas. |
284-
|skip_cf_stable_helm_repo | optional | Don't add stable repository.|
285-
|tiller_namespace|optional|Kubernetes namespace where Tiller is installed .|
286-
|timeout | optional | The maximum time, in seconds, to wait for Kubernetes commands to complete.|
287-
|use_debian_image | optional | Use Debian-based `cfstep-helm` image.|
288-
|use_repos_for_auth_action |optional | Required for the `auth` action to use repos from attached contexts. When required, set value to `true`.|
289-
wait |optional | When specified, waits until all pods are in state `ready` to mark the release as successful. Otherwise, release is marked as successful when the minimum number of pods are `ready` and the Services have IP addresses. |
268+
|`action`|The operation performed by the Helm step, and can be of the following: {::nomarkdown} <ul><li><code class="highlighter-rouge">install</code>: The default, installs the Helm chart into a Kubernetes cluster.</li><li><code class="highlighter-rouge">push</code>: Packages the Helm chart and pushes it to the repository.</li><li><code class="highlighter-rouge">auth</code>: Sets up authentication, and adds one or more Helm repos. This mode is useful to write your own Helm commands using the freestyle step's <code class="highlighter-rouge">commands</code> property, but still allow the step to handle authentication.</li></ul>{:/}| Required|
269+
|`chart_name`| The chart to use for the `install` and `push` actions. <br>The chart name can be either:{::nomarkdown} <ul><li>The name of a packaged Helm chart, for example, <code class="highlighter-rouge">myapp-1.0.0.tgz</code>.</li><li>The local directory path to the folder in which the Helm chart is stored, for example, <code class="highlighter-rouge">/home/user/charts/</code>. Helm will identify the chart name from the <code class="highlighter-rouge">chart.yaml</code> file in the folder. <br>When referencing a chart in a repository, `/reponame` prefix is not needed, as it is identified automatically.</li></ul>{:/}`CHART_NAME` should not be used anymore. | Required |
270+
|`chart_repo_url`|Helm chart repository URL. If a [Helm repository configuration](#step-4-optional---import-the-helm-configuration-in-your-pipeline-definition) is attached to the pipeline, this setting is ignored.| Optional|
271+
|`chart_subdir` | The subfolder where the chart is located in the JFrog Artifactory Helm repository.| Optional |
272+
|`chart_version`|The version identifier used to track and communicate the version of the Helm chart itself, instead of the version of the application or service that the chart deploys. When not specified, uses the version in the `chart.yaml` file of the chart. |Optional |
273+
|`cmd_ps`| The Postscript command to be appended as is to the generated Helm command string.<br>Use to set additional parameters supported by the command but not exposed as configuration options.|Optional |
274+
|`commands`|Commands to execute in plugin after auth action.|Optional |
275+
|`credentials_in_arguments` | The username and password credentials to add to the Helm command as arguments. If not added to the Helm command, the credentials are passed in the URL `http(s)://username:password@url`. <br>Should be enabled for JFrog Artifactory Helm repositories.| Optional|
276+
|`custom_value_files`|The `values` file to provide to Helm as `--values` or `-f`.|Optional |
277+
|`custom_values`|The values to provide to Helm as `--set`.|Optional |
278+
|`helm_repository_context` |The name of the Helm repository integration configured in Codefresh.| Optional |
279+
|`helm_version`|The version of the [cfstep-helm image](https://hub.docker.com/r/codefresh/cfstep-helm/tags).|Optional |
280+
|`kube_context`|The Kubernetes context to use when the `action` for the Helm step is set to `install`. The name of the cluster as [configured in Codefresh]({{site.baseurl}}/docs/integrations/kubernetes/#connect-a-kubernetes-cluster).| Optional |
281+
|`namespace`|The target Kubernetes namespace to deploy to.| Optional |
282+
|`primary_helm_context` |The Helm context to use for the Helm command, when the Helm `action` is either `install` or `push`, and the pipeline has multiple Helm contexts. When omitted, uses the repo most recently added to the pipeline.| Optional |
283+
|`release_name`|The Helm release name to use when the Helm `action` is set to `install`. If the release exists, it is upgraded.|Optional |
284+
|`repos`|Array of custom repositories.|Optional|
285+
|`set_file` | The values to set from the respective files specified by the command line in `key=value` format. To specify multiple key-value pairs, separate them with commas. | Optional |
286+
|`skip_cf_stable_helm_repo` | When set to `true`, the default, does not add a stable repository.| Optional|
287+
|`timeout` | The maximum time, in seconds, to wait for Kubernetes commands to complete.|Optional |
288+
|`use_debian_image` | Use Debian-based `cfstep-helm` image.|Optional |
289+
|`use_repos_for_auth_action` | Uses repos from attached contexts, and is required when the Helm step `action` is set to `auth` action. When required, set value to `true`.|Optional |
290+
`wait` | When specified, waits until all pods are in state `ready` to mark the release as successful. Otherwise, release is marked as successful when the minimum number of pods are `ready` and the Services have IP addresses. |Optional |
291+
|`tiller_namespace`|Deprecated. Kubernetes namespace where Tiller is installed . | Optional |
290292

291293

292294

0 commit comments

Comments
 (0)