merge each of items into one

Signed-off-by: Joe Lee <lj_2005@163.com>
This commit is contained in:
Joe Lee 2023-05-09 09:26:24 +08:00
parent 859db71e3d
commit b662dd7108
11 changed files with 108 additions and 281 deletions

View file

@ -1,28 +0,0 @@
applicationTemplates:
- apps:
- name: guestbook
project: guestbook-project
template: |-
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: {{ .name }}
# You'll usually want to add your resources to the argocd namespace.
namespace: argocd
# Add this finalizer ONLY if you want these to cascade delete.
finalizers:
- resources-finalizer.argocd.argoproj.io
# Add labels to your application object.
labels:
name: guestbook
spec:
# The project the application belongs to.
project: {{ .project }}
# Source of the application manifests
source:
repoURL: https://github.com/argoproj/argocd-example-apps.git
targetRevision: HEAD
path: guestbook
directory:
recurse: true

View file

@ -1,28 +0,0 @@
applicationTemplates:
- apps:
- name: guestbook
project: guestbook-project
template:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: "{{ .name }}"
# You'll usually want to add your resources to the argocd namespace.
namespace: argocd
# Add this finalizer ONLY if you want these to cascade delete.
finalizers:
- resources-finalizer.argocd.argoproj.io
# Add labels to your application object.
labels:
name: guestbook
spec:
# The project the application belongs to.
project: "{{ .project }}"
# Source of the application manifests
source:
repoURL: https://github.com/argoproj/argocd-example-apps.git
targetRevision: HEAD
path: guestbook
directory:
recurse: true

View file

@ -1,31 +0,0 @@
applicationsetTemplates:
- appSets:
- name: my-appset
generators:
- list:
elements:
- cluster: engineering-dev
url: https://1.2.3.4
- cluster: engineering-prod
url: https://2.4.6.8
- cluster: finance-preprod
url: https://9.8.7.6
template: |-
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: {{ .name }}
spec:
generators: {{ toYaml .generators | nindent 4 }}
template:
metadata:
name: '{{`{{cluster}}`}}-guestbook'
spec:
project: my-project
source:
repoURL: https://github.com/infra-team/cluster-deployments.git
targetRevision: HEAD
path: guestbook/{{`{{cluster}}`}}
destination:
server: '{{`{{cluster}}`}}'
namespace: guestbook

View file

@ -1,31 +0,0 @@
applicationsetTemplates:
- appSets:
- name: my-appset
generators:
- list:
elements:
- cluster: engineering-dev
url: https://1.2.3.4
- cluster: engineering-prod
url: https://2.4.6.8
- cluster: finance-preprod
url: https://9.8.7.6
template:
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: "{{ .name }}"
spec:
generators: "{{ toYaml .generators | nindent 4 }}"
template:
metadata:
name: '{{`{{cluster}}`}}-guestbook'
spec:
project: my-project
source:
repoURL: https://github.com/infra-team/cluster-deployments.git
targetRevision: HEAD
path: guestbook/{{`{{cluster}}`}}
destination:
server: '{{`{{cluster}}`}}'
namespace: guestbook

View file

@ -0,0 +1,61 @@
itemTemplates:
- items:
- name: my-appset
generators: &generators
- list:
elements:
- cluster: engineering-dev
url: https://1.2.3.4
- cluster: engineering-prod
url: https://2.4.6.8
- cluster: finance-preprod
url: https://9.8.7.6
template:
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: "{{ .name }}"
spec:
generators: *generators
template:
metadata:
name: "{{`{{cluster}}`}}-guestbook"
spec:
project: my-project
source:
repoURL: https://github.com/infra-team/cluster-deployments.git
targetRevision: HEAD
path: guestbook/{{`{{cluster}}`}}
destination:
server: "{{`{{cluster}}`}}"
namespace: guestbook
- items:
- name: my-appset
generators:
- list:
elements:
- cluster: engineering-dev
url: https://1.2.3.4
- cluster: engineering-prod
url: https://2.4.6.8
- cluster: finance-preprod
url: https://9.8.7.6
template: |-
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: {{ .name }}
spec:
generators: {{ toYaml .generators | nindent 4 }}
template:
metadata:
name: '{{`{{cluster}}`}}-guestbook'
spec:
project: my-project
source:
repoURL: https://github.com/infra-team/cluster-deployments.git
targetRevision: HEAD
path: guestbook/{{`{{cluster}}`}}
destination:
server: '{{`{{cluster}}`}}'
namespace: guestbook

View file

@ -1,27 +0,0 @@
projectTemplates:
- projects:
- name: my-project
namespace: my-namespace
template: |-
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: {{ .name }}
namespace: argocd
# Finalizer that ensures that project is not deleted until it is not referenced by any application
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
# Project description
description: Example Project
# Allow manifests to deploy from any Git repos
sourceRepos:
- '*'
# Only permit applications to deploy to the guestbook namespace in the same cluster
# Destination clusters can be identified by 'server', 'name', or both.
destinations:
- namespace: {{ .namespace }}
server: https://kubernetes.default.svc
name: in-cluster

View file

@ -1,27 +0,0 @@
projectTemplates:
- projects:
- name: my-project
namespace: my-namespace
template:
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: "{{ .name }}"
namespace: argocd
# Finalizer that ensures that project is not deleted until it is not referenced by any application
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
# Project description
description: Example Project
# Allow manifests to deploy from any Git repos
sourceRepos:
- "*"
# Only permit applications to deploy to the guestbook namespace in the same cluster
# Destination clusters can be identified by 'server', 'name', or both.
destinations:
- namespace: "{{ .namespace }}"
server: https://kubernetes.default.svc
name: in-cluster

View file

@ -49,17 +49,17 @@ spec:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}
{{- end }} {{- end }}
{{- end }} {{- end }}
---
{{- range .Values.applicationTemplates }} {{- range .Values.itemTemplates }}
{{- if kindIs "string" .template }} {{- if kindIs "string" .template }}
{{- $template := .template -}} {{- $template := .template -}}
{{- range .apps }} {{- range .items }}
--- ---
{{ tpl $template (set . "Template" $.Template) }} {{ tpl $template (set . "Template" $.Template) }}
{{- end }} {{- end }}
{{- else }} {{- else }}
{{- $template := .template | toYaml -}} {{- $template := .template | toYaml -}}
{{- range .apps }} {{- range .items }}
--- ---
{{ tpl $template (set . "Template" $.Template) }} {{ tpl $template (set . "Template" $.Template) }}
{{- end }} {{- end }}

View file

@ -77,19 +77,3 @@ spec:
{{- end -}} {{- end -}}
{{- end }} {{- end }}
{{- end }} {{- end }}
---
{{- range .Values.applicationsetTemplates }}
{{- if kindIs "string" .template }}
{{- $template := .template -}}
{{- range .appSets }}
---
{{ tpl $template (set . "Template" $.Template) }}
{{- end }}
{{- else }}
{{- $template := .template | toYaml -}}
{{- range .appSets }}
---
{{ tpl $template (set . "Template" $.Template) }}
{{- end }}
{{- end }}
{{- end }}

View file

@ -68,18 +68,3 @@ spec:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- range .Values.projectTemplates }}
{{- if kindIs "string" .template }}
{{- $template := .template -}}
{{- range .projects }}
---
{{ tpl $template (set . "Template" $.Template) }}
{{- end }}
{{- else }}
{{- $template := .template | toYaml -}}
{{- range .projects }}
---
{{ tpl $template (set . "Template" $.Template) }}
{{- end }}
{{- end }}
{{- end }}

View file

@ -40,43 +40,6 @@ applications: []
# - name: url # - name: url
# value: https://argoproj.github.io/ # value: https://argoproj.github.io/
applicationTemplates: []
# - apps:
# - name: guestbook
# project: guestbook-project
# template: |-
# apiVersion: argoproj.io/v1alpha1
# kind: Application
# metadata:
# name: {{ .name }}
# # You'll usually want to add your resources to the argocd namespace.
# namespace: argocd
# # Add this finalizer ONLY if you want these to cascade delete.
# finalizers:
# - resources-finalizer.argocd.argoproj.io
# # Add labels to your application object.
# labels:
# name: guestbook
# spec:
# # The project the application belongs to.
# project: {{ .project }}
# # Source of the application manifests
# source:
# repoURL: https://github.com/argoproj/argocd-example-apps.git # Can point to either a Helm chart repo or a git repo.
# targetRevision: HEAD # For Helm, this refers to the chart version.
# path: guestbook # This has no meaning for Helm charts pulled directly from a Helm repo instead of git.
# # helm specific config
# chart: chart-name # Set this when pulling directly from a Helm repo. DO NOT set for git-hosted Helm charts.
# helm:
# passCredentials: false # If true then adds --pass-credentials to Helm commands to pass credentials to all domains
# # Extra parameters to set (same as setting through values.yaml, but these take precedence)
# parameters:
# - name: "nginx-ingress.controller.service.annotations.external-dns\\.alpha\\.kubernetes\\.io/hostname"
# value: mydomain.example.com
# - name: "ingress.annotations.kubernetes\\.io/tls-acme"
# value: "true"
# forceString: true # ensures that value is treated as a string
# -- Deploy Argo CD Projects within this helm release # -- Deploy Argo CD Projects within this helm release
# @default -- `[]` (See [values.yaml]) # @default -- `[]` (See [values.yaml])
## Ref: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/ ## Ref: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/
@ -123,31 +86,6 @@ projects: []
# sourceNamespaces: # sourceNamespaces:
# - argocd # - argocd
projectTemplates: []
# - projects:
# - name: my-project
# namespace: my-namespace
# template: |-
# apiVersion: argoproj.io/v1alpha1
# kind: AppProject
# metadata:
# name: {{ .name }}
# namespace: argocd
# # Finalizer that ensures that project is not deleted until it is not referenced by any application
# finalizers:
# - resources-finalizer.argocd.argoproj.io
# spec:
# # Project description
# description: Example Project
# # Allow manifests to deploy from any Git repos
# sourceRepos:
# - '*'
# # Only permit applications to deploy to the guestbook namespace in the same cluster
# # Destination clusters can be identified by 'server', 'name', or both.
# destinations:
# - namespace: {{ .namespace }}
# server: https://kubernetes.default.svc
# name: in-cluster
# -- Deploy Argo CD ApplicationSets within this helm release # -- Deploy Argo CD ApplicationSets within this helm release
# @default -- `[]` (See [values.yaml]) # @default -- `[]` (See [values.yaml])
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/ ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/
@ -195,18 +133,48 @@ applicationsets: []
# # Set Application finalizer # # Set Application finalizer
# preserveResourcesOnDeletion: false # preserveResourcesOnDeletion: false
applicationsetTemplates: [] itemTemplates: []
# - appSets: # - items:
# - name: my-appset
# generators: &generators
# - list:
# elements:
# - cluster: engineering-dev
# url: https://1.2.3.4
# - cluster: engineering-prod
# url: https://2.4.6.8
# - cluster: finance-preprod
# url: https://9.8.7.6
# template:
# apiVersion: argoproj.io/v1alpha1
# kind: ApplicationSet
# metadata:
# name: "{{ .name }}"
# spec:
# generators: *generators
# template:
# metadata:
# name: "{{`{{cluster}}`}}-guestbook"
# spec:
# project: my-project
# source:
# repoURL: https://github.com/infra-team/cluster-deployments.git
# targetRevision: HEAD
# path: guestbook/{{`{{cluster}}`}}
# destination:
# server: "{{`{{cluster}}`}}"
# namespace: guestbook
# - items:
# - name: my-appset # - name: my-appset
# generators: # generators:
# - list: # - list:
# elements: # elements:
# - cluster: engineering-dev # - cluster: engineering-dev
# url: https://1.2.3.4 # url: https://1.2.3.4
# - cluster: engineering-prod # - cluster: engineering-prod
# url: https://2.4.6.8 # url: https://2.4.6.8
# - cluster: finance-preprod # - cluster: finance-preprod
# url: https://9.8.7.6 # url: https://9.8.7.6
# template: |- # template: |-
# apiVersion: argoproj.io/v1alpha1 # apiVersion: argoproj.io/v1alpha1
# kind: ApplicationSet # kind: ApplicationSet
@ -216,16 +184,17 @@ applicationsetTemplates: []
# generators: {{ toYaml .generators | nindent 4 }} # generators: {{ toYaml .generators | nindent 4 }}
# template: # template:
# metadata: # metadata:
# name: '{{`{{cluster}}`}}-guestbook' # name: '{{`{{cluster}}`}}-guestbook'
# spec: # spec:
# project: my-project # project: my-project
# source: # source:
# repoURL: https://github.com/infra-team/cluster-deployments.git # repoURL: https://github.com/infra-team/cluster-deployments.git
# targetRevision: HEAD # targetRevision: HEAD
# path: guestbook/{{`{{cluster}}`}} # path: guestbook/{{`{{cluster}}`}}
# destination: # destination:
# server: '{{`{{cluster}}`}}' # server: '{{`{{cluster}}`}}'
# namespace: guestbook # namespace: guestbook
# -- Deploy Argo UI Extensions within this helm release # -- Deploy Argo UI Extensions within this helm release
# @default -- `[]` (See [values.yaml]) # @default -- `[]` (See [values.yaml])
## This function in tech preview stage, do expect unstability or breaking changes in newer versions. Bump image.tag if necessary. ## This function in tech preview stage, do expect unstability or breaking changes in newer versions. Bump image.tag if necessary.