-
Notifications
You must be signed in to change notification settings - Fork 1
/
values.schema.json
195 lines (195 loc) · 9.36 KB
/
values.schema.json
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
{
"$schema": "https://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"image": {
"type": "object",
"description": "The image has the java environment and vkconfig, which is compiled against a specific version of Vertica",
"additionalProperties": false,
"properties": {
"repository": {
"type": "string",
"description": "The image repository and name",
"default": "opentext/kafka-scheduler"
},
"pullPolicy": {
"type": "string",
"default": "IfNotPresent",
"description": "The pull policy to use for the image"
},
"tag": {
"type": "string",
"description": "Overrides the image tag. If using the official vertica repository, this tag corresponds to the vertica version that vkconfig was complied against. Pick the same version that matches the Vertica server you have deployed."
}
},
"required": [
"pullPolicy",
"repository"
],
"title": "Image"
},
"launcherEnabled": {
"type": "boolean",
"description": "The launcher is a deployment object that runs the 'vkconfig launch' program. You must already have done setup of vkconfig for this program to work. You can temporarily disable it to allow for setup to occur.",
"additionalProperties": false,
"default": false
},
"replicaCount": {
"type": "integer",
"description": "The number of pods for the launcher deployment. The pods themselves go through a leader election process such that only 1 pod is ever handling requests",
"default": 1
},
"initializerEnabled": {
"type": "boolean",
"description": "The initializer is a pod that runs the container without invoking vkconfig. It gives you CLI access to the vkconfig command. The intention is that you would use the CLI to do neccessary setup then disabled it when you want to run the launcher.",
"default": true
},
"conf": {
"type": "object",
"additionalProperties": false,
"description": "The vkconfig.conf is a file that is mounted in the pods for command line options passed to vkconfig. This section controls how that file gets generated and mounted.",
"properties": {
"generate": {
"type": "boolean",
"description": "Set this to false if you already have a vkconfig.conf in a ConfigMap and don't need helm to generate one.",
"default": true
},
"configMapName": {
"type": "string",
"description": "The name of the ConfigMap that contains the contents of vkconfig.conf. If generate=false, this must already exist before deployment. If this is omitted a suitable name for the ConfigMap is chosen based on the release/chart name."
},
"content": {
"description": "Content is a set of key/value pairs that make up the vkconfig.conf. There is no prescribed set of keys that need to be here. See this to find options to set: https://docs.vertica.com/latest/en/kafka-integration/vkconfig-script-options/common-vkconfig-script-options/",
"type": "object",
"additionalProperties": true,
"properties": {
"config-schema": {
"type": "string",
"default": "Scheduler"
},
"username": {
"type": "string",
"default": "dbadmin"
},
"password": {
"type": "string"
},
"dbhost": {
"type": "string"
},
"dbport": {
"type": "string",
"default": "5433"
},
"enable-ssl": {
"type": "string",
"default": "false"
}
},
"required": [
"config-schema",
"username"
],
"title": "Content"
}
},
"required": [
"configMapName",
"content",
"generate"
],
"title": "conf"
},
"tls": {
"type": "object",
"description": "If vkconfig needs to have TLS setup in order to communicate fill in the following section.",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean",
"description": "Set this to true to mount the secrets and have the JVM options set for the trust/key store in the pods.",
"default": false
},
"trustStoreSecretName": {
"description": "Name of an existing Secret that contains the keystore. If this is omitted, then no keystore information is included.",
"type": "string"
},
"trustStoreMountPath": {
"description": "Directory name where the truststore will be mounted in the pod. This controls the name of the truststore within the pod. The full path to the truststore will be constructed by combining this parameter with trustStoreSecretKey.",
"type": "string"
},
"trustStoreSecretKey": {
"description": "A key within tls.trustStoreSecretName that will be used as the truststore file name. This is used along with tls.trustStoreMountPath to form the full path to the key in the pod.",
"type": "string"
},
"trustStorePassword": {
"description": "The password to use along with the truststore. If omitted, then no password is used.",
"type": "string"
},
"keyStoreSecretName": {
"description": "Name of an existing Secret that contains the keystore. If this is omitted, then no keystore informiation is included.",
"type": "string"
},
"keyStoreMountPath": {
"description": "Directory name where the keystore will be mounted in the pod. This controls the name of the keystore within the pod. The full path to the keystore will be constructed by combining this parameter with keyStoreSecretKey.",
"type": "string"
},
"keyStoreSecretKey": {
"description": "A key within keyStoreSecretName that will be used as the keystore file name. This is used along with tls.keyStoreMountPath to form the full path to the key in the pod.",
"type": "string"
},
"keyStorePassword": {
"description": "The password to use along with the keystore. If omitted, then no password is used.",
"type": "string"
}
},
"required": [
"enabled"
],
"title": "TLS"
},
"jvmOpts": {
"description": "Controls the setting of VKCONFIG_JVM_OPTS in the pods. Values for truststore and keystore are added automatically based on the tls.* values",
"type": "string"
},
"timezone": {
"description": "Utilize this to manage the timezone of the logger. As logging employs log4j, ensure you use a Java-friendly timezone ID. Refer to this site for available IDs: https://docs.oracle.com/middleware/1221/wcs/tag-ref/MISC/TimeZones.html",
"type": "string",
"default": "UTC"
},
"serviceAccount": {
"type": "object",
"additionalProperties": false,
"description": "Controls the ServiceAccount to use for the pods",
"properties": {
"create": {
"description": "Specifies whether a service account should be created",
"default": true,
"type": "boolean"
},
"annotations": {
"description": "Annotations to add to the service account",
"required": [],
"additionalProperties": {
"type": "string"
}
},
"name": {
"description": "The name of the service account to use. If not set and create is true, a name is generated using the fullname template",
"type": "string"
}
},
"required": [
"annotations",
"create",
"name"
],
"title": "ServiceAccount"
}
},
"required": [
"conf",
"image"
],
"title": "Vertica Kafka Scheduler"
}