-
Notifications
You must be signed in to change notification settings - Fork 175
/
Copy pathexample.toml
140 lines (123 loc) · 5.5 KB
/
example.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# version: v3.0.0
# context defines the context of this Desired State File.
# It is used to allow Helmsman identify which releases are managed by which DSF.
# Therefore, it is important that each DSF uses a unique context.
context= "test-infra" # defaults to "default" if not provided
# metadata -- add as many key/value pairs as you want
[metadata]
org = "example.com/${ORG_PATH}/"
maintainer = "k8s-admin ([email protected])"
description = "example Desired State File for demo purposes."
key= "${VALUE}"
# paths to the certificate for connecting to the cluster
# You can skip this if you use Helmsman on a machine with kubectl already connected to your k8s cluster.
# you have to use exact key names here : 'caCrt' for certificate and 'caKey' for the key and caClient for the client certificate
[certificates]
# caClient = "gs://mybucket/client.crt" # GCS bucket path
# caCrt = "s3://mybucket/ca.crt" # S3 bucket path
# caKey = "../ca.key" # valid local file relative path
[settings]
kubeContext = "minikube" # will try connect to this context first, if it does not exist, it will be created using the details below
# username = "admin"
# password = "$K8S_PASSWORD" # the name of an environment variable containing the k8s password
# clusterURI = "${SET_URI}" # the name of an environment variable containing the cluster API
# #clusterURI = "https://192.168.99.100:8443" # equivalent to the above
# storageBackend = "secret" # default is secret
# slackWebhook = "$slack" # or "your slack webhook url"
# reverseDelete = false # reverse the priorities on delete
#### to use bearer token:
# bearerToken = true
# clusterURI = "https://kubernetes.default"
# [settings.globalHooks]
# successCondition= "Initialized"
# deleteOnSuccess= true
# postInstall= "job.yaml"
globalMaxHistory= 5
# define your environments and their k8s namespaces
# syntax:
# [namespaces.<your namespace>] -- whitespace before this entry does not matter, use whatever indentation style you like
# protected = <true or false> -- default to false
[namespaces]
[namespaces.production]
protected = true
[[namespaces.production.limits]]
type = "Container"
[namespaces.production.limits.default]
cpu = "300m"
memory = "200Mi"
[namespaces.production.limits.defaultRequest]
cpu = "200m"
memory = "100Mi"
[[namespaces.production.limits]]
type = "Pod"
[namespaces.production.limits.max]
memory = "300Mi"
[namespaces.staging]
protected = false
[namespaces.staging.labels]
env = "staging"
[namespaces.staging.quotas]
"limits.cpu" = "10"
"limits.memory" = "30Gi"
pods = "25"
"requests.cpu" = "10"
"requests.memory" = "30Gi"
[[namespaces.staging.quotas.customQuotas]]
name = "requests.nvidia.com/gpu"
value = "2"
# define any private/public helm charts repos you would like to get charts from
# syntax: repo_name = "repo_url"
# only private repos hosted in s3 buckets are now supported
[helmRepos]
argo = "https://argoproj.github.io/argo-helm"
jfrog = "https://charts.jfrog.io"
# myS3repo = "s3://my-S3-private-repo/charts"
# myGCSrepo = "gs://my-GCS-private-repo/charts"
# custom = "https://$user:[email protected]"
# define the desired state of your applications helm charts
# each contains the following:
[apps]
[apps.argo]
namespace = "production" # maps to the namespace as defined in namespaces above
enabled = true # change to false if you want to delete this app release [default = false]
chart = "argo/argo" # changing the chart name means delete and recreate this release
version = "0.8.5" # chart version
### Optional values below
valuesFile = "" # leaving it empty uses the default chart values
test = false # run the tests when this release is installed for the first time only
protected = true
priority= -3
wait = true
[apps.argo.hooks]
successCondition= "Complete"
successTimeout= "90s"
deleteOnSuccess= true
preInstall="job.yaml"
# preInstall="https://github.com/jetstack/cert-manager/releases/download/v0.14.0/cert-manager.crds.yaml"
# postInstall="https://raw.githubusercontent.com/jetstack/cert-manager/release-0.14/deploy/manifests/00-crds.yaml"
# preUpgrade="job.yaml"
# postUpgrade="job.yaml"
# preDelete="job.yaml"
# postDelete="job.yaml"
# [apps.argo.setString] # values to override values from values.yaml with values from env vars or directly entered-- useful for passing secrets to charts
# AdminPassword="$SOME_PASSWORD" # $SOME_PASSWORD must exist in the environment
# MyLongIntVar="1234567890"
[apps.argo.set]
"images.tag"="$$TAG" # $$ is escaped and $TAG is passed literally to images.tag (no env variable expansion)
[apps.artifactory]
namespace = "production" # maps to the namespace as defined in namespaces above
enabled = true # change to false if you want to delete this app release [default = false]
chart = "jfrog/artifactory" # changing the chart name means delete and recreate this release
version = "8.3.2" # chart version
### Optional values below
valuesFile = "" # leaving it empty uses the default chart values
test = false # run the tests when this release is installed for the first time only
priority= -2
noHooks= false
timeout= 300
maxHistory = 4
# additional helm flags for this release
helmFlags= [
"--devel",
]
# See https://github.com/Praqma/helmsman/blob/master/docs/desired_state_specification.md#apps for more apps options