Skip to content

Commit ab7f8c2

Browse files
authored
Gitops apps creation topic split (#1190)
* Split app creation and app settings Created new reference article for application configuration settings; updated argohub and nav yamls * Update * Update apps-whats-changed-in-documentation.md
1 parent 1dc1b7a commit ab7f8c2

File tree

7 files changed

+214
-157
lines changed

7 files changed

+214
-157
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../_docs/deployments/gitops/application-configuration-settings.md

_data/argohub-nav.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,9 +193,11 @@
193193
- title: GitOps Apps dashboard
194194
url: "/gitops-apps-dashboard"
195195
- title: Application Groups for Argo CD applications
196-
url: "/gitops-app-groups"
196+
url: "/gitops-app-groups"
197197
- title: Creating Argo CD applications
198198
url: "/create-application"
199+
- title: Application configuration settings
200+
url: "/application-configuration-settings"
199201
- title: Monitoring Argo CD applications
200202
url: "/monitor-applications"
201203
- title: Managing Argo CD applications

_data/nav.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,8 @@
377377
url: "/gitops-app-groups"
378378
- title: Creating Argo CD applications
379379
url: "/create-application"
380+
- title: Application configuration settings
381+
url: "/application-configuration-settings"
380382
- title: Monitoring Argo CD applications
381383
url: "/monitor-applications"
382384
- title: Managing Argo CD applications
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
---
2+
title: "Application configuration settings"
3+
description: "Review descriptions of configuration settings for Argo CD applications in GitOps"
4+
toc: true
5+
---
6+
7+
## Application configuration settings
8+
Configuration settings for applications define the application’s structure, sources, destination, and operational behavior.
9+
For ease of use, settings are organized into distinct categories including:
10+
* [Application definitions](#application-definitions): Basic metadata, such as the application name, GitOps Runtime, and the name of the YAML manifest.
11+
* [General configuration settings](#application-general-configuration-settings): Product, Group, source, destination, and sync policies for the application.
12+
* [Advanced configuration settings](#application-advanced-configuration-settings): Tool-specific options, project grouping, and propagation policies for resource and application deletion.
13+
14+
For how-to instructions, see [Create applications]({{site.baseurl}}/docs/deployments/gitops/create-application/).
15+
16+
## Application: Definitions
17+
Application definitions include the application name, the GitOps Runtime, and the name of the YAML manifest. By default, the YAML manifest has the same name as that of the application.
18+
19+
{% include
20+
image.html
21+
lightbox="true"
22+
file="/images/applications/add-app-definitions.png"
23+
url="/images/applications/add-app-definitions.png"
24+
alt="Application definitions"
25+
caption="Application definitions"
26+
max-width="50%"
27+
%}
28+
29+
30+
## Application: General configuration settings
31+
32+
General configuration settings define the product, group, to which the application belongs, source, destination, and sync policies for the application.
33+
34+
{% include
35+
image.html
36+
lightbox="true"
37+
file="/images/applications/add-app-general-settings.png"
38+
url="/images/applications/add-app-general-settings.png"
39+
alt="General configuration settings"
40+
caption="General configuration settings"
41+
max-width="70%"
42+
%}
43+
44+
### Products
45+
Optional. The product to which to assign the application. Select an existing product, or create and add a new product.
46+
Products empower promotions for applications and make for streamlined management and deployments.
47+
See [Products]({{site.baseurl}}/docs/products/about-products/).
48+
49+
50+
### Groups
51+
Optional. The group or groups to which to add the application. Select an existing group or groups, or create a new application group by typing a name and pressing Enter.
52+
Group applications based on criteria meaningful to your organization, such as environment, region, or any other relevant attribute. You can then view deployments for these applications in the same location in the Groups tab of the GitOps Apps dashboard. A new view for Argo CD applications, Groups allow you to collate multiple applications and view their timelines.
53+
See [Application Groups]({{site.baseurl}}/docs/deployments/gitops/gitops-app-groups/).
54+
55+
56+
57+
58+
### Source
59+
The Git repository with the application resources.
60+
{::nomarkdown}<ul> <li><b>Repository URL</b>: The URL of the Git repo or the Helm package repo with the application resources. <br>If SSH is configured for the runtime, you can connect to the repo with either HTTPS or SSH. On selecting the repository, Codefresh automatically updates the URL format. See <a href="https://codefresh.io/docs/docs/installation/gitops/manage-runtimes/#configure-ssh-for-gitops-runtimes">Configure SSH for runtimes</a>.<br>If the Argo CD project is not the <span style="font-family: var(--font-family-monospace); font-size: 87.5%; color: #ad6800; background-color: #fffbe6">default</span> project, make sure that the repo has the correct access roles for your application.<ul><li><b>Revision and Path</b>: Applies to Git repositories. </li><li><b>Chart</b>: Applies to Helm repositories. The name of the Helm package with all the resource definitions for the application, and the version. </li></ul>For more information, see <a href="https://argo-cd.readthedocs.io/en/stable/user-guide/tracking_strategies/" target="\_blank">Tracking and Deployment Strategies</a>.</li></ul>{:/}
61+
62+
63+
64+
### Destination
65+
The cluster and namespace to which to deploy the application.
66+
{::nomarkdown}<ul><li><b>Cluster</b>: The cluster to which to deploy the application, defined as a <b>URL</b>, or as the user-defined display <b>NAME</b>.</li> <li><b>Namespace</b>: The namespace in the cluster to which to deploy the application.</li><li><b>Auto-create namespace</b>: When selected, automatically creates the namespace in the cluster if it doesn't exist.</li> </ul>{:/}
67+
68+
69+
### Sync Settings
70+
71+
72+
#### Sync Policy
73+
The synchronization policy to apply when there are differences between the desired state in Git and the actual state in the cluster.{::nomarkdown}<ul><li><b>Manual</b>: Manually sync the changes from the Argo CD UI.</li><li><b>Automatic</b>: Automatically sync changes, with the following options if selected:<ul><li><b>Prune resources</b>:When selected, removes legacy resources that do not exist currently in Git. </li><li><b>Self heal</b>: When selected, always enforces a sync to the desired state in Git, if and when there is a change to the actual state in the cluster. See <a href="https://argo-cd.readthedocs.io/en/stable/user-guide/auto_sync/#automatic-self-healing" target="_blank">Automatic self-healing</a>.</li></li></ul></ul>{:/}
74+
75+
76+
77+
#### Sync Options
78+
Common to both manual and automatic sync policies.{% raw %}{::nomarkdown}<ul><li><b>Skip schema validation</b>: When selected, bypasses validating the YAML schema.</li><li><b>Auto-create namespace</b>: When selected, automatically create the namespace if the specified namespace does not exist in the cluster.</li><li><b>Prune last</b>: When selected, removes those resources that do not exist in the currently deployed version during the final wave of the sync operation. See <a href="https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/#prune-last" target="_blank">Prune last</a>.</li><li><b>Apply out of sync only</b>: When selected, syncs only those resources in the application that have been changed and are <span style="font-family: var(--font-family-monospace); font-size: 87.5%; color: #ad6800; background-color: #fffbe6">OutOfSync</span>, instead of syncing every resource regardless of their state. This option is useful to reduce load and save time when you have thousands of resources in an application. See <a href="https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/#selective-sync" target="_blank">Selective Sync</a>.</li></ul>{:/}{% endraw %}
79+
80+
81+
#### Prune propagation policy
82+
Defines how resources are pruned, applying Kubernetes cascading deletion prune policies. For more information, see [Kubernetes - Cascading deletion](https://kubernetes.io/docs/concepts/architecture/garbage-collection/#cascading-deletion){:target="\_blank"}.{::nomarkdown}<ul><li><b>Foreground</b>: The default prune propagation policy used by Argo CD. With this policy, Kubernetes changes the state of the owner resource to `deletion in progress`, until the controller deletes the dependent resources and finally the owner resource itself. </li><li><b>Background</b>: When selected, Kubernetes deletes the owner resource immediately, and then deletes the dependent resources in the background.</li><li><b>Orphan</b>: When selected, Kubernetes deletes the dependent resources that remain orphaned after the owner resource is deleted.</li></ul> </br>{:/}
83+
All Prune propagation policies can be used with:
84+
85+
**Replace**: When selected, Argo CD executes `kubectl replace` or `kubectl create`, instead of the default `kubectl apply` to enforce the changes in Git. This action will potentially recreate resources and should be used with care. See [Replace Resource Instead Of Applying Change](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/#replace-resource-instead-of-applying-changes){:target="\_blank"}.
86+
87+
**Retry**: When selected, retries a failed sync operation, based on the retry settings configured:
88+
* Maximum number of sync retries (**Limit**)
89+
* Duration of each retry attempt in seconds, minutes, or hours (**Duration**)
90+
* Maximum duration permitted for each retry (**Max Duration**)
91+
* Factor by which to multiply the Duration in the event of a failed retry (**Factor**). A factor of 2 for example, attempts the second retry in 2 X 2 seconds, where 2 seconds is the Duration.
92+
93+
94+
95+
## Application: Advanced configuration settings
96+
97+
Advanced settings define the tool used to create the application, and related toll-specific settings.
98+
99+
{% include
100+
image.html
101+
lightbox="true"
102+
file="/images/applications/add-app-advanced-settings.png"
103+
url="/images/applications/add-app-advanced-settings.png"
104+
alt="Advanced configuration settings"
105+
caption="Advanced configuration settings"
106+
max-width="70%"
107+
%}
108+
109+
110+
111+
### ArgoCD Project
112+
The project group to which the application belongs. A project is useful to enforce restrictions on permitted sources and targets for applications and roles. If not defined, the application is automatically assigned to the `default` project, which is created automatically by Argo CD and has no restrictions.
113+
For more information, see Argo CD's documentation on [Projects](https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#projects){:target="\_blank"}.
114+
115+
116+
117+
### Propagation policy for application deletion
118+
Defines how resources are pruned, applying Kubernetes cascading deletion prune policies when you delete the application.
119+
For more information, see [Argo CD's app deletion](https://argo-cd.readthedocs.io/en/stable/user-guide/app_deletion/){:target="_blank"}.
120+
* **Foreground**
121+
The default prune propagation policy used by Argo CD. With this policy, Kubernetes changes the state of the owner resource to `deletion in progress`, until the controller deletes the dependent resources and finally the owner resource itself.
122+
* **Background**
123+
When selected, Kubernetes deletes the owner resource immediately, and then deletes the dependent resources in the background.
124+
* **Non-cascading**
125+
When selected, Kubernetes deletes only the application and not its resources.
126+
127+
128+
129+
### Type of Application
130+
The tool used to create the application's manifests. Codefresh supports defining application manifests as a directory, Helm charts, or Kustomize. If you are using other tools to define application manifests, use the Plugin type. For more information, see the Argo CD's documentation on [Tools](https://argo-cd.readthedocs.io/en/stable/user-guide/application_sources/){:target="_blank"}.
131+
132+
133+
* **Directory**: A `directory` application, which is the default application type in Argo CD.
134+
* **Directory recurse**: Optional. Select to include subdirectories.
135+
* **Top-level arguments**: Optional. Select and define parameters.
136+
* **External variables**: Optional. Select and define external variables.
137+
138+
* **Helm**: Create the application as a Helm chart.
139+
* **Values files**: One or more `values.yaml` files to store the parameters.
140+
* **Values**: Optional. When defined, new values not in `values.yaml` files are added, and existing values are overridden.
141+
142+
* **Kustomize**: Create a Kustomize application, with the following settings:
143+
* **Version**: The version of Kustomize used to create the application.
144+
* **Name Prefix** and **Name Suffix**: Optional. The prefix and suffix to be appended to the resources of the application.
145+
146+
* **Plugin**: Use for any other tool.
147+
* **Name**: The name of the Plugin used to create the application.
148+
* **External Variables**: The variables to use in the application.
149+
150+
For example applications, go to the [Argo CD example applications repo](https://github.com/argoproj/argocd-example-apps){:target="_blank"}.
151+
152+
153+
## Related articles
154+
[Monitoring Argo CD applications]({{site.baseurl}}/docs/deployments/gitops/monitor-applications/)
155+
[Managing Argo CD applications]({{site.baseurl}}/docs/deployments/gitops/manage-application/)
156+
[Promotions]({{site.baseurl}}/docs/promotions/promotions-overview/)
157+
[Environments dashboard]({{site.baseurl}}/docs/dashboards/gitops-environments/)
158+
[Product Dashboard]({{site.baseurl}}/docs/dashboards/gitops-products/)
159+
[Home dashboard]({{site.baseurl}}/docs/dashboards/home-dashboard/)
160+
[DORA metrics]({{site.baseurl}}/docs/dashboards/dora-metrics/)

_docs/deployments/gitops/apps-whats-changed-in-documentation.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,6 @@ The table below outlines the updates to Applications documentation, including ar
1717
|--------------------------|----- |----------------------------------------------------|
1818
| Deployments > GitOps |[About applications in GitOps]({{site.baseurl}}/docs/deployments/gitops/about-apps/) | New overview topic summarizing capabilities for Argo CD applications in Codefresh GitOps. |
1919
| |[GitOps Apps dashboard]({{site.baseurl}}/docs/deployments/gitops/gitops-apps-dashboard/) | Split from **Monitoring applications** article to standalone article entitled **GitOps Apps dashboard** for visibility. |
20+
| |[Create Argo CD applications]({{site.baseurl}}/docs/deployments/gitops/create-application/) | Focuses on how-to instructions on creating applications. |
21+
| |[Application configuration settings]({{site.baseurl}}/docs/deployments/gitops/application-configuration-settings/) | Split from **Creating applications** article to a standalone reference article describing the settings you can configure for applications. |
2022
| |[Monitoring applications]({{site.baseurl}}/docs/deployments/gitops/monitor-applications/) | Focuses on options to monitor individual applications. |

0 commit comments

Comments
 (0)