Comments (6)
Vault Interop
Regarding ArgoCD Vault Plugin: This was one of the reasons for writing vault-replacer. Deploying a helm chart with values.yaml containing a replacable thing doesn't work in ArgoCD vault plugin, and cannot be made to.
Adding approle support to vault-replacer would be my fix for your scenario if I understand it correctly.
Overlays
Extending helm support in lovely for overlays would be easy and I'm happy to do that.
Kustomize overlays should already work, you just specify the location of the overlay. What doesn't work will be local relative paths outside of the current working directory, but this is because of Argo CD sandboxing of application deployments to prevent viewing of other application data. If you refer to a remote base it should work (although we don't support authentication at the moment (see #36).
Environment variables
I'm not sure what environment variables you want to do what. (Names are restricted by Argo CD (see #34))
The documented environment variables for merge or patching values.yaml or kustomization.yaml may be able to help you.
Please could you document what you'd like to see happen here?
from argocd-lovely-plugin.
Thanks @Joibel for your swift reply.
About Vault interop, I do confirm that adding approle support to vault-replacer is ok.
About overlays, you highlighted what's wrong in my case : What doesn't work will be local relative paths outside of the current working directory. In order to avoid duplicated configuration, instances configuration must be always setup as a deviation from a base setup. From this Top => Down model, I don't see how to manage all in a current working directory ...
About environment variables, this is the same idea : avoid hard coded duplicated configuration. Please have a look to the example below.
Let's consider an Ingress to access Prometheus GUI. The ingress manifest file is managed as a kustomize extra resource to Prometheus Helm chart.
The Ingress.spec.rules.host value does include the ${WILDCARD_FQDN} path of the k8s cluster where the ingress is gonna be deployed. What's the way to resolve such environment variable along Lovely plugin processing path ?
- Dirty & short term solution
From ArgoCD 2.4, rename WILDCARD_FQDN into ARGOCD_ENV_WILDCARD_FQDN
In generate plugin command, add a first step to browse & envsubst the current working directory and then run lovely plugin
- Mid term solution
As vault-replacer plugin does, build an envsubst-replacer running as preprocessing plugin of lovely plugin. Plugin envsubs-replacer should get the environment variable from a file in the current working directory.
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/auth-signin: "https://oauth2.${WILDCARD_FQDN}/oauth2/start"
nginx.ingress.kubernetes.io/auth-url: "http://${ARGOCD_OAUTH2_APP_NAME}-oauth2-proxy.${ARGOCD_OAUTH2_APP_NAMESPACE}.svc.cluster.local/oauth2/auth"
name: "${ARGOCD_APP_NAME}-prometheus-oauth2"
spec:
rules:
- host: "${ARGOCD_APP_NAME}-prometheus-oauth2.${WILDCARD_FQDN}"
http:
paths:
- backend:
service:
name: "${ARGOCD_APP_NAME}-prometheus-prometheus"
port:
number: 9090
path: /
pathType: Prefix
tls:
- hosts:
- "${ARGOCD_APP_NAME}-prometheus-oauth2.${WILDCARD_FQDN}"
secretName: "${ARGOCD_APP_NAME}-tls-secret"
from argocd-lovely-plugin.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
from argocd-lovely-plugin.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
from argocd-lovely-plugin.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
from argocd-lovely-plugin.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
from argocd-lovely-plugin.
Related Issues (20)
- bug: Environment variables from LOVELY_HELM_MERGE are expanded HOT 9
- Question: How to use argocd-vault-plugin for multiple Vault instances HOT 5
- argocd-vault-plugin container includes invalid binary HOT 1
- v0.20.0 - all plugins have the same default name HOT 4
- Environment variables LOVELY_HELM_REPO_ADD_PARAMS throwing Error: helm repo add requires 2 arguments HOT 4
- ci: CI always fails for users who offer PRs HOT 2
- CRDs not included in helmfile template processor HOT 3
- Can't run command as part of helm template HOT 2
- 401 unauthorized - Unable to pull OCI Registry images on Lovely CMP 0.22.1 (Helm 1.13.1) HOT 2
- Ytt crashes in lovely-ytt HOT 2
- Remove argocd-cm vestiges from installation examples HOT 7
- Cant add helm repo if using helmfile processor HOT 5
- Help wanted with dynamic kustomize resource configuration. HOT 1
- Adding a possibility to ignore directories HOT 4
- Provide helmwave support HOT 2
- Helmfile - view generated helmfile HOT 1
- Issue with helmfile and capabilities HOT 3
- Is there a way to use this to reference configmap/secret values in a helm values/yaml files? HOT 1
- v1.0.1 breaks dynamic Chart.yaml names HOT 14
- Install with ArgoCD Operator HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from argocd-lovely-plugin.