Files
deploy/applicationset/examples/design-doc/git-files-literal-fasttemplate.yaml
139de0ee5c feat: ApplicationSet Go template (#10026)
* ApplicationSet Go Template

Signed-off-by: Geoffrey Muselli <[email protected]>

* go template improvements

Signed-off-by: CI <[email protected]>

* update go mod

Signed-off-by: CI <[email protected]>

* fix tests

Signed-off-by: CI <[email protected]>

* fix tests

Signed-off-by: CI <[email protected]>

* fix tests

Signed-off-by: CI <[email protected]>

* Add tests for error handling

Signed-off-by: Geoffrey Muselli <[email protected]>

Co-authored-by: CI <[email protected]>
2022-08-08 11:50:53 -04:00

69 lines
2.0 KiB
YAML

# This example demonstrates a git file generator which produces its items based on one or
# more files referenced in a git repo. The referenced files would contain a json/yaml list of
# arbitrary structured objects. Each item of the list would become a set of parameters to a
# generated application.
#
# Suppose the following git directory structure:
#
# cluster-deployments
# ├── apps
# │ └── guestbook
# │ ├── v1.0
# │ │ └── install.yaml
# │ └── v2.0
# │ └── install.yaml
# └── config
# └── clusters.json
#
# In this example, the `clusters.json` file is json list of structured data:
# [
# {
# "account": "123456",
# "asset_id": "11223344",
# "cluster": {
# "owner": "[email protected]",
# "name": "engineering-dev",
# "address": "http://1.2.3.4"
# },
# "appVersions": {
# "prometheus-operator": "v0.38",
# "guestbook": "v2.0"
# }
# },
# {
# "account": "456789",
# "asset_id": "55667788",
# "cluster": {
# "owner": "[email protected]",
# "name": "engineering-prod",
# "address": "http://2.4.6.8"
# },
# "appVersions": {
# "prometheus-operator": "v0.38",
# "guestbook": "v1.0"
# }
# }
# ]
#
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: guestbook
spec:
generators:
- git:
repoURL: https://github.com/infra-team/cluster-deployments.git
files:
- path: config/clusters.json
template:
metadata:
name: '{{cluster.name}}-guestbook'
spec:
source:
repoURL: https://github.com/infra-team/cluster-deployments.git
targetRevision: HEAD
path: apps/guestbook/{{appVersions.guestbook}}
destination:
server: http://kubernetes.default.svc
namespace: guestbook