Skip to content

Commit 8f2910a

Browse files
committed
update argocd
1 parent d41b1fc commit 8f2910a

File tree

1 file changed

+27
-15
lines changed

1 file changed

+27
-15
lines changed

argocd/README.md

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# ArgoCD
22

3-
Source: <https://argo-cd.readthedocs.io/en/stable/>
3+
Source:
4+
5+
- <https://argo-cd.readthedocs.io/en/stable/>
6+
- <https://spacelift.io/blog/argocd>
47

58
Table of contents:
69

@@ -26,25 +29,34 @@ Table of contents:
2629

2730
![](https://argo-cd.readthedocs.io/en/stable/assets/argocd_architecture.png)
2831

29-
- ArgoCD is implemented as a Kubernetes controller which continously monitors running applications and compares the current, live state against the desired target state.
32+
- ArgoCD is implemented as a Kubernetes controller which continuously monitors running applications and compares the current, live state against the desired target state.
3033
- A deployed application whose live state deviates from the target state is considered `OutofSync`.
3134
- Any modifications made to the desired target state in the Git repo can be automatically applied and reflected in the specified target environments.
3235
- Components:
3336
- API Server: A gRPC/REST server which exposes the API consumed by the Web UI, CLI, and CI/CD systems.
3437
- Repository Server: An internal service which maintains a local cache of the Git repository holding the application manifests. It is responsible for generating and returning the Kubernetes mainfests.
35-
- Application controller: a Kubernetes controller which continously monitors running applications and compares the current, live state against the desired target state (as specified in the repo). It detects `OutOfSync` application state and optionally takes corrective action. It is responsible for invoking any user-defined hooks for lifecycle events.
38+
- Application controller: a Kubernetes controller which continuously monitors running applications and compares the current, live state against the desired target state (as specified in the repo). It detects `OutOfSync` application state and optionally takes corrective action. It is responsible for invoking any user-defined hooks for lifecycle events.
3639

3740
## 3. Core concepts
3841

39-
- Application A group of Kubernetes resources as defined by a manifest. This is a Custom Resource Definition (CRD).
40-
- Application source type Which Tool is used to build the application.
41-
- Target state The desired state of an application, as represented by files in a Git repository.
42-
- Live state The live state of that application. What pods etc are deployed.
43-
- Sync status Whether or not the live state matches the target state. Is the deployed application the same as Git says it should be?
44-
- Sync The process of making an application move to its target state. E.g. by applying changes to a Kubernetes cluster.
45-
- Sync operation status Whether or not a sync succeeded.
46-
- Refresh Compare the latest code in Git with the live state. Figure out what is different.
47-
- Health The health of the application, is it running correctly? Can it serve requests?
48-
- Tool A tool to create manifests from a directory of files. E.g. Kustomize. See Application Source Type.
49-
- Configuration management tool See Tool.
50-
- Configuration management plugin A custom tool.
42+
- Application: A group of Kubernetes resources as defined by a manifest. This is a Custom Resource Definition (CRD).
43+
- Application source type: Which Tool is used to build the application.
44+
- Target state: The desired state of an application, as represented by files in a Git repository.
45+
- Live state: The live state of that application. What pods etc are deployed.
46+
- Sync status: Whether or not the live state matches the target state. Is the deployed application the same as Git says it should be?
47+
- Sync: The process of making an application move to its target state. E.g. by applying changes to a Kubernetes cluster.
48+
- Sync operation status: Whether or not a sync succeeded.
49+
- Refresh: Compare the latest code in Git with the live state. Figure out what is different.
50+
- Health: The health of the application, is it running correctly? Can it serve requests?
51+
- Tool: A tool to create manifests from a directory of files. E.g. Kustomize. See Application Source Type.
52+
- Configuration management tool.
53+
- Configuration management plugin: A custom tool.
54+
55+
## 4. Best practices
56+
57+
- **Use ApplicationSets for dynamic app management**: Leverage ApplicationSets to automate the deployment of multiple similar apps (e.g., per tenant or per cluster) from templates, reducing boilerplate and manual updates.
58+
- **Pin ArgoCD versions and CRDs**: Avoid auto-upgrading ArgoCD or its custom resource definitions; pin versions explicitly to prevent breaking changes or unexpected behaviors in production.
59+
- **Use the app-of-apps pattern for hierarchical management**: Manage large-scale deployments using an "app of apps" model, where a root application defines and manages multiple child applicationns for better modularity.
60+
- **Apply resource exclusions and ignore differences**: Configure resource exclusions or diff settings (e.g., ignore `status` fields or ephemeral annotations) to prevent false-positive drift detections.
61+
- **Tag and label applications for automation and auditing**: Use consistent metadata (labels/annotations) on ArgoCD apps to enable automated filtering, reporting, or lifecycle management.
62+
- **Run ArgoCD in a dedicated namespace or cluster**: Isolate ArgoCD to a specific namespace or cluster to simplify access control, avoid conflicts, and improve operational clarity.

0 commit comments

Comments
 (0)