SGConfig.yaml 73 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365
  1. ---
  2. apiVersion: apiextensions.k8s.io/v1
  3. kind: CustomResourceDefinition
  4. metadata:
  5. name: sgconfigs.stackgres.io
  6. spec:
  7. group: stackgres.io
  8. names:
  9. kind: SGConfig
  10. listKind: SGConfigList
  11. plural: sgconfigs
  12. singular: sgconfig
  13. scope: Namespaced
  14. versions:
  15. - name: v1
  16. served: true
  17. storage: true
  18. subresources:
  19. status: {}
  20. additionalPrinterColumns:
  21. - jsonPath: .metadata.annotations.stackgres\.io/lockPod
  22. name: operator-pod
  23. type: string
  24. - jsonPath: .status.version
  25. name: operator-version
  26. type: string
  27. schema:
  28. openAPIV3Schema:
  29. type: object
  30. description: |
  31. SGConfig stores the configuration of the StackGres Operator
  32. > **WARNING**: Creating more than one SGConfig is forbidden.
  33. The single SGConfig should be created automatically during installation.
  34. More SGConfig may exists only when allowedNamespaces or allowedNamespaceLabelSelector is used.
  35. properties:
  36. spec:
  37. description: Spec defines the desired state of SGConfig
  38. type: object
  39. properties:
  40. containerRegistry:
  41. type: string
  42. default: quay.io
  43. description: |
  44. The container registry host (and port) where the images will be pulled from.
  45. > This value can only be set in operator helm chart or with the environment variable `SG_CONTAINER_REGISTRY`.
  46. imagePullPolicy:
  47. type: string
  48. default: "IfNotPresent"
  49. description: Image pull policy used for images loaded by the Operator
  50. imagePullSecrets:
  51. type: array
  52. description: |
  53. The list of references to secrets in the same namespace where a ServiceAccount is created by the operator to use for pulling any images in pods that reference such ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
  54. items:
  55. type: object
  56. description: A reference to a secrets in the same namespace where a ServiceAccount is created by the operator to use for pulling any images in pods that reference such ServiceAccount.
  57. properties:
  58. name:
  59. type: string
  60. description: The name of the referenced Secret.
  61. allowedNamespaces:
  62. type: array
  63. description: |
  64. Section to configure allowed namespaces that the operator is allowed to use. If empty all namespaces will be allowed (default).
  65. > This value can only be set in operator helm chart or with the environment variable `ALLOWED_NAMESPACES`.
  66. > It is set by OLM when [scoping the operator](https://olm.operatorframework.io/docs/advanced-tasks/operator-scoping-with-operatorgroups/).
  67. items:
  68. type: string
  69. description: |
  70. A namespace that the operator is allowed to use.
  71. allowedNamespaceLabelSelector:
  72. type: object
  73. description: |
  74. Section to configure namespaces that the operator is allowed to use. If allowedNamespaces is defined it will be used instead. If empty all namespaces will be allowed (default).
  75. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#labelselector-v1-meta
  76. > This value can only be set in operator helm chart.
  77. additionalProperties:
  78. type: string
  79. disableClusterRole:
  80. type: boolean
  81. description: |
  82. When set to `true` the creation of the operator ClusterRole and ClusterRoleBinding is disabled.
  83. Also, when `true`, some features that rely on unnamespaced resources premissions will be disabled:
  84. * Creation and upgrade of CustomResourceDefinitions
  85. * Set CA bundle for Webhooks
  86. * Check existence of CustomResourceDefinition when listing custom resources
  87. * Validation of StorageClass
  88. * REST API endpoint `can-i/{verb}/{resource}` and `can-i` will always return the full list of permissions for any resource and verb since they rely on creation of subjectaccessreviews unnamespaced resource that requires a cluster role.
  89. * Other REST API endpoints will not work since they rely on impersonation that requires a cluster role.
  90. This point in particular breaks the Web Console completely. You may still enable this specific cluster role with `.allowImpersonationForRestApi`.
  91. If you do not need the Web Console you may still disable it completely by setting `.deploy.restapi` to `false`.
  92. When set to `true` and `allowedNamespaces` is not set or is empty then `allowedNamespaces` will be considered set and containing only the namespace of the operator.
  93. It is `false` by default.
  94. > This value can only be set in operator helm chart.
  95. allowImpersonationForRestApi:
  96. type: boolean
  97. description: |
  98. When set to `true` the cluster role for impersonation will be created even if `disableClusterRole` is set to `true`.
  99. It is `false` by default.
  100. > This value can only be set in operator helm chart.
  101. disableCrdsAndWebhooksUpdate:
  102. type: boolean
  103. description: |
  104. When set to `true` the cluster role to update or patch CRDs will be disabled.
  105. It is `false` by default.
  106. > This value can only be set in operator helm chart.
  107. sgConfigNamespace:
  108. type: string
  109. description: |
  110. When set will indicate the namespace where the SGConfig used by the operator will be created.
  111. By default the SGConfig will be created in the same namespace as the operator.
  112. > This value can only be set in operator helm chart.
  113. serviceAccount:
  114. type: object
  115. description: Section to configure Operator Installation ServiceAccount
  116. properties:
  117. create:
  118. type: boolean
  119. default: true
  120. description: |
  121. If `true` the Operator Installation ServiceAccount will be created
  122. > This value can only be set in operator helm chart.
  123. annotations:
  124. type: object
  125. x-kubernetes-preserve-unknown-fields: true
  126. description: Section to configure Installation ServiceAccount annotations
  127. repoCredentials:
  128. type: array
  129. description: |
  130. Repositories credentials Secret names
  131. > This value can only be set in operator helm chart.
  132. items:
  133. type: string
  134. description: |
  135. Repository credentials Secret name
  136. > This value can only be set in operator helm chart.
  137. operator:
  138. type: object
  139. description: Section to configure Operator Pod
  140. properties:
  141. image:
  142. type: object
  143. description: Section to configure Operator image
  144. properties:
  145. name:
  146. type: string
  147. default: "stackgres/operator"
  148. description: |
  149. Operator image name
  150. > This value can only be set in operator helm chart.
  151. tag:
  152. type: string
  153. description: |
  154. Operator image tag
  155. > This value can only be set in operator helm chart.
  156. pullPolicy:
  157. type: string
  158. default: "IfNotPresent"
  159. description: |
  160. Operator image pull policy
  161. > This value can only be set in operator helm chart.
  162. annotations:
  163. type: object
  164. description: Operator Pod annotations
  165. x-kubernetes-preserve-unknown-fields: true
  166. resources:
  167. type: object
  168. description: |
  169. Operator Pod resources. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#resourcerequirements-v1-core
  170. > This value can only be set in operator helm chart.
  171. x-kubernetes-preserve-unknown-fields: true
  172. nodeSelector:
  173. type: object
  174. x-kubernetes-preserve-unknown-fields: true
  175. description: |
  176. Operator Pod node selector
  177. > This value can only be set in operator helm chart.
  178. tolerations:
  179. type: array
  180. description: |
  181. Operator Pod tolerations. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#toleration-v1-core
  182. > This value can only be set in operator helm chart.
  183. items:
  184. type: object
  185. x-kubernetes-preserve-unknown-fields: true
  186. affinity:
  187. type: object
  188. x-kubernetes-preserve-unknown-fields: true
  189. description: |
  190. Operator Pod affinity. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#affinity-v1-core
  191. > This value can only be set in operator helm chart.
  192. serviceAccount:
  193. type: object
  194. description: Section to configure Operator ServiceAccount
  195. properties:
  196. annotations:
  197. type: object
  198. x-kubernetes-preserve-unknown-fields: true
  199. description: |
  200. Section to configure Operator ServiceAccount annotations
  201. > This value can only be set in operator helm chart.
  202. repoCredentials:
  203. type: array
  204. description: |
  205. Repositories credentials Secret names
  206. > This value can only be set in operator helm chart.
  207. items:
  208. type: string
  209. service:
  210. type: object
  211. description: Section to configure Operator Service
  212. properties:
  213. annotations:
  214. type: object
  215. x-kubernetes-preserve-unknown-fields: true
  216. description: |
  217. Section to configure Operator Service annotations
  218. > This value can only be set in operator helm chart.
  219. restapi:
  220. type: object
  221. description: Section to configure REST API Pod
  222. properties:
  223. name:
  224. type: string
  225. default: stackgres-restapi
  226. description: REST API Deployment name
  227. image:
  228. type: object
  229. description: Section to configure REST API image
  230. properties:
  231. name:
  232. type: string
  233. default: "stackgres/restapi"
  234. description: REST API image name
  235. tag:
  236. type: string
  237. description: REST API image tag
  238. pullPolicy:
  239. type: string
  240. default: "IfNotPresent"
  241. description: REST API image pull policy
  242. annotations:
  243. type: object
  244. x-kubernetes-preserve-unknown-fields: true
  245. description: REST API Pod annotations
  246. resources:
  247. type: object
  248. x-kubernetes-preserve-unknown-fields: true
  249. description: REST API Pod resources. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#resourcerequirements-v1-core
  250. nodeSelector:
  251. type: object
  252. x-kubernetes-preserve-unknown-fields: true
  253. description: REST API Pod node selector
  254. tolerations:
  255. type: array
  256. description: REST API Pod tolerations. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#toleration-v1-core
  257. items:
  258. type: object
  259. x-kubernetes-preserve-unknown-fields: true
  260. affinity:
  261. type: object
  262. x-kubernetes-preserve-unknown-fields: true
  263. description: REST API Pod affinity. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#affinity-v1-core
  264. serviceAccount:
  265. type: object
  266. description: Section to configure REST API ServiceAccount
  267. properties:
  268. annotations:
  269. type: object
  270. x-kubernetes-preserve-unknown-fields: true
  271. description: REST API ServiceAccount annotations
  272. repoCredentials:
  273. type: array
  274. description: Repositories credentials Secret names
  275. items:
  276. type: string
  277. description: Repository credentials Secret name
  278. service:
  279. type: object
  280. description: Section to configure REST API Service
  281. properties:
  282. annotations:
  283. type: object
  284. x-kubernetes-preserve-unknown-fields: true
  285. description: REST API Service annotations
  286. adminui:
  287. type: object
  288. description: Section to configure Web Console container
  289. properties:
  290. image:
  291. type: object
  292. description: Section to configure Web Console image
  293. properties:
  294. name:
  295. type: string
  296. default: "stackgres/admin-ui"
  297. description: Web Console image name
  298. tag:
  299. type: string
  300. description: Web Console image tag
  301. pullPolicy:
  302. type: string
  303. default: "IfNotPresent"
  304. description: Web Console image pull policy
  305. resources:
  306. type: object
  307. x-kubernetes-preserve-unknown-fields: true
  308. description: Web Console resources. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#resourcerequirements-v1-core
  309. service:
  310. type: object
  311. description: Section to configure Web Console service.
  312. properties:
  313. exposeHTTP:
  314. type: boolean
  315. default: false
  316. description: When set to `true` the HTTP port will be exposed in the Web Console Service
  317. type:
  318. type: string
  319. default: ClusterIP
  320. description: |
  321. The type used for the service of the UI:
  322. * Set to LoadBalancer to create a load balancer (if supported by the kubernetes cluster)
  323. to allow connect from Internet to the UI. Note that enabling this feature will probably incurr in
  324. some fee that depend on the host of the kubernetes cluster (for example this is true for EKS, GKE
  325. and AKS).
  326. * Set to NodePort to expose admin UI from kubernetes nodes.
  327. loadBalancerIP:
  328. type: string
  329. description: |
  330. LoadBalancer will get created with the IP specified in
  331. this field. This feature depends on whether the underlying cloud-provider supports specifying
  332. the loadBalancerIP when a load balancer is created. This field will be ignored if the
  333. cloud-provider does not support the feature.
  334. loadBalancerSourceRanges:
  335. type: array
  336. description: |
  337. If specified and supported by the platform,
  338. this will restrict traffic through the cloud-provider load-balancer will be restricted to the
  339. specified client IPs. This field will be ignored if the cloud-provider does not support the
  340. feature.
  341. More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
  342. items:
  343. type: string
  344. nodePort:
  345. type: integer
  346. description: The HTTPS port used to expose the Service on Kubernetes nodes
  347. nodePortHTTP:
  348. type: integer
  349. description: The HTTP port used to expose the Service on Kubernetes nodes
  350. collector:
  351. type: object
  352. description: |
  353. Section to configure OpenTelemetry Collector
  354. By default a single instance of OpenTelemetry Collector will receive metrics
  355. from all monitored Pods and will then exports those metrics to
  356. a configured target (by default will expose a Prometheus exporter).
  357. See receivers section to scale this architecture to a set of OpenTelemetry Collectors.
  358. default:
  359. service:
  360. spec:
  361. type: ClusterIP
  362. ports:
  363. - name: prom-http
  364. protocol: TCP
  365. port: 9464
  366. targetPort: prom-http
  367. ports:
  368. - name: prom-http
  369. protocol: TCP
  370. containerPort: 9464
  371. config:
  372. receivers:
  373. otlp:
  374. protocols:
  375. grpc:
  376. endpoint: "0.0.0.0:4317"
  377. tls:
  378. ca_file: "/etc/operator/certs/tls.crt"
  379. cert_file: "/etc/operator/certs/tls.crt"
  380. key_file: "/etc/operator/certs/tls.key"
  381. exporters:
  382. prometheus:
  383. endpoint: "0.0.0.0:9464"
  384. tls:
  385. ca_file: "/etc/operator/certs/tls.crt"
  386. cert_file: "/etc/operator/certs/tls.crt"
  387. key_file: "/etc/operator/certs/tls.key"
  388. reload_interval: 10m
  389. send_timestamps: true
  390. metric_expiration: 180m
  391. enable_open_metrics: false
  392. resource_to_telemetry_conversion:
  393. enabled: false
  394. otlp:
  395. endpoint: stackgres-collector:4317
  396. tls:
  397. ca_file: "/etc/operator/certs/tls.crt"
  398. service:
  399. pipelines:
  400. metrics:
  401. receivers:
  402. - prometheus
  403. exporters:
  404. - prometheus
  405. prometheusOperator:
  406. allowDiscovery: true
  407. properties:
  408. name:
  409. type: string
  410. default: stackgres-collector
  411. description: OpenTelemetry Collector Deploymnet/Deamonset base name
  412. receivers:
  413. type: object
  414. description: |
  415. This section allow to configure a variable number of OpenTelemetry Collector
  416. receivers (by default equals to the number of Pod with metrics enabled)
  417. that will scrape the metrics separately and send them to a defined number
  418. of OpenTelemetry Collector exporters (by default 1) that exports those metrics
  419. to one or more configured targets (by default will expose a Prometheus exporter).
  420. properties:
  421. enabled:
  422. type: boolean
  423. description: |
  424. When set to `true` it enables the creation of a set of OpenTelemetry Collectors receivers
  425. that will be scraping from the SGCluster Pods and allow to scale the observability
  426. architecture and a set of OpenTelemetry Collectors exporters that exports those metrics
  427. to one or more configured targets.
  428. default: false
  429. exporters:
  430. type: integer
  431. description: |
  432. When receivers are enabled indicates the number of OpenTelemetry Collectors exporters that
  433. exports metrics to one or more configured targets.
  434. default: 1
  435. deployments:
  436. type: array
  437. description: |
  438. A set of separate Deployments of 1 instance each that allow to set the OpenTelemetry Collectors receivers to a specified number of instances.
  439. When not set the number of Deployment of OpenTelemetry Collectors receivers will match the number of instances of all the existing SGClusters
  440. that has the field `.spec.configurations.observability.enableMetrics` set to `true`. Also, when not set, each Deployment will include a pod
  441. affinity rule matching any of the SGClusters Pods set defined below. This will allow to create an OpenTelemetry Collector receiver instance
  442. dedicated to each SGCluster Pod running in the same Node.
  443. Each Deployment will use a configuration for the OpenTelemetry Collector that will scrape from a set of SGClusters Pods that has the field
  444. `.spec.configurations.observability.enableMetrics` set to `true`. The set of Pods of each of those OpenTelemetry Collector configuration
  445. will be a partition of the list of SGClusters Pods that has the field `.spec.configurations.observability.enableMetrics` set to `true`
  446. ordered by the field `Pod.metadata.creationTimestamp` (from the oldest to the newest) and ordered crescently alphabetically by the fields
  447. `Pod.metadata.namespace` and `Pod.metadata.name`.
  448. If is possible to override (even partially) the list of SGCluster Pods using the `sgClusters` section.
  449. items:
  450. type: object
  451. properties:
  452. sgClusters:
  453. type: array
  454. description: |
  455. List of SGCluster Pods to scrape from this Deployment's Pod that will be included to the OpenTelemetry Collector
  456. configuration alongside the SGCluster Pods assigned as described in `SGConfig.spec.collector.receivers.deployments`.
  457. items:
  458. type: object
  459. properties:
  460. namespace:
  461. type: string
  462. description: The namespace of the SGCluster
  463. name:
  464. type: string
  465. description: The name of the SGCluster
  466. indexes:
  467. type: array
  468. description: |
  469. The indexes of the SGCluster's Pods that will be included to the OpenTelemetry Collector configuration alongside
  470. the SGCluster Pods assigned as described in `SGConfig.spec.collector.receivers.deployments`.
  471. If not specified all the SGCluster's Pods will be included.
  472. items:
  473. type: integer
  474. annotations:
  475. type: object
  476. x-kubernetes-preserve-unknown-fields: true
  477. description: OpenTelemetry Collector Pod annotations
  478. resources:
  479. type: object
  480. x-kubernetes-preserve-unknown-fields: true
  481. description: OpenTelemetry Collector Pod resources. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#resourcerequirements-v1-core
  482. nodeSelector:
  483. type: object
  484. x-kubernetes-preserve-unknown-fields: true
  485. description: OpenTelemetry Collector Pod node selector
  486. tolerations:
  487. type: array
  488. description: OpenTelemetry Collector Pod tolerations. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#toleration-v1-core
  489. items:
  490. type: object
  491. x-kubernetes-preserve-unknown-fields: true
  492. affinity:
  493. type: object
  494. x-kubernetes-preserve-unknown-fields: true
  495. description: OpenTelemetry Collector Pod affinity. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#affinity-v1-core
  496. annotations:
  497. type: object
  498. x-kubernetes-preserve-unknown-fields: true
  499. description: OpenTelemetry Collector Pod annotations
  500. resources:
  501. type: object
  502. x-kubernetes-preserve-unknown-fields: true
  503. description: OpenTelemetry Collector Pod resources. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#resourcerequirements-v1-core
  504. nodeSelector:
  505. type: object
  506. x-kubernetes-preserve-unknown-fields: true
  507. description: OpenTelemetry Collector Pod node selector
  508. tolerations:
  509. type: array
  510. description: OpenTelemetry Collector Pod tolerations. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#toleration-v1-core
  511. items:
  512. type: object
  513. x-kubernetes-preserve-unknown-fields: true
  514. affinity:
  515. type: object
  516. x-kubernetes-preserve-unknown-fields: true
  517. description: OpenTelemetry Collector Pod affinity. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#affinity-v1-core
  518. serviceAccount:
  519. type: object
  520. description: Section to configure OpenTelemetry Collector ServiceAccount
  521. properties:
  522. annotations:
  523. type: object
  524. x-kubernetes-preserve-unknown-fields: true
  525. description: OpenTelemetry Collector ServiceAccount annotations
  526. repoCredentials:
  527. type: array
  528. description: Repositories credentials Secret names
  529. items:
  530. type: string
  531. description: Repository credentials Secret name
  532. service:
  533. type: object
  534. description: Section to configure OpenTelemetry Collector Service
  535. properties:
  536. annotations:
  537. type: object
  538. x-kubernetes-preserve-unknown-fields: true
  539. description: OpenTelemetry Collector Service annotations
  540. spec:
  541. type: object
  542. x-kubernetes-preserve-unknown-fields: true
  543. description: Section to configure OpenTelemetry Collector Service specs. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#servicespec-v1-core
  544. ports:
  545. type: array
  546. description: Section to configure OpenTelemetry Collector ports. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#containerport-v1-core
  547. items:
  548. type: object
  549. x-kubernetes-preserve-unknown-fields: true
  550. volumeMounts:
  551. type: array
  552. description: Section to configure OpenTelemetry Collector Volume Mounts. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volumemount-v1-core
  553. items:
  554. type: object
  555. x-kubernetes-preserve-unknown-fields: true
  556. volumes:
  557. type: array
  558. description: Section to configure OpenTelemetry Collector Volumes. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volume-v1-core
  559. items:
  560. type: object
  561. x-kubernetes-preserve-unknown-fields: true
  562. config:
  563. type: object
  564. x-kubernetes-preserve-unknown-fields: true
  565. description: Section to configure OpenTelemetry Collector Configuration. See https://opentelemetry.io/docs/collector/configuration
  566. prometheusOperator:
  567. type: object
  568. description: Section to configure OpenTelemetry Collector integration with Prometheus Operator.
  569. properties:
  570. allowDiscovery:
  571. type: boolean
  572. default: true
  573. description: |
  574. If set to false or monitors is set automatic bind to Prometheus
  575. created using the [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator) will be disabled.
  576. If disabled the cluster will not be binded to Prometheus automatically and will require manual configuration.
  577. Will be ignored if monitors is set.
  578. monitors:
  579. type: array
  580. description: |
  581. Optional section to configure PodMonitors for specific Prometheus instances
  582. *WARNING*: resources created by this integration that does set
  583. the metadata namespace to the same as the operator will not
  584. be removed when removing the helm chart. Changing the namespace
  585. may require configure the Prometheus CR properly in order to
  586. discover PodMonitor in such namespace.
  587. items:
  588. type: object
  589. description: Section to configure a PodMonitor for a specific Prometheus instance that will scrape from the collector Pod pointing by default to the prometheus exporter
  590. properties:
  591. name:
  592. type: string
  593. description: The name of the Prometheus resource that will scrape from the collector Pod pointing by default to the prometheus exporter
  594. namespace:
  595. type: string
  596. description: The namespace of the Prometheus resource that will scrape from the collector Pod pointing by default to the prometheus exporter
  597. metadata:
  598. type: object
  599. description: Section to overwrite some PodMonitor metadata
  600. properties:
  601. name:
  602. type: string
  603. description: The name of the PodMonitor
  604. namespace:
  605. type: string
  606. description: The namespace of the PodMonitor. Changing the namespace may require configure the Prometheus CR properly in order to discover PodMonitor in such namespace.
  607. labels:
  608. type: object
  609. x-kubernetes-preserve-unknown-fields: true
  610. description: The labels to set for the PodMonitor
  611. annotations:
  612. type: object
  613. x-kubernetes-preserve-unknown-fields: true
  614. description: The labels to set for the PodMonitor
  615. ownerReferences:
  616. type: array
  617. description: The ownerReferences to set for the PodMonitor in order to be garbage collected by the specified object.
  618. items:
  619. type: object
  620. x-kubernetes-preserve-unknown-fields: true
  621. spec:
  622. type: object
  623. x-kubernetes-preserve-unknown-fields: true
  624. description: The PodMonitor spec that will be overwritten by the operator. See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.PodMonitorSpec
  625. jobs:
  626. type: object
  627. description: Section to configure Operator Installation Jobs
  628. properties:
  629. image:
  630. type: object
  631. description: Section to configure Operator Installation Jobs image
  632. properties:
  633. name:
  634. type: string
  635. default: "stackgres/jobs"
  636. description: Operator Installation Jobs image name
  637. tag:
  638. type: string
  639. description: Operator Installation Jobs image tag
  640. pullPolicy:
  641. type: string
  642. default: "IfNotPresent"
  643. description: Operator Installation Jobs image pull policy
  644. annotations:
  645. type: object
  646. x-kubernetes-preserve-unknown-fields: true
  647. description: Operator Installation Jobs annotations
  648. resources:
  649. type: object
  650. x-kubernetes-preserve-unknown-fields: true
  651. description: Operator Installation Jobs resources. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#resourcerequirements-v1-core
  652. nodeSelector:
  653. type: object
  654. x-kubernetes-preserve-unknown-fields: true
  655. description: Operator Installation Jobs node selector
  656. tolerations:
  657. type: array
  658. description: Operator Installation Jobs tolerations. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#toleration-v1-core
  659. items:
  660. type: object
  661. x-kubernetes-preserve-unknown-fields: true
  662. affinity:
  663. type: object
  664. x-kubernetes-preserve-unknown-fields: true
  665. description: Operator Installation Jobs affinity. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#affinity-v1-core
  666. serviceAccount:
  667. type: object
  668. description: Section to configure Jobs ServiceAccount
  669. properties:
  670. annotations:
  671. type: object
  672. x-kubernetes-preserve-unknown-fields: true
  673. description: Jobs ServiceAccount annotations
  674. repoCredentials:
  675. type: array
  676. description: Repositories credentials Secret names
  677. items:
  678. type: string
  679. description: Repository credentials Secret name
  680. deploy:
  681. type: object
  682. description: Section to configure deployment aspects.
  683. properties:
  684. operator:
  685. type: boolean
  686. default: true
  687. description: When set to `true` the Operator will be deployed.
  688. restapi:
  689. type: boolean
  690. default: true
  691. description: When set to `true` the Web Console / REST API will be deployed.
  692. collector:
  693. type: boolean
  694. default: true
  695. description: When set to `true` the OpenTelemetry Collector will be deployed.
  696. cert:
  697. type: object
  698. description: Section to configure the Operator, REST API and Web Console certificates and JWT RSA key-pair.
  699. properties:
  700. autoapprove:
  701. type: boolean
  702. default: true
  703. description: |
  704. If set to `true` the CertificateSigningRequest used to generate the certificate used by
  705. Webhooks will be approved by the Operator Installation Job.
  706. createForOperator:
  707. type: boolean
  708. default: true
  709. description: When set to `true` the Operator certificate will be created.
  710. createForWebApi:
  711. type: boolean
  712. default: true
  713. description: When set to `true` the Web Console / REST API certificate will be created.
  714. createForCollector:
  715. type: boolean
  716. default: true
  717. description: When set to `true` the OpenTelemetry Collector certificate will be created.
  718. secretName:
  719. type: string
  720. description: |
  721. The Secret name with the Operator Webhooks certificate issued by the Kubernetes cluster CA
  722. of type kubernetes.io/tls. See https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets
  723. regenerateCert:
  724. type: boolean
  725. description: |
  726. When set to `true` the Operator certificates will be regenerated if `createForOperator` is set to `true`, and the certificate is expired or invalid.
  727. default: true
  728. certDuration:
  729. type: integer
  730. description: |
  731. The duration in days of the generated certificate for the Operator after which it will expire and be regenerated.
  732. If not specified it will be set to 730 (2 years) by default.
  733. webSecretName:
  734. type: string
  735. description: |
  736. The Secret name with the Web Console / REST API certificate
  737. of type kubernetes.io/tls. See https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets
  738. regenerateWebCert:
  739. type: boolean
  740. description: |
  741. When set to `true` the Web Console / REST API certificates will be regenerated if `createForWebApi` is set to `true`, and the certificate is expired or invalid.
  742. default: true
  743. regenerateWebRsa:
  744. type: boolean
  745. description: |
  746. When set to `true` the Web Console / REST API RSA key pair will be regenerated if `createForWebApi` is set to `true`, and the certificate is expired or invalid.
  747. default: true
  748. webCertDuration:
  749. type: integer
  750. description: |
  751. The duration in days of the generated certificate for the Web Console / REST API after which it will expire and be regenerated.
  752. If not specified it will be set to 730 (2 years) by default.
  753. webRsaDuration:
  754. type: integer
  755. description: |
  756. The duration in days of the generated RSA key pair for the Web Console / REST API after which it will expire and be regenerated.
  757. If not specified it will be set to 730 (2 years) by default.
  758. collectorSecretName:
  759. type: string
  760. description: |
  761. The Secret name with the OpenTelemetry Collector certificate
  762. of type kubernetes.io/tls. See https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets
  763. regenerateCollectorCert:
  764. type: boolean
  765. description: |
  766. When set to `true` the OpenTelemetry Collector certificates will be regenerated if `createForCollector` is set to `true`, and the certificate is expired or invalid.
  767. default: true
  768. collectorCertDuration:
  769. type: integer
  770. description: |
  771. The duration in days of the generated certificate for the OpenTelemetry Collector after which it will expire and be regenerated.
  772. If not specified it will be set to 730 (2 years) by default.
  773. certManager:
  774. type: object
  775. description: Section to configure cert-manager integration to generate Operator certificates
  776. properties:
  777. autoConfigure:
  778. type: boolean
  779. default: false
  780. description: |
  781. When set to `true` then Issuer and Certificate for Operator, Web Console / REST API and OpenTelemetry Collector
  782. Pods will be generated
  783. duration:
  784. type: string
  785. default: "2160h"
  786. description: The requested duration (i.e. lifetime) of the Certificates. See https://cert-manager.io/docs/reference/api-docs/#cert-manager.io%2fv1
  787. renewBefore:
  788. type: string
  789. default: "360h"
  790. description: How long before the currently issued certificate’s expiry cert-manager should renew the certificate. See https://cert-manager.io/docs/reference/api-docs/#cert-manager.io%2fv1
  791. encoding:
  792. type: string
  793. default: PKCS1
  794. description: The private key cryptography standards (PKCS) encoding for this certificate’s private key to be encoded in. See https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificatePrivateKey
  795. size:
  796. type: integer
  797. default: 2048
  798. description: Size is the key bit size of the corresponding private key for this certificate. See https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificatePrivateKey
  799. rbac:
  800. type: object
  801. description: Section to configure RBAC for Web Console admin user
  802. properties:
  803. create:
  804. type: boolean
  805. default: true
  806. description: |
  807. When set to `true` the admin user is assigned the `cluster-admin` ClusterRole by creating
  808. ClusterRoleBinding.
  809. authentication:
  810. type: object
  811. description: Section to configure Web Console authentication
  812. properties:
  813. type:
  814. type: string
  815. default: jwt
  816. description: |
  817. Specify the authentication mechanism to use. By default is `jwt`, see https://stackgres.io/doc/latest/api/rbac#local-secret-mechanism.
  818. If set to `oidc` then see https://stackgres.io/doc/latest/api/rbac/#openid-connect-provider-mechanism.
  819. createAdminSecret:
  820. type: boolean
  821. description: |
  822. When `true` will create the secret used to store the admin user credentials to access the UI.
  823. default: true
  824. user:
  825. type: string
  826. default: admin
  827. description: |
  828. The admin username that will be created for the Web Console
  829. Operator bundle installation can not change the default value of this field.
  830. password:
  831. type: string
  832. description: |
  833. The admin password that will be created for the Web Console.
  834. If not specified a random password will be generated.
  835. secretRef:
  836. type: object
  837. description: |
  838. Allow to specify a reference to a Secret with the admin user credentials for the Web Console.
  839. In order to assign properly permissions. Make sure the `user` field match the value of the `k8sUsername` key in the referenced Secret.
  840. properties:
  841. name:
  842. description: The name of the Secret.
  843. type: string
  844. oidc:
  845. type: object
  846. description: Section to configure Web Console OIDC authentication
  847. properties:
  848. tlsVerification:
  849. type: string
  850. description: Can be one of `required`, `certificate-validation` or `none`
  851. authServerUrl:
  852. type: string
  853. clientId:
  854. type: string
  855. credentialsSecret:
  856. type: string
  857. clientIdSecretRef:
  858. type: object
  859. properties:
  860. name:
  861. type: string
  862. key:
  863. type: string
  864. credentialsSecretSecretRef:
  865. type: object
  866. properties:
  867. name:
  868. type: string
  869. key:
  870. type: string
  871. prometheus:
  872. type: object
  873. description: Section to configure Prometheus integration.
  874. properties:
  875. allowAutobind:
  876. type: boolean
  877. default: true
  878. description: |
  879. If set to false disable automatic bind to Prometheus
  880. created using the [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator).
  881. If disabled the cluster will not be binded to Prometheus automatically and will require manual
  882. intervention by the Kubernetes cluster administrator.
  883. grafana:
  884. type: object
  885. description: Section to configure Grafana integration
  886. properties:
  887. autoEmbed:
  888. type: boolean
  889. default: false
  890. description: |
  891. When set to `true` embed automatically Grafana into the Web Console by creating the
  892. StackGres dashboard and the read-only role used to read it from the Web Console
  893. schema:
  894. type: string
  895. default: http
  896. description: |
  897. The schema to access Grafana. By default http. (used to embed manually and
  898. automatically grafana)
  899. webHost:
  900. type: string
  901. description: |
  902. The service host name to access grafana (used to embed manually and
  903. automatically Grafana).
  904. The parameter value should point to the grafana service following the
  905. [DNS reference](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/) `svc_name.namespace`
  906. datasourceName:
  907. type: string
  908. default: Prometheus
  909. description: The datasource name used to create the StackGres Dashboard into Grafana
  910. user:
  911. type: string
  912. default: admin
  913. description: |
  914. The username to access Grafana. By default admin. (used to embed automatically
  915. Grafana)
  916. password:
  917. type: string
  918. default: prom-operator
  919. description: |
  920. The password to access Grafana. By default prom-operator (the default in for
  921. kube-prometheus-stack helm chart). (used to embed automatically Grafana)
  922. secretNamespace:
  923. type: string
  924. description: |
  925. The namespace of secret with credentials to access Grafana. (used to
  926. embed automatically Grafana, alternative to use `user` and `password`)
  927. secretName:
  928. type: string
  929. description: |
  930. The name of secret with credentials to access Grafana. (used to embed
  931. automatically Grafana, alternative to use `user` and `password`)
  932. secretUserKey:
  933. type: string
  934. description: |
  935. The key of secret with username used to access Grafana. (used to embed
  936. automatically Grafana, alternative to use `user` and `password`)
  937. secretPasswordKey:
  938. type: string
  939. description: |
  940. The key of secret with password used to access Grafana. (used to
  941. embed automatically Grafana, alternative to use `user` and `password`)
  942. dashboardConfigMap:
  943. type: string
  944. description: |
  945. The ConfigMap name with the dashboard JSON in the key `grafana-dashboard.json`
  946. that will be created in Grafana. If not set the default
  947. dashboardId:
  948. type: string
  949. description: |
  950. The dashboard id that will be create in Grafana
  951. (see https://grafana.com/grafana/dashboards). By default 9628. (used to embed automatically
  952. Grafana)
  953. Manual Steps:
  954. Create grafana dashboard for postgres exporter and copy/paste share URL:
  955. - Grafana > Create > Import > Grafana.com Dashboard 9628
  956. Copy/paste grafana dashboard URL for postgres exporter:
  957. - Grafana > Dashboard > Manage > Select postgres exporter dashboard > Copy URL
  958. url:
  959. type: string
  960. description: |
  961. The URL of the PostgreSQL dashboard created in Grafana (used to embed manually
  962. Grafana)
  963. token:
  964. type: string
  965. description: |
  966. The Grafana API token to access the PostgreSQL dashboard created
  967. in Grafana (used to embed manually Grafana)
  968. Manual Steps:
  969. Create and copy/paste grafana API token:
  970. - Grafana > Configuration > API Keys > Add API key (for viewer) > Copy key value
  971. extensions:
  972. type: object
  973. description: Section to configure extensions
  974. properties:
  975. repositoryUrls:
  976. type: array
  977. default:
  978. - https://extensions.stackgres.io/postgres/repository
  979. description: |
  980. A list of extensions repository URLs used to retrieve extensions
  981. To set a proxy for extensions repository add parameter proxyUrl to the URL:
  982. `https://extensions.stackgres.io/postgres/repository?proxyUrl=<proxy scheme>%3A%2F%2F<proxy host>[%3A<proxy port>]` (URL encoded)
  983. Other URL parameters are:
  984. * `skipHostnameVerification`: set it to `true` in order to use a server or a proxy with a self signed certificate
  985. * `retry`: set it to `<max retriex>[:<sleep before next retry>]` in order to retry a request on failure
  986. * `setHttpScheme`: set it to `true` in order to force using HTTP scheme
  987. items:
  988. type: string
  989. cache:
  990. type: object
  991. description: |
  992. Section to configure extensions cache (experimental).
  993. This feature is in beta and may cause failures, please use with caution and report any
  994. error to https://gitlab.com/ongresinc/stackgres/-/issues/new
  995. properties:
  996. enabled:
  997. type: boolean
  998. default: false
  999. description: |
  1000. When set to `true` enable the extensions cache.
  1001. This feature is in beta and may cause failures, please use with caution and report any
  1002. error to https://gitlab.com/ongresinc/stackgres/-/issues/new
  1003. preloadedExtensions:
  1004. type: array
  1005. default:
  1006. - x86_64/linux/timescaledb-1\.7\.4-pg12
  1007. description: An array of extensions pattern used to pre-loaded estensions into the extensions cache
  1008. items:
  1009. type: string
  1010. description: An extension pattern used to pre-loaded estensions into the extensions cache
  1011. persistentVolume:
  1012. type: object
  1013. description: Section to configure the extensions cache PersistentVolume
  1014. properties:
  1015. size:
  1016. type: string
  1017. default: 1Gi
  1018. description: |
  1019. The PersistentVolume size for the extensions cache
  1020. Only use whole numbers (e.g. not 1e6) and K/Ki/M/Mi/G/Gi as units
  1021. storageClass:
  1022. type: string
  1023. description: |
  1024. If defined set storage class
  1025. If set to "-" (equivalent to storageClass: "" in a PV spec) disables
  1026. dynamic provisioning
  1027. If undefined (the default) or set to null, no storageClass spec is
  1028. set, choosing the default provisioner. (gp2 on AWS, standard on
  1029. GKE, AWS & OpenStack)
  1030. hostPath:
  1031. type: string
  1032. description: |
  1033. If set, will use a host path volume with the specified path for the extensions cache
  1034. instead of a PersistentVolume
  1035. pga:
  1036. type: object
  1037. description: Section to configure PGA
  1038. properties:
  1039. repositoryUrls:
  1040. type: array
  1041. default:
  1042. - https://pga.sh
  1043. description: |
  1044. A list of PGA repository URLs used to retrieve images
  1045. To set a proxy for PGA repository add parameter proxyUrl to the URL:
  1046. `https://extensions.stackgres.io/postgres/repository?proxyUrl=<proxy scheme>%3A%2F%2F<proxy host>[%3A<proxy port>]` (URL encoded)
  1047. Other URL parameters are:
  1048. * `skipHostnameVerification`: set it to `true` in order to use a server or a proxy with a self signed certificate
  1049. * `retry`: set it to `<max retriex>[:<sleep before next retry>]` in order to retry a request on failure
  1050. * `setHttpScheme`: set it to `true` in order to force using HTTP scheme
  1051. items:
  1052. type: string
  1053. shardingSphere:
  1054. type: object
  1055. description: Section to configure integration with ShardingSphere operator
  1056. properties:
  1057. serviceAccount:
  1058. type: object
  1059. description: |
  1060. Section to configure ServiceAccount used by ShardingSphere operator.
  1061. You may configure a specific value for a sharded cluster under section
  1062. `SGShardedCluster.speccoordinator.configurations.shardingSphere.serviceAccount`.
  1063. required: [namespace,name]
  1064. properties:
  1065. namespace:
  1066. type: string
  1067. description: The namespace of the ServiceAccount used by ShardingSphere operator
  1068. name:
  1069. type: string
  1070. description: The name of the ServiceAccount used by ShardingSphere operator
  1071. developer:
  1072. type: object
  1073. x-kubernetes-preserve-unknown-fields: true
  1074. description: |
  1075. Section to configure developer options.
  1076. Following options are for developers only, but can also be useful in some cases ;)
  1077. properties:
  1078. version:
  1079. type: string
  1080. description: Set the operator version (used for testing)
  1081. logLevel:
  1082. type: string
  1083. description: Set `quarkus.log.level`. See https://quarkus.io/guides/logging#root-logger-configuration
  1084. showDebug:
  1085. type: boolean
  1086. default: false
  1087. description: If set to `true` add extra debug to any script controlled by the reconciliation cycle of the operator configuration
  1088. showStackTraces:
  1089. type: boolean
  1090. default: false
  1091. description: Set `quarkus.log.console.format` to `%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{4.}] (%t) %s%e%n`. See https://quarkus.io/guides/logging#logging-format
  1092. useJvmImages:
  1093. type: boolean
  1094. default: false
  1095. description: |
  1096. The operator will use JVM version of the images
  1097. enableJvmDebug:
  1098. type: boolean
  1099. default: false
  1100. description: |
  1101. Only work with JVM version and allow connect
  1102. on port 8000 of operator Pod with jdb or similar
  1103. enableJvmDebugSuspend:
  1104. type: boolean
  1105. default: false
  1106. description: |
  1107. Only work with JVM version and if `enableJvmDebug` is `true`
  1108. suspend the JVM until a debugger session is started
  1109. externalOperatorIp:
  1110. type: string
  1111. description: Set the external Operator IP
  1112. externalOperatorPort:
  1113. type: integer
  1114. description: Set the external Operator port
  1115. externalRestApiIp:
  1116. type: string
  1117. description: Set the external REST API IP
  1118. externalRestApiPort:
  1119. type: integer
  1120. description: Set the external REST API port
  1121. externalPgaIp:
  1122. type: string
  1123. description: Set the external PGA IP
  1124. externalPgaPort:
  1125. type: integer
  1126. description: Set the external PGA port
  1127. allowPullExtensionsFromImageRepository:
  1128. type: boolean
  1129. default: false
  1130. description: |
  1131. If set to `true` and `extensions.cache.enabled` is also `true`
  1132. it will try to download extensions from images (experimental)
  1133. disableArbitraryUser:
  1134. type: boolean
  1135. default: false
  1136. description: |
  1137. It set to `true` disable arbitrary user that is set for OpenShift clusters
  1138. patches:
  1139. type: object
  1140. description: |
  1141. Section to define patches for some StackGres Pods
  1142. properties:
  1143. operator:
  1144. type: object
  1145. description: |
  1146. Section to define volumes to be used by the operator container
  1147. properties:
  1148. volumes:
  1149. type: array
  1150. description: Pod volumes. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volume-v1-core
  1151. items:
  1152. type: object
  1153. x-kubernetes-preserve-unknown-fields: true
  1154. volumeMounts:
  1155. type: array
  1156. description: Pod's container volume mounts. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volumemount-v1-core
  1157. items:
  1158. type: object
  1159. x-kubernetes-preserve-unknown-fields: true
  1160. stream:
  1161. type: object
  1162. description: |
  1163. Section to define volumes to be used by the stream container
  1164. properties:
  1165. volumes:
  1166. type: array
  1167. description: Pod volumes. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volume-v1-core
  1168. items:
  1169. type: object
  1170. x-kubernetes-preserve-unknown-fields: true
  1171. volumeMounts:
  1172. type: array
  1173. description: Pod's container volume mounts. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volumemount-v1-core
  1174. items:
  1175. type: object
  1176. x-kubernetes-preserve-unknown-fields: true
  1177. restapi:
  1178. type: object
  1179. description: |
  1180. Section to define volumes to be used by the restapi container
  1181. properties:
  1182. volumes:
  1183. type: array
  1184. description: Pod volumes. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volume-v1-core
  1185. items:
  1186. type: object
  1187. x-kubernetes-preserve-unknown-fields: true
  1188. volumeMounts:
  1189. type: array
  1190. description: Pod's container volume mounts. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volumemount-v1-core
  1191. items:
  1192. type: object
  1193. x-kubernetes-preserve-unknown-fields: true
  1194. adminui:
  1195. type: object
  1196. description: |
  1197. Section to define volumes to be used by the adminui container
  1198. properties:
  1199. volumes:
  1200. type: array
  1201. description: Pod volumes. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volume-v1-core
  1202. items:
  1203. type: object
  1204. x-kubernetes-preserve-unknown-fields: true
  1205. volumeMounts:
  1206. type: array
  1207. description: Pod's container volume mounts. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volumemount-v1-core
  1208. items:
  1209. type: object
  1210. x-kubernetes-preserve-unknown-fields: true
  1211. jobs:
  1212. type: object
  1213. description: |
  1214. Section to define volumes to be used by the jobs container
  1215. properties:
  1216. volumes:
  1217. type: array
  1218. description: Pod volumes. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volume-v1-core
  1219. items:
  1220. type: object
  1221. x-kubernetes-preserve-unknown-fields: true
  1222. volumeMounts:
  1223. type: array
  1224. description: Pod's container volume mounts. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volumemount-v1-core
  1225. items:
  1226. type: object
  1227. x-kubernetes-preserve-unknown-fields: true
  1228. clusterController:
  1229. type: object
  1230. description: |
  1231. Section to define volumes to be used by the cluster controller container
  1232. properties:
  1233. volumes:
  1234. type: array
  1235. description: Pod volumes. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volume-v1-core
  1236. items:
  1237. type: object
  1238. x-kubernetes-preserve-unknown-fields: true
  1239. volumeMounts:
  1240. type: array
  1241. description: Pod's container volume mounts. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volumemount-v1-core
  1242. items:
  1243. type: object
  1244. x-kubernetes-preserve-unknown-fields: true
  1245. distributedlogsController:
  1246. type: object
  1247. description: |
  1248. Section to define volumes to be used by the distributedlogs controller container
  1249. properties:
  1250. volumes:
  1251. type: array
  1252. description: Pod volumes. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volume-v1-core
  1253. items:
  1254. type: object
  1255. x-kubernetes-preserve-unknown-fields: true
  1256. volumeMounts:
  1257. type: array
  1258. description: Pod's container volume mounts. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#volumemount-v1-core
  1259. items:
  1260. type: object
  1261. x-kubernetes-preserve-unknown-fields: true
  1262. status:
  1263. type: object
  1264. description: Status defines the observed state of SGConfig
  1265. x-kubernetes-preserve-unknown-fields: true
  1266. properties:
  1267. conditions:
  1268. type: array
  1269. items:
  1270. type: object
  1271. properties:
  1272. lastTransitionTime:
  1273. description: Last time the condition transitioned from one status to another.
  1274. type: string
  1275. message:
  1276. description: A human readable message indicating details about the transition.
  1277. type: string
  1278. reason:
  1279. description: The reason for the condition's last transition.
  1280. type: string
  1281. status:
  1282. description: Status of the condition, one of True, False, Unknown.
  1283. type: string
  1284. type:
  1285. description: Type of deployment condition.
  1286. type: string
  1287. version:
  1288. type: string
  1289. description: Latest version of the operator used to check for updates
  1290. removeOldOperatorBundleResources:
  1291. type: boolean
  1292. description: Indicate when the old operator bundle resources has been removed
  1293. grafana:
  1294. type: object
  1295. properties:
  1296. urls:
  1297. description: Grafana URLs to StackGres dashboards
  1298. type: array
  1299. items:
  1300. type: string
  1301. description: Grafana URL to StackGres dashboards preceded by the dashboard name and a semicolon `:`
  1302. token:
  1303. description: Grafana Token that allow to access dashboards
  1304. type: string
  1305. configHash:
  1306. description: Grafana configuration hash
  1307. type: string
  1308. existingCrUpdatedToVersion:
  1309. type: string
  1310. description: Indicate the version to which existing CRs have been updated to