You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/blog/2023-11-17-argo-configmanagement-plugins.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
date: 2023-11-17
3
-
title: ArgoCD Config Management Plugins in Validated Patterns
3
+
title: Argo CD Config Management Plugins in Validated Patterns
4
4
summary: Validated Patterns now support sidecar configmanagement plugins in ArgoCD
5
5
author: Martin Jackson
6
6
blog_tags:
@@ -13,17 +13,17 @@ blog_tags:
13
13
aliases: /2023/11/17/argocd-cmps/
14
14
---
15
15
16
-
# ArgoCD Configuration Management Plugins and the Validated Patterns Framework
16
+
# Argo CD Configuration Management Plugins and the Validated Patterns Framework
17
17
18
18
## Problem
19
19
20
-
ArgoCD has a number of mechanisms for facilitating Kubernetes application deployments besides applying raw manifests.
21
-
The most prominent mechanisms it uses are Kustomize (which is built into kubectl now) and Helm (which is an external tool still). If the user has additional needs for manifest generation that cannot be met by either of these tools, ArgoCD
20
+
Argo CD has a number of mechanisms for facilitating Kubernetes application deployments besides applying raw manifests.
21
+
The most prominent mechanisms it uses are Kustomize (which is built into kubectl now) and Helm (which is an external tool still). If the user has additional needs for manifest generation that cannot be met by either of these tools, Argo CD
22
22
provides a mechanism called Configuration Management Plugins that allow for editing the manifest stream either in
23
23
addition to or in lieu of Helm or Kustomize. This mechanism allows, for example, using both Helm and Kustomize on the
24
24
same template files and/or bases at the same time. If the user needs a custom tool, such as [PolicyGen](https://cloud.redhat.com/blog/generating-governance-policies-using-kustomize-and-gitops) to be involved in generating Kubernetes
25
25
manifests, this feature enables its use. Similarly, another use for this feature is to enable the
26
-
[ArgoCD Vault Plugin](https://github.com/argoproj-labs/argocd-vault-plugin), which works by substituting specific tags
26
+
[Argo CD Vault Plugin](https://github.com/argoproj-labs/argocd-vault-plugin), which works by substituting specific tags
27
27
in manifests. This allows users to avoid storing secrets directly in git repositories, which is one of the key needs
28
28
of an operational GitOps strategy.
29
29
@@ -85,7 +85,7 @@ the argocd kind supports this, so do we.)
85
85
`configManagementPlugins`is an array. Each element will add one sidecar plugin to the GitOps repo-server pod the
86
86
clusterGroup chart controls. In the `argoCD` instance it primarily adds elements to the `sidecarContainers` property.
87
87
88
-
The `name` element is the name of the plugin - this is how applications can specifically request that ArgoCD/GitOps
88
+
The `name` element is the name of the plugin - this is how applications can specifically request that Argo CD/GitOps
89
89
process the manifests. This name is also used to compose a configmap name if the user specifies the pluginConfig string.
90
90
91
91
The `image` element is the image the sidecar will use. The repo-server default initContainer will copy the argocd server
@@ -102,8 +102,8 @@ be injected into the sidecar as `plugin.yaml` via configmap. While it is possibl
102
102
to the plugin.yaml would require the sidecar image to be rebuilt and redeployed, and the repo-server pod restarted. It
103
103
is a documented method in the upstream documentation, so the framework allows it.
104
104
105
-
Please note that the `preserveFileMode` setting in the example plugin config is not yet supported in ArgoCD 2.6/GitOps
106
-
Operator 1.8, but is in ArgoCD 2.8/GitOps Operator 1.10. The main use for this property is to call executables inside
105
+
Please note that the `preserveFileMode` setting in the example plugin config is not yet supported in Argo CD 2.6/GitOps
106
+
Operator 1.8, but is in Argo CD 2.8/GitOps Operator 1.10. The main use for this property is to call executables inside
107
107
the repository as post-renderers (as this example does). Please be aware that there are security concerns associated
108
108
with doing this. The suggested practice is to ship any executable programs (including shell scripts, Python scripts
109
109
etc.) as part of the sidecar image.
@@ -135,10 +135,10 @@ Finally, it was unclear that there would be significant demand for such a featur
135
135
136
136
Of course, there is some common wisdom about making assumptions in situations like this. Two major factors caused us to
137
137
revisit the question of config management plugins in the framework. First, one of our prospective users clearly had an
138
-
architectural need of the framework that was best met using config management plugins; and upstream, ArgoCD had come up
138
+
architectural need of the framework that was best met using config management plugins; and upstream, Argo CD had come up
139
139
with an entirely new mechanism for implementing CMPs using sidecars. This took the question of rebuilding or
140
140
substituting the repo-server image off the table; but required some changes in the framework to accomodate the new
141
-
mechanism. Secondly, we learned that the existing plugin framework had been deprecated and was at risk of being removed. It was actually removed upstream in ArgoCD 2.9.
141
+
mechanism. Secondly, we learned that the existing plugin framework had been deprecated and was at risk of being removed. It was actually removed upstream in Argo CD 2.9.
142
142
143
143
Now that the framework supports user-specified sidecar plugins, we would love to hear your feedback. Does our adoption
144
144
of CMP 2.0 meet your needs? Please engage with us in our [upstream issue tracker](https://github.com/validatedpatterns/common/issues).
0 commit comments