SGPostgresConfig.yaml 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. name: sgpgconfigs.stackgres.io
  5. spec:
  6. group: stackgres.io
  7. scope: Namespaced
  8. names:
  9. kind: SGPostgresConfig
  10. listKind: SGPostgresConfigList
  11. plural: sgpgconfigs
  12. singular: sgpgconfig
  13. shortNames:
  14. - sgpgc
  15. - sgpostgresconfig
  16. - sgpostgresconfigs
  17. versions:
  18. - name: v1
  19. served: true
  20. storage: true
  21. additionalPrinterColumns:
  22. - name: version
  23. type: string
  24. jsonPath: .spec.postgresVersion
  25. schema:
  26. openAPIV3Schema:
  27. type: object
  28. required: ["metadata", "spec"]
  29. properties:
  30. metadata:
  31. type: object
  32. properties:
  33. name:
  34. type: string
  35. description: |
  36. Name of the Postgres Configuration. The configuration may be referenced by zero or more SGClusters, and if so it would be referenced by its name. Following [Kubernetes naming conventions](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/identifiers.md), it must be an rfc1035/rfc1123 subdomain, that is, up to 253 characters consisting of one or more lowercase labels separated by `.`. Where each label is an alphanumeric (a-z, and 0-9) string, with the `-` character allowed anywhere except the first or last character.
  37. The name must be unique across all Postgres configurations in the same namespace.
  38. spec:
  39. type: object
  40. properties:
  41. postgresVersion:
  42. type: string
  43. description: |
  44. The **major** Postgres version the configuration is for. Postgres major versions contain one number starting with version 10 (`10`, `11`, `12`, etc), and two numbers separated by a dot for previous versions (`9.6`, `9.5`, etc).
  45. Note that Postgres maintains full compatibility across minor versions, and hence a configuration for a given major version will work for any minor version of that same major version.
  46. Check [StackGres component versions](https://stackgres.io/doc/latest/intro/versions) to see the Postgres versions supported by this version of StackGres.
  47. postgresql.conf:
  48. type: object
  49. additionalProperties:
  50. type: string
  51. description: |
  52. The `postgresql.conf` parameters the configuration contains, represented as an object where the keys are valid names for the `postgresql.conf` configuration file parameters of the given `postgresVersion`. You may check [postgresqlco.nf](https://postgresqlco.nf) as a reference on how to tune and find the valid parameters for a given major version.
  53. required: ["postgresVersion", "postgresql.conf"]
  54. status:
  55. type: object
  56. properties:
  57. defaultParameters:
  58. type: object
  59. additionalProperties:
  60. type: string
  61. description: |
  62. The `postgresql.conf` default parameters which are used if not set.
  63. required: ["defaultParameters"]