diff --git a/CHANGELOG.md b/CHANGELOG.md index fa782e5..a910ed6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,10 @@ ## [MAJOR.MINOR.PATCH] - YYYY-MM-DD -## aiven-operator-v0.7.1 - 2023-24-01 +## aiven-operator-v0.8.0 - 2023-02-15 +* sync with aiven-operator v0.8.0 + +## aiven-operator-v0.7.1 - 2023-01-24 * sync with aiven-operator v0.7.1 ## aiven-operator-v0.6.0 - 2023-01-16 diff --git a/charts/aiven-operator-crds/Chart.yaml b/charts/aiven-operator-crds/Chart.yaml index 44bc033..5ec9f5c 100644 --- a/charts/aiven-operator-crds/Chart.yaml +++ b/charts/aiven-operator-crds/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: aiven-operator-crds description: A Helm chart to deploy the aiven operator custom resource definitions type: application -version: v0.7.1 -appVersion: v0.7.1 +version: v0.8.0 +appVersion: v0.8.0 maintainers: - name: mhoffm-aiven url: https://www.aiven.io diff --git a/charts/aiven-operator-crds/templates/aiven.io_cassandras.yaml b/charts/aiven-operator-crds/templates/aiven.io_cassandras.yaml index 9fd0b28..bed5d2e 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_cassandras.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_cassandras.yaml @@ -103,6 +103,9 @@ spec: format: ^[a-zA-Z0-9_-]*$ maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVPCRef: description: ProjectVPCRef reference to ProjectVPC resource to use its ID as ProjectVPCID automatically @@ -116,10 +119,38 @@ spec: required: - name type: object + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVpcId: description: Identifier of the VPC the service should be in, if any. maxLength: 36 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + serviceIntegrations: + items: + description: Service integrations to specify when creating a service. + Not applied after initial service creation + properties: + integrationType: + enum: + - read_replica + type: string + sourceServiceName: + maxLength: 64 + minLength: 1 + type: string + required: + - integrationType + - sourceServiceName + type: object + maxItems: 1 + type: array + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf tags: additionalProperties: type: string @@ -134,56 +165,52 @@ spec: description: Cassandra specific user configuration options properties: additional_backup_regions: - description: AdditionalBackupRegions Additional Cloud Regions - for Backup Replication + description: Additional Cloud Regions for Backup Replication items: type: string maxItems: 1 type: array cassandra: - description: Cassandra cassandra configuration values + description: cassandra configuration values properties: batch_size_fail_threshold_in_kb: - description: BatchSizeFailThresholdInKb Fail any multiple-partition - batch exceeding this value. 50kb (10x warn threshold) by - default. + description: Fail any multiple-partition batch exceeding this + value. 50kb (10x warn threshold) by default. maximum: 1000000 minimum: 1 type: integer batch_size_warn_threshold_in_kb: - description: BatchSizeWarnThresholdInKb Log a warning message - on any multiple-partition batch size exceeding this value.5kb - per batch by default.Caution should be taken on increasing - the size of this thresholdas it can lead to node instability. + description: Log a warning message on any multiple-partition + batch size exceeding this value.5kb per batch by default.Caution + should be taken on increasing the size of this thresholdas + it can lead to node instability. maximum: 1000000 minimum: 1 type: integer datacenter: - description: Datacenter Name of the datacenter to which nodes - of this service belong. Can be set only when creating the - service. + description: Name of the datacenter to which nodes of this + service belong. Can be set only when creating the service. maxLength: 128 type: string type: object cassandra_version: - description: CassandraVersion Cassandra major version + description: Cassandra major version enum: - - 3 - - 4 + - "4" type: string ip_filter: - description: IpFilter Allow incoming connections from CIDR address - block, e.g. '10.20.0.0/16' + description: Allow incoming connections from CIDR address block, + e.g. '10.20.0.0/16' items: - description: IpFilter CIDR address block, either as a string, - or in a dict with an optional description field + description: CIDR address block, either as a string, or in a + dict with an optional description field properties: description: description: Description for IP filter list entry maxLength: 1024 type: string network: - description: Network CIDR address block + description: CIDR address block maxLength: 43 type: string required: @@ -192,49 +219,54 @@ spec: maxItems: 1024 type: array migrate_sstableloader: - description: MigrateSstableloader Sets the service into migration - mode enabling the sstableloader utility to be used to upload - Cassandra data files. Available only on service create. + description: Sets the service into migration mode enabling the + sstableloader utility to be used to upload Cassandra data files. + Available only on service create. type: boolean private_access: - description: PrivateAccess Allow access to selected service ports - from private networks + description: Allow access to selected service ports from private + networks properties: prometheus: - description: Prometheus Allow clients to connect to prometheus - with a DNS name that always resolves to the service's private - IP addresses. Only available in certain network locations + description: Allow clients to connect to prometheus with a + DNS name that always resolves to the service's private IP + addresses. Only available in certain network locations type: boolean type: object project_to_fork_from: - description: ProjectToForkFrom Name of another project to fork - a service from. This has effect only when a new service is being - created. + description: Name of another project to fork a service from. This + has effect only when a new service is being created. maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf public_access: - description: PublicAccess Allow access to selected service ports - from the public Internet + description: Allow access to selected service ports from the public + Internet properties: prometheus: - description: Prometheus Allow clients to connect to prometheus - from the public internet for service nodes that are in a - project VPC or another type of private network + description: Allow clients to connect to prometheus from the + public internet for service nodes that are in a project + VPC or another type of private network type: boolean type: object service_to_fork_from: - description: ServiceToForkFrom Name of another service to fork - from. This has effect only when a new service is being created. + description: Name of another service to fork from. This has effect + only when a new service is being created. maxLength: 64 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf service_to_join_with: - description: ServiceToJoinWith When bootstrapping, instead of - creating a new Cassandra cluster try to join an existing one - from another service. Can only be set on service creation. + description: When bootstrapping, instead of creating a new Cassandra + cluster try to join an existing one from another service. Can + only be set on service creation. maxLength: 64 type: string static_ips: - description: StaticIps Use static public IP addresses + description: Use static public IP addresses type: boolean type: object required: diff --git a/charts/aiven-operator-crds/templates/aiven.io_clickhouses.yaml b/charts/aiven-operator-crds/templates/aiven.io_clickhouses.yaml index e549693..95cbffd 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_clickhouses.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_clickhouses.yaml @@ -58,6 +58,12 @@ spec: required: - name type: object + disk_space: + description: The disk space of the service, possible values depend + on the service type, the cloud provider and the project. Reducing + will result in the service re-balancing. + format: ^[1-9][0-9]*(GiB|G)* + type: string maintenanceWindowDow: description: Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc. @@ -84,6 +90,9 @@ spec: format: ^[a-zA-Z0-9_-]*$ maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVPCRef: description: ProjectVPCRef reference to ProjectVPC resource to use its ID as ProjectVPCID automatically @@ -97,10 +106,38 @@ spec: required: - name type: object + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVpcId: description: Identifier of the VPC the service should be in, if any. maxLength: 36 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + serviceIntegrations: + items: + description: Service integrations to specify when creating a service. + Not applied after initial service creation + properties: + integrationType: + enum: + - read_replica + type: string + sourceServiceName: + maxLength: 64 + minLength: 1 + type: string + required: + - integrationType + - sourceServiceName + type: object + maxItems: 1 + type: array + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf tags: additionalProperties: type: string @@ -114,30 +151,48 @@ spec: userConfig: description: OpenSearch specific user configuration options properties: - ip_filter: - description: 'Glob pattern and number of indexes matching that - pattern to be kept Allows you to create glob style patterns - and set a max number of indexes matching this pattern you want - to keep. Creating indexes exceeding this value will cause the - oldest one to get deleted. You could for example create a pattern - looking like ''logs.?'' and then create index logs.1, logs.2 - etc, it will delete logs.1 once you create logs.6. Do note ''logs.?'' - does not apply to logs.10. Note: Setting max_index_count to - 0 will do nothing and the pattern gets ignored. IP filter Allow - incoming connections from CIDR address block, e.g. ''10.20.0.0/16''' + additional_backup_regions: + description: Additional Cloud Regions for Backup Replication items: type: string + maxItems: 1 + type: array + ip_filter: + description: Allow incoming connections from CIDR address block, + e.g. '10.20.0.0/16' + items: + description: CIDR address block, either as a string, or in a + dict with an optional description field + properties: + description: + description: Description for IP filter list entry + maxLength: 1024 + type: string + network: + description: CIDR address block + maxLength: 43 + type: string + required: + - network + type: object + maxItems: 1024 type: array project_to_fork_from: description: Name of another project to fork a service from. This has effect only when a new service is being created. maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf service_to_fork_from: description: Name of another service to fork from. This has effect only when a new service is being created. - maxLength: 63 + maxLength: 64 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf type: object required: - project diff --git a/charts/aiven-operator-crds/templates/aiven.io_grafanas.yaml b/charts/aiven-operator-crds/templates/aiven.io_grafanas.yaml index 95cf195..5978cc2 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_grafanas.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_grafanas.yaml @@ -103,6 +103,9 @@ spec: format: ^[a-zA-Z0-9_-]*$ maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVPCRef: description: ProjectVPCRef reference to ProjectVPC resource to use its ID as ProjectVPCID automatically @@ -116,10 +119,38 @@ spec: required: - name type: object + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVpcId: description: Identifier of the VPC the service should be in, if any. maxLength: 36 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + serviceIntegrations: + items: + description: Service integrations to specify when creating a service. + Not applied after initial service creation + properties: + integrationType: + enum: + - read_replica + type: string + sourceServiceName: + maxLength: 64 + minLength: 1 + type: string + required: + - integrationType + - sourceServiceName + type: object + maxItems: 1 + type: array + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf tags: additionalProperties: type: string @@ -134,33 +165,30 @@ spec: description: Cassandra specific user configuration options properties: additional_backup_regions: - description: AdditionalBackupRegions Additional Cloud Regions - for Backup Replication + description: Additional Cloud Regions for Backup Replication items: type: string maxItems: 1 type: array alerting_enabled: - description: AlertingEnabled Enable or disable Grafana alerting - functionality + description: Enable or disable Grafana alerting functionality type: boolean alerting_error_or_timeout: - description: AlertingErrorOrTimeout Default error or timeout setting - for new alerting rules + description: Default error or timeout setting for new alerting + rules enum: - alerting - keep_state type: string alerting_max_annotations_to_keep: - description: AlertingMaxAnnotationsToKeep Max number of alert - annotations that Grafana stores. 0 (default) keeps all alert - annotations. + description: Max number of alert annotations that Grafana stores. + 0 (default) keeps all alert annotations. maximum: 1000000 minimum: 0 type: integer alerting_nodata_or_nullvalues: - description: AlertingNodataOrNullvalues Default value for 'no - data or null values' for new alerting rules + description: Default value for 'no data or null values' for new + alerting rules enum: - alerting - no_data @@ -168,46 +196,43 @@ spec: - ok type: string allow_embedding: - description: AllowEmbedding Allow embedding Grafana dashboards - with iframe/frame/object/embed tags. Disabled by default to - limit impact of clickjacking + description: Allow embedding Grafana dashboards with iframe/frame/object/embed + tags. Disabled by default to limit impact of clickjacking type: boolean auth_azuread: - description: AuthAzuread Azure AD OAuth integration + description: Azure AD OAuth integration properties: allow_sign_up: - description: AllowSignUp Automatically sign-up users on successful - sign-in + description: Automatically sign-up users on successful sign-in type: boolean allowed_domains: - description: AllowedDomains Allowed domains + description: Allowed domains items: type: string maxItems: 50 type: array allowed_groups: - description: AllowedGroups Require users to belong to one - of given groups + description: Require users to belong to one of given groups items: type: string maxItems: 50 type: array auth_url: - description: AuthUrl Authorization URL + description: Authorization URL maxLength: 2048 type: string client_id: - description: ClientId Client ID from provider + description: Client ID from provider maxLength: 1024 pattern: ^[\040-\176]+$ type: string client_secret: - description: ClientSecret Client secret from provider + description: Client secret from provider maxLength: 1024 pattern: ^[\040-\176]+$ type: string token_url: - description: TokenUrl Token URL + description: Token URL maxLength: 2048 type: string required: @@ -217,44 +242,43 @@ spec: - token_url type: object auth_basic_enabled: - description: AuthBasicEnabled Enable or disable basic authentication - form, used by Grafana built-in login + description: Enable or disable basic authentication form, used + by Grafana built-in login type: boolean auth_generic_oauth: - description: AuthGenericOauth Generic OAuth integration + description: Generic OAuth integration properties: allow_sign_up: - description: AllowSignUp Automatically sign-up users on successful - sign-in + description: Automatically sign-up users on successful sign-in type: boolean allowed_domains: - description: AllowedDomains Allowed domains + description: Allowed domains items: type: string maxItems: 50 type: array allowed_organizations: - description: AllowedOrganizations Require user to be member - of one of the listed organizations + description: Require user to be member of one of the listed + organizations items: type: string maxItems: 50 type: array api_url: - description: ApiUrl API URL + description: API URL maxLength: 2048 type: string auth_url: - description: AuthUrl Authorization URL + description: Authorization URL maxLength: 2048 type: string client_id: - description: ClientId Client ID from provider + description: Client ID from provider maxLength: 1024 pattern: ^[\040-\176]+$ type: string client_secret: - description: ClientSecret Client secret from provider + description: Client secret from provider maxLength: 1024 pattern: ^[\040-\176]+$ type: string @@ -264,13 +288,13 @@ spec: pattern: ^[a-zA-Z0-9_\- ]+$ type: string scopes: - description: Scopes OAuth scopes + description: OAuth scopes items: type: string maxItems: 50 type: array token_url: - description: TokenUrl Token URL + description: Token URL maxLength: 2048 type: string required: @@ -281,32 +305,30 @@ spec: - token_url type: object auth_github: - description: AuthGithub Github Auth integration + description: Github Auth integration properties: allow_sign_up: - description: AllowSignUp Automatically sign-up users on successful - sign-in + description: Automatically sign-up users on successful sign-in type: boolean allowed_organizations: - description: AllowedOrganizations Require users to belong - to one of given organizations + description: Require users to belong to one of given organizations items: type: string maxItems: 50 type: array client_id: - description: ClientId Client ID from provider + description: Client ID from provider maxLength: 1024 pattern: ^[\040-\176]+$ type: string client_secret: - description: ClientSecret Client secret from provider + description: Client secret from provider maxLength: 1024 pattern: ^[\040-\176]+$ type: string team_ids: - description: TeamIds Require users to belong to one of given - team IDs + description: Require users to belong to one of given team + IDs items: type: integer maxItems: 50 @@ -316,42 +338,40 @@ spec: - client_secret type: object auth_gitlab: - description: AuthGitlab GitLab Auth integration + description: GitLab Auth integration properties: allow_sign_up: - description: AllowSignUp Automatically sign-up users on successful - sign-in + description: Automatically sign-up users on successful sign-in type: boolean allowed_groups: - description: AllowedGroups Require users to belong to one - of given groups + description: Require users to belong to one of given groups items: type: string maxItems: 50 type: array api_url: - description: ApiUrl API URL. This only needs to be set when - using self hosted GitLab + description: API URL. This only needs to be set when using + self hosted GitLab maxLength: 2048 type: string auth_url: - description: AuthUrl Authorization URL. This only needs to - be set when using self hosted GitLab + description: Authorization URL. This only needs to be set + when using self hosted GitLab maxLength: 2048 type: string client_id: - description: ClientId Client ID from provider + description: Client ID from provider maxLength: 1024 pattern: ^[\040-\176]+$ type: string client_secret: - description: ClientSecret Client secret from provider + description: Client secret from provider maxLength: 1024 pattern: ^[\040-\176]+$ type: string token_url: - description: TokenUrl Token URL. This only needs to be set - when using self hosted GitLab + description: Token URL. This only needs to be set when using + self hosted GitLab maxLength: 2048 type: string required: @@ -360,26 +380,24 @@ spec: - client_secret type: object auth_google: - description: AuthGoogle Google Auth integration + description: Google Auth integration properties: allow_sign_up: - description: AllowSignUp Automatically sign-up users on successful - sign-in + description: Automatically sign-up users on successful sign-in type: boolean allowed_domains: - description: AllowedDomains Domains allowed to sign-in to - this Grafana + description: Domains allowed to sign-in to this Grafana items: type: string maxItems: 64 type: array client_id: - description: ClientId Client ID from provider + description: Client ID from provider maxLength: 1024 pattern: ^[\040-\176]+$ type: string client_secret: - description: ClientSecret Client secret from provider + description: Client secret from provider maxLength: 1024 pattern: ^[\040-\176]+$ type: string @@ -389,127 +407,122 @@ spec: - client_secret type: object cookie_samesite: - description: 'CookieSamesite Cookie SameSite attribute: ''strict'' - prevents sending cookie for cross-site requests, effectively - disabling direct linking from other sites to Grafana. ''lax'' - is the default value.' + description: 'Cookie SameSite attribute: ''strict'' prevents sending + cookie for cross-site requests, effectively disabling direct + linking from other sites to Grafana. ''lax'' is the default + value.' enum: - lax - strict - none type: string custom_domain: - description: CustomDomain Serve the web frontend using a custom - CNAME pointing to the Aiven DNS name + description: Serve the web frontend using a custom CNAME pointing + to the Aiven DNS name maxLength: 255 type: string dashboard_previews_enabled: - description: DashboardPreviewsEnabled This feature is new in Grafana - 9 and is quite resource intensive. It may cause low-end plans - to work more slowly while the dashboard previews are rendering. + description: This feature is new in Grafana 9 and is quite resource + intensive. It may cause low-end plans to work more slowly while + the dashboard previews are rendering. type: boolean dashboards_min_refresh_interval: - description: DashboardsMinRefreshInterval Signed sequence of decimal - numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s, - 1h + description: Signed sequence of decimal numbers, followed by a + unit suffix (ms, s, m, h, d), e.g. 30s, 1h maxLength: 16 pattern: ^[0-9]+(ms|s|m|h|d)$ type: string dashboards_versions_to_keep: - description: DashboardsVersionsToKeep Dashboard versions to keep - per dashboard + description: Dashboard versions to keep per dashboard maximum: 100 minimum: 1 type: integer dataproxy_send_user_header: - description: DataproxySendUserHeader Send 'X-Grafana-User' header - to data source + description: Send 'X-Grafana-User' header to data source type: boolean dataproxy_timeout: - description: DataproxyTimeout Timeout for data proxy requests - in seconds + description: Timeout for data proxy requests in seconds maximum: 90 minimum: 15 type: integer date_formats: - description: DateFormats Grafana date format specifications + description: Grafana date format specifications properties: default_timezone: - description: DefaultTimezone Default time zone for user preferences. - Value 'browser' uses browser local time zone. + description: Default time zone for user preferences. Value + 'browser' uses browser local time zone. maxLength: 64 pattern: (?i)^([a-zA-Z_]+/){1,2}[a-zA-Z_-]+$|^(Etc/)?(UTC|GMT)([+-](\d){1,2})?$|^(Factory)$|^(browser)$ type: string full_date: - description: FullDate Moment.js style format string for cases - where full date is shown + description: Moment.js style format string for cases where + full date is shown maxLength: 128 pattern: '^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$' type: string interval_day: - description: IntervalDay Moment.js style format string used - when a time requiring day accuracy is shown + description: Moment.js style format string used when a time + requiring day accuracy is shown maxLength: 128 pattern: '^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$' type: string interval_hour: - description: IntervalHour Moment.js style format string used - when a time requiring hour accuracy is shown + description: Moment.js style format string used when a time + requiring hour accuracy is shown maxLength: 128 pattern: '^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$' type: string interval_minute: - description: IntervalMinute Moment.js style format string - used when a time requiring minute accuracy is shown + description: Moment.js style format string used when a time + requiring minute accuracy is shown maxLength: 128 pattern: '^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$' type: string interval_month: - description: IntervalMonth Moment.js style format string used - when a time requiring month accuracy is shown + description: Moment.js style format string used when a time + requiring month accuracy is shown maxLength: 128 pattern: '^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$' type: string interval_second: - description: IntervalSecond Moment.js style format string - used when a time requiring second accuracy is shown + description: Moment.js style format string used when a time + requiring second accuracy is shown maxLength: 128 pattern: '^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$' type: string interval_year: - description: IntervalYear Moment.js style format string used - when a time requiring year accuracy is shown + description: Moment.js style format string used when a time + requiring year accuracy is shown maxLength: 128 pattern: '^(([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|LTS|LT|LL?L?L?|l{1,4}|[-+/T,;.: ]?)*)$' type: string type: object disable_gravatar: - description: DisableGravatar Set to true to disable gravatar. - Defaults to false (gravatar is enabled) + description: Set to true to disable gravatar. Defaults to false + (gravatar is enabled) type: boolean editors_can_admin: - description: EditorsCanAdmin Editors can manage folders, teams - and dashboards created by them + description: Editors can manage folders, teams and dashboards + created by them type: boolean external_image_storage: - description: ExternalImageStorage External image store settings + description: External image store settings properties: access_key: - description: AccessKey S3 access key. Requires permissions - to the S3 bucket for the s3:PutObject and s3:PutObjectAcl - actions + description: S3 access key. Requires permissions to the S3 + bucket for the s3:PutObject and s3:PutObjectAcl actions maxLength: 4096 pattern: ^[A-Z0-9]+$ type: string bucket_url: - description: BucketUrl Bucket URL for S3 + description: Bucket URL for S3 maxLength: 2048 type: string provider: @@ -518,7 +531,7 @@ spec: - s3 type: string secret_key: - description: SecretKey S3 secret key + description: S3 secret key maxLength: 4096 pattern: ^[A-Za-z0-9/+=]+$ type: string @@ -529,23 +542,23 @@ spec: - secret_key type: object google_analytics_ua_id: - description: GoogleAnalyticsUaId Google Analytics ID + description: Google Analytics ID maxLength: 64 pattern: ^(G|UA|YT|MO)-[a-zA-Z0-9-]+$ type: string ip_filter: - description: IpFilter Allow incoming connections from CIDR address - block, e.g. '10.20.0.0/16' + description: Allow incoming connections from CIDR address block, + e.g. '10.20.0.0/16' items: - description: IpFilter CIDR address block, either as a string, - or in a dict with an optional description field + description: CIDR address block, either as a string, or in a + dict with an optional description field properties: description: description: Description for IP filter list entry maxLength: 1024 type: string network: - description: Network CIDR address block + description: CIDR address block maxLength: 43 type: string required: @@ -554,69 +567,72 @@ spec: maxItems: 1024 type: array metrics_enabled: - description: MetricsEnabled Enable Grafana /metrics endpoint + description: Enable Grafana /metrics endpoint type: boolean private_access: - description: PrivateAccess Allow access to selected service ports - from private networks + description: Allow access to selected service ports from private + networks properties: grafana: - description: Grafana Allow clients to connect to grafana with - a DNS name that always resolves to the service's private - IP addresses. Only available in certain network locations + description: Allow clients to connect to grafana with a DNS + name that always resolves to the service's private IP addresses. + Only available in certain network locations type: boolean type: object privatelink_access: - description: PrivatelinkAccess Allow access to selected service - components through Privatelink + description: Allow access to selected service components through + Privatelink properties: grafana: - description: Grafana Enable grafana + description: Enable grafana type: boolean type: object project_to_fork_from: - description: ProjectToForkFrom Name of another project to fork - a service from. This has effect only when a new service is being - created. + description: Name of another project to fork a service from. This + has effect only when a new service is being created. maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf public_access: - description: PublicAccess Allow access to selected service ports - from the public Internet + description: Allow access to selected service ports from the public + Internet properties: grafana: - description: Grafana Allow clients to connect to grafana from - the public internet for service nodes that are in a project + description: Allow clients to connect to grafana from the + public internet for service nodes that are in a project VPC or another type of private network type: boolean type: object recovery_basebackup_name: - description: RecoveryBasebackupName Name of the basebackup to - restore in forked service + description: Name of the basebackup to restore in forked service maxLength: 128 pattern: ^[a-zA-Z0-9-_:.]+$ type: string service_to_fork_from: - description: ServiceToForkFrom Name of another service to fork - from. This has effect only when a new service is being created. + description: Name of another service to fork from. This has effect + only when a new service is being created. maxLength: 64 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf smtp_server: - description: SmtpServer SMTP server settings + description: SMTP server settings properties: from_address: - description: FromAddress Address used for sending emails + description: Address used for sending emails maxLength: 319 pattern: ^[A-Za-z0-9_\-\.+\'&]+@(([\da-zA-Z])([_\w-]{,62})\.){,127}(([\da-zA-Z])[_\w-]{,61})?([\da-zA-Z]\.((xn\-\-[a-zA-Z\d]+)|([a-zA-Z\d]{2,})))$ type: string from_name: - description: FromName Name used in outgoing emails, defaults - to Grafana + description: Name used in outgoing emails, defaults to Grafana maxLength: 128 pattern: ^[^\x00-\x1F]+$ type: string host: - description: Host Server hostname or IP + description: Server hostname or IP maxLength: 255 type: string password: @@ -625,17 +641,17 @@ spec: pattern: ^[^\x00-\x1F]+$ type: string port: - description: Port SMTP server port + description: SMTP server port maximum: 65535 minimum: 1 type: integer skip_verify: - description: SkipVerify Skip verifying server certificate. - Defaults to false + description: Skip verifying server certificate. Defaults to + false type: boolean starttls_policy: - description: StarttlsPolicy Either OpportunisticStartTLS, - MandatoryStartTLS or NoStartTLS. Default is OpportunisticStartTLS. + description: Either OpportunisticStartTLS, MandatoryStartTLS + or NoStartTLS. Default is OpportunisticStartTLS. enum: - OpportunisticStartTLS - MandatoryStartTLS @@ -652,23 +668,22 @@ spec: - port type: object static_ips: - description: StaticIps Use static public IP addresses + description: Use static public IP addresses type: boolean user_auto_assign_org: - description: UserAutoAssignOrg Auto-assign new users on signup - to main organization. Defaults to false + description: Auto-assign new users on signup to main organization. + Defaults to false type: boolean user_auto_assign_org_role: - description: UserAutoAssignOrgRole Set role for new signups. Defaults - to Viewer + description: Set role for new signups. Defaults to Viewer enum: - Viewer - Admin - Editor type: string viewers_can_edit: - description: ViewersCanEdit Users with view-only permission can - edit but not save dashboards + description: Users with view-only permission can edit but not + save dashboards type: boolean type: object required: diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml index 2aab64c..f092a93 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml @@ -79,6 +79,9 @@ spec: format: ^[a-zA-Z0-9_-]*$ maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVPCRef: description: ProjectVPCRef reference to ProjectVPC resource to use its ID as ProjectVPCID automatically @@ -92,10 +95,38 @@ spec: required: - name type: object + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVpcId: description: Identifier of the VPC the service should be in, if any. maxLength: 36 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + serviceIntegrations: + items: + description: Service integrations to specify when creating a service. + Not applied after initial service creation + properties: + integrationType: + enum: + - read_replica + type: string + sourceServiceName: + maxLength: 64 + minLength: 1 + type: string + required: + - integrationType + - sourceServiceName + type: object + maxItems: 1 + type: array + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf tags: additionalProperties: type: string @@ -109,51 +140,158 @@ spec: userConfig: description: PostgreSQL specific user configuration options properties: - connector_client_config_override_policy: - description: Defines what client configurations can be overridden - by the connector. Default is None - type: string - consumer_auto_offset_reset: - description: What to do when there is no initial offset in Kafka - or if the current offset does not exist any more on the server. - Default is earliest - type: string - consumer_fetch_max_bytes: - description: Records are fetched in batches by the consumer, and - if the first record batch in the first non-empty partition of - the fetch is larger than this value, the record batch will still - be returned to ensure that the consumer can make progress. As - such, this is not a absolute maximum. - format: int64 - type: integer - consumer_isolation_level: - description: Transaction read isolation level. read_uncommitted - is the default, but read_committed can be used if consume-exactly-once - behavior is desired. - type: string - consumer_max_partition_fetch_bytes: - description: Records are fetched in batches by the consumer.If - the first record batch in the first non-empty partition of the - fetch is larger than this limit, the batch will still be returned - to ensure that the consumer can make progress. - format: int64 - type: integer - consumer_max_poll_interval_ms: - description: The maximum delay in milliseconds between invocations - of poll() when using consumer group management (defaults to - 300000). - format: int64 - type: integer - consumer_max_poll_records: - description: The maximum number of records returned in a single - call to poll() (defaults to 500). - format: int64 - type: integer - offset_flush_interval_ms: - description: The interval at which to try committing offsets for - tasks (defaults to 60000). - format: int64 - type: integer + additional_backup_regions: + description: Additional Cloud Regions for Backup Replication + items: + type: string + maxItems: 1 + type: array + ip_filter: + description: Allow incoming connections from CIDR address block, + e.g. '10.20.0.0/16' + items: + description: CIDR address block, either as a string, or in a + dict with an optional description field + properties: + description: + description: Description for IP filter list entry + maxLength: 1024 + type: string + network: + description: CIDR address block + maxLength: 43 + type: string + required: + - network + type: object + maxItems: 1024 + type: array + kafka_connect: + description: Kafka Connect configuration values + properties: + connector_client_config_override_policy: + description: Defines what client configurations can be overridden + by the connector. Default is None + enum: + - None + - All + type: string + consumer_auto_offset_reset: + description: What to do when there is no initial offset in + Kafka or if the current offset does not exist any more on + the server. Default is earliest + enum: + - earliest + - latest + type: string + consumer_fetch_max_bytes: + description: Records are fetched in batches by the consumer, + and if the first record batch in the first non-empty partition + of the fetch is larger than this value, the record batch + will still be returned to ensure that the consumer can make + progress. As such, this is not a absolute maximum. + maximum: 104857600 + minimum: 1048576 + type: integer + consumer_isolation_level: + description: Transaction read isolation level. read_uncommitted + is the default, but read_committed can be used if consume-exactly-once + behavior is desired. + enum: + - read_uncommitted + - read_committed + type: string + consumer_max_partition_fetch_bytes: + description: Records are fetched in batches by the consumer.If + the first record batch in the first non-empty partition + of the fetch is larger than this limit, the batch will still + be returned to ensure that the consumer can make progress. + maximum: 104857600 + minimum: 1048576 + type: integer + consumer_max_poll_interval_ms: + description: The maximum delay in milliseconds between invocations + of poll() when using consumer group management (defaults + to 300000). + maximum: 2147483647 + minimum: 1 + type: integer + consumer_max_poll_records: + description: The maximum number of records returned in a single + call to poll() (defaults to 500). + maximum: 10000 + minimum: 1 + type: integer + offset_flush_interval_ms: + description: The interval at which to try committing offsets + for tasks (defaults to 60000). + maximum: 100000000 + minimum: 1 + type: integer + offset_flush_timeout_ms: + description: Maximum number of milliseconds to wait for records + to flush and partition offset data to be committed to offset + storage before cancelling the process and restoring the + offset data to be committed in a future attempt (defaults + to 5000). + maximum: 2147483647 + minimum: 1 + type: integer + producer_batch_size: + description: This setting gives the upper bound of the batch + size to be sent. If there are fewer than this many bytes + accumulated for this partition, the producer will 'linger' + for the linger.ms time waiting for more records to show + up. A batch size of zero will disable batching entirely + (defaults to 16384). + maximum: 5242880 + minimum: 0 + type: integer + producer_buffer_memory: + description: The total bytes of memory the producer can use + to buffer records waiting to be sent to the broker (defaults + to 33554432). + maximum: 134217728 + minimum: 5242880 + type: integer + producer_compression_type: + description: Specify the default compression type for producers. + This configuration accepts the standard compression codecs + ('gzip', 'snappy', 'lz4', 'zstd'). It additionally accepts + 'none' which is the default and equivalent to no compression. + enum: + - gzip + - snappy + - lz4 + - zstd + - none + type: string + producer_linger_ms: + description: 'This setting gives the upper bound on the delay + for batching: once there is batch.size worth of records + for a partition it will be sent immediately regardless of + this setting, however if there are fewer than this many + bytes accumulated for this partition the producer will ''linger'' + for the specified time waiting for more records to show + up. Defaults to 0.' + maximum: 5000 + minimum: 0 + type: integer + producer_max_request_size: + description: This setting will limit the number of record + batches the producer will send in a single request to avoid + sending huge requests. + maximum: 67108864 + minimum: 131072 + type: integer + session_timeout_ms: + description: The timeout in milliseconds used to detect failures + when using Kafka’s group management facilities (defaults + to 10000). + maximum: 2147483647 + minimum: 1 + type: integer + type: object private_access: description: Allow access to selected service ports from private networks @@ -169,12 +307,20 @@ spec: addresses. Only available in certain network locations type: boolean type: object - producer_max_request_size: - description: This setting will limit the number of record batches - the producer will send in a single request to avoid sending - huge requests. - format: int64 - type: integer + privatelink_access: + description: Allow access to selected service components through + Privatelink + properties: + jolokia: + description: Enable jolokia + type: boolean + kafka_connect: + description: Enable kafka_connect + type: boolean + prometheus: + description: Enable prometheus + type: boolean + type: object public_access: description: Allow access to selected service ports from the public Internet @@ -190,12 +336,9 @@ spec: VPC or another type of private network type: boolean type: object - session_timeout_ms: - description: The timeout in milliseconds used to detect failures - when using Kafka’s group management facilities (defaults to - 10000). - format: int64 - type: integer + static_ips: + description: Use static public IP addresses + type: boolean type: object required: - project diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml index 2eaa2ff..6aa671f 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml @@ -107,6 +107,9 @@ spec: format: ^[a-zA-Z0-9_-]*$ maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVPCRef: description: ProjectVPCRef reference to ProjectVPC resource to use its ID as ProjectVPCID automatically @@ -120,10 +123,38 @@ spec: required: - name type: object + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVpcId: description: Identifier of the VPC the service should be in, if any. maxLength: 36 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + serviceIntegrations: + items: + description: Service integrations to specify when creating a service. + Not applied after initial service creation + properties: + integrationType: + enum: + - read_replica + type: string + sourceServiceName: + maxLength: 64 + minLength: 1 + type: string + required: + - integrationType + - sourceServiceName + type: object + maxItems: 1 + type: array + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf tags: additionalProperties: type: string @@ -137,26 +168,50 @@ spec: userConfig: description: Kafka specific user configuration options properties: - ip_filter: - description: IP filter Allow incoming connections from CIDR address - block, e.g. '10.20.0.0/16' + additional_backup_regions: + description: Additional Cloud Regions for Backup Replication items: type: string + maxItems: 1 + type: array + custom_domain: + description: Serve the web frontend using a custom CNAME pointing + to the Aiven DNS name + maxLength: 255 + type: string + ip_filter: + description: Allow incoming connections from CIDR address block, + e.g. '10.20.0.0/16' + items: + description: CIDR address block, either as a string, or in a + dict with an optional description field + properties: + description: + description: Description for IP filter list entry + maxLength: 1024 + type: string + network: + description: CIDR address block + maxLength: 43 + type: string + required: + - network + type: object + maxItems: 1024 type: array kafka: description: Kafka broker configuration values properties: auto_create_topics_enable: - description: auto.create.topics.enable Enable auto creation - of topics + description: Enable auto creation of topics type: boolean compression_type: - description: compression.type Specify the final compression - type for a given topic. This configuration accepts the standard - compression codecs ('gzip', 'snappy', 'lz4', 'zstd'). It - additionally accepts 'uncompressed' which is equivalent - to no compression; and 'producer' which means retain the - original compression codec set by the producer. + description: Specify the final compression type for a given + topic. This configuration accepts the standard compression + codecs ('gzip', 'snappy', 'lz4', 'zstd'). It additionally + accepts 'uncompressed' which is equivalent to no compression; + and 'producer' which means retain the original compression + codec set by the producer. enum: - gzip - snappy @@ -166,257 +221,237 @@ spec: - producer type: string connections_max_idle_ms: - description: 'connections.max.idle.ms Idle connections timeout: - the server socket processor threads close the connections - that idle for longer than this.' - format: int64 + description: 'Idle connections timeout: the server socket + processor threads close the connections that idle for longer + than this.' maximum: 3600000 minimum: 1000 type: integer default_replication_factor: - description: default.replication.factor Replication factor - for autocreated topics - format: int64 + description: Replication factor for autocreated topics maximum: 10 minimum: 1 type: integer + group_initial_rebalance_delay_ms: + description: The amount of time, in milliseconds, the group + coordinator will wait for more consumers to join a new group + before performing the first rebalance. A longer delay means + potentially fewer rebalances, but increases the time until + processing begins. The default value for this is 3 seconds. + During development and testing it might be desirable to + set this to 0 in order to not delay test execution time. + maximum: 300000 + minimum: 0 + type: integer group_max_session_timeout_ms: - description: group.max.session.timeout.ms The maximum allowed - session timeout for registered consumers. Longer timeouts - give consumers more time to process messages in between - heartbeats at the cost of a longer time to detect failures. - format: int64 + description: The maximum allowed session timeout for registered + consumers. Longer timeouts give consumers more time to process + messages in between heartbeats at the cost of a longer time + to detect failures. maximum: 1800000 minimum: 0 type: integer group_min_session_timeout_ms: - description: group.min.session.timeout.ms The minimum allowed - session timeout for registered consumers. Longer timeouts - give consumers more time to process messages in between - heartbeats at the cost of a longer time to detect failures. - format: int64 + description: The minimum allowed session timeout for registered + consumers. Longer timeouts give consumers more time to process + messages in between heartbeats at the cost of a longer time + to detect failures. maximum: 60000 minimum: 0 type: integer log_cleaner_delete_retention_ms: - description: log.cleaner.delete.retention.ms How long are - delete records retained? - format: int64 + description: How long are delete records retained? maximum: 315569260000 minimum: 0 type: integer log_cleaner_max_compaction_lag_ms: - description: log.cleaner.max.compaction.lag.ms The maximum - amount of time message will remain uncompacted. Only applicable - for logs that are being compacted - format: int64 + description: The maximum amount of time message will remain + uncompacted. Only applicable for logs that are being compacted minimum: 30000 type: integer log_cleaner_min_cleanable_ratio: - description: log.cleaner.min.cleanable.ratio Controls log - compactor frequency. Larger value means more frequent compactions - but also more space wasted for logs. Consider setting log.cleaner.max.compaction.lag.ms + description: Controls log compactor frequency. Larger value + means more frequent compactions but also more space wasted + for logs. Consider setting log.cleaner.max.compaction.lag.ms to enforce compactions sooner, instead of setting a very high value for this option. - format: int64 - maximum: 1 - minimum: 0 - type: integer + type: number log_cleaner_min_compaction_lag_ms: - description: log.cleaner.min.compaction.lag.ms The minimum - time a message will remain uncompacted in the log. Only - applicable for logs that are being compacted. - format: int64 + description: The minimum time a message will remain uncompacted + in the log. Only applicable for logs that are being compacted. minimum: 0 type: integer log_cleanup_policy: - description: log.cleanup.policy The default cleanup policy - for segments beyond the retention window + description: The default cleanup policy for segments beyond + the retention window enum: - - compact - delete + - compact + - compact,delete type: string log_flush_interval_messages: - description: log.flush.interval.messages The number of messages - accumulated on a log partition before messages are flushed - to disk - format: int64 + description: The number of messages accumulated on a log partition + before messages are flushed to disk minimum: 1 type: integer log_flush_interval_ms: - description: log.flush.interval.ms The maximum time in ms - that a message in any topic is kept in memory before flushed - to disk. If not set, the value in log.flush.scheduler.interval.ms - is used - format: int64 + description: The maximum time in ms that a message in any + topic is kept in memory before flushed to disk. If not set, + the value in log.flush.scheduler.interval.ms is used minimum: 0 type: integer log_index_interval_bytes: - description: log.index.interval.bytes The interval with which - Kafka adds an entry to the offset index - format: int64 + description: The interval with which Kafka adds an entry to + the offset index maximum: 104857600 minimum: 0 type: integer log_index_size_max_bytes: - description: log.index.size.max.bytes The maximum size in - bytes of the offset index - format: int64 + description: The maximum size in bytes of the offset index maximum: 104857600 minimum: 1048576 type: integer log_message_downconversion_enable: - description: log.message.downconversion.enable This configuration - controls whether down-conversion of message formats is enabled - to satisfy consume requests. + description: This configuration controls whether down-conversion + of message formats is enabled to satisfy consume requests. type: boolean log_message_timestamp_difference_max_ms: - description: log.message.timestamp.difference.max.ms The maximum - difference allowed between the timestamp when a broker receives - a message and the timestamp specified in the message - format: int64 + description: The maximum difference allowed between the timestamp + when a broker receives a message and the timestamp specified + in the message minimum: 0 type: integer log_message_timestamp_type: - description: log.message.timestamp.type Define whether the - timestamp in the message is message create time or log append - time. + description: Define whether the timestamp in the message is + message create time or log append time. enum: - CreateTime - LogAppendTime type: string log_preallocate: - description: log.preallocate Should pre allocate file when - create new segment? + description: Should pre allocate file when create new segment? type: boolean log_retention_bytes: - description: log.retention.bytes The maximum size of the log - before deleting messages - format: int64 + description: The maximum size of the log before deleting messages + minimum: -1 type: integer log_retention_hours: - description: log.retention.hours The number of hours to keep - a log file before deleting it - format: int64 + description: The number of hours to keep a log file before + deleting it maximum: 2147483647 + minimum: -1 type: integer log_retention_ms: - description: log.retention.ms The number of milliseconds to - keep a log file before deleting it (in milliseconds), If - not set, the value in log.retention.minutes is used. If - set to -1, no time limit is applied. - format: int64 + description: The number of milliseconds to keep a log file + before deleting it (in milliseconds), If not set, the value + in log.retention.minutes is used. If set to -1, no time + limit is applied. + minimum: -1 type: integer log_roll_jitter_ms: - description: log.roll.jitter.ms The maximum jitter to subtract - from logRollTimeMillis (in milliseconds). If not set, the - value in log.roll.jitter.hours is used - format: int64 + description: The maximum jitter to subtract from logRollTimeMillis + (in milliseconds). If not set, the value in log.roll.jitter.hours + is used minimum: 0 type: integer log_roll_ms: - description: log.roll.ms The maximum time before a new log - segment is rolled out (in milliseconds). - format: int64 + description: The maximum time before a new log segment is + rolled out (in milliseconds). minimum: 1 type: integer log_segment_bytes: - description: log.segment.bytes The maximum size of a single - log file - format: int64 + description: The maximum size of a single log file maximum: 1073741824 minimum: 10485760 type: integer log_segment_delete_delay_ms: - description: log.segment.delete.delay.ms The amount of time - to wait before deleting a file from the filesystem - format: int64 + description: The amount of time to wait before deleting a + file from the filesystem maximum: 3600000 minimum: 0 type: integer max_connections_per_ip: - description: max.connections.per.ip The maximum number of - connections allowed from each ip address (defaults to 2147483647). - format: int64 + description: The maximum number of connections allowed from + each ip address (defaults to 2147483647). maximum: 2147483647 minimum: 256 type: integer max_incremental_fetch_session_cache_slots: - description: max.incremental.fetch.session.cache.slots The - maximum number of incremental fetch sessions that the broker - will maintain. - format: int64 + description: The maximum number of incremental fetch sessions + that the broker will maintain. maximum: 10000 minimum: 1000 type: integer message_max_bytes: - description: message.max.bytes The maximum size of message - that the server can receive. - format: int64 + description: The maximum size of message that the server can + receive. maximum: 100001200 minimum: 0 type: integer min_insync_replicas: - description: min.insync.replicas When a producer sets acks - to 'all' (or '-1'), min.insync.replicas specifies the minimum - number of replicas that must acknowledge a write for the - write to be considered successful. - format: int64 + description: When a producer sets acks to 'all' (or '-1'), + min.insync.replicas specifies the minimum number of replicas + that must acknowledge a write for the write to be considered + successful. maximum: 7 minimum: 1 type: integer num_partitions: - description: num.partitions Number of partitions for autocreated - topics - format: int64 + description: Number of partitions for autocreated topics maximum: 1000 minimum: 1 type: integer offsets_retention_minutes: - description: offsets.retention.minutes Log retention window - in minutes for offsets topic - format: int64 + description: Log retention window in minutes for offsets topic maximum: 2147483647 minimum: 1 type: integer producer_purgatory_purge_interval_requests: - description: producer.purgatory.purge.interval.requests The - purge interval (in number of requests) of the producer request - purgatory(defaults to 1000). - format: int64 + description: The purge interval (in number of requests) of + the producer request purgatory(defaults to 1000). maximum: 10000 minimum: 10 type: integer replica_fetch_max_bytes: - description: replica.fetch.max.bytes The number of bytes of - messages to attempt to fetch for each partition (defaults - to 1048576). This is not an absolute maximum, if the first - record batch in the first non-empty partition of the fetch - is larger than this value, the record batch will still be - returned to ensure that progress can be made. - format: int64 + description: The number of bytes of messages to attempt to + fetch for each partition (defaults to 1048576). This is + not an absolute maximum, if the first record batch in the + first non-empty partition of the fetch is larger than this + value, the record batch will still be returned to ensure + that progress can be made. maximum: 104857600 minimum: 1048576 type: integer replica_fetch_response_max_bytes: - description: replica.fetch.response.max.bytes Maximum bytes - expected for the entire fetch response (defaults to 10485760). - Records are fetched in batches, and if the first record - batch in the first non-empty partition of the fetch is larger - than this value, the record batch will still be returned - to ensure that progress can be made. As such, this is not - an absolute maximum. - format: int64 + description: Maximum bytes expected for the entire fetch response + (defaults to 10485760). Records are fetched in batches, + and if the first record batch in the first non-empty partition + of the fetch is larger than this value, the record batch + will still be returned to ensure that progress can be made. + As such, this is not an absolute maximum. maximum: 1048576000 minimum: 10485760 type: integer socket_request_max_bytes: - description: socket.request.max.bytes The maximum number of - bytes in a socket request (defaults to 104857600). - format: int64 + description: The maximum number of bytes in a socket request + (defaults to 104857600). maximum: 209715200 minimum: 10485760 type: integer + transaction_remove_expired_transaction_cleanup_interval_ms: + description: The interval at which to remove transactions + that have expired due to transactional.id.expiration.ms + passing (defaults to 3600000 (1 hour)). + maximum: 3600000 + minimum: 600000 + type: integer + transaction_state_log_segment_bytes: + description: The transaction topic segment bytes should be + kept relatively small in order to facilitate faster log + compaction and cache loads (defaults to 104857600 (100 mebibytes)). + maximum: 2147483647 + minimum: 1048576 + type: integer type: object kafka_authentication_methods: description: Kafka authentication methods @@ -431,105 +466,128 @@ spec: kafka_connect: description: Enable Kafka Connect service type: boolean - kafka_connect_user_config: + kafka_connect_config: description: Kafka Connect configuration values properties: connector_client_config_override_policy: - description: Client config override policy Defines what client - configurations can be overridden by the connector. Default - is None + description: Defines what client configurations can be overridden + by the connector. Default is None enum: - None - All type: string consumer_auto_offset_reset: - description: Consumer auto offset reset What to do when there - is no initial offset in Kafka or if the current offset does - not exist any more on the server. Default is earliest + description: What to do when there is no initial offset in + Kafka or if the current offset does not exist any more on + the server. Default is earliest enum: - earliest - latest type: string consumer_fetch_max_bytes: - description: The maximum amount of data the server should - return for a fetch request Records are fetched in batches - by the consumer, and if the first record batch in the first - non-empty partition of the fetch is larger than this value, - the record batch will still be returned to ensure that the - consumer can make progress. As such, this is not a absolute - maximum. - format: int64 + description: Records are fetched in batches by the consumer, + and if the first record batch in the first non-empty partition + of the fetch is larger than this value, the record batch + will still be returned to ensure that the consumer can make + progress. As such, this is not a absolute maximum. maximum: 104857600 minimum: 1048576 type: integer consumer_isolation_level: - description: Consumer isolation level Transaction read isolation - level. read_uncommitted is the default, but read_committed - can be used if consume-exactly-once behavior is desired. + description: Transaction read isolation level. read_uncommitted + is the default, but read_committed can be used if consume-exactly-once + behavior is desired. enum: - read_uncommitted - read_committed type: string consumer_max_partition_fetch_bytes: - description: The maximum amount of data per-partition the - server will return. Records are fetched in batches by the - consumer.If the first record batch in the first non-empty - partition of the fetch is larger than this limit, the batch - will still be returned to ensure that the consumer can make - progress. - format: int64 + description: Records are fetched in batches by the consumer.If + the first record batch in the first non-empty partition + of the fetch is larger than this limit, the batch will still + be returned to ensure that the consumer can make progress. maximum: 104857600 minimum: 1048576 type: integer consumer_max_poll_interval_ms: - description: The maximum delay between polls when using consumer - group management The maximum delay in milliseconds between - invocations of poll() when using consumer group management - (defaults to 300000). - format: int64 + description: The maximum delay in milliseconds between invocations + of poll() when using consumer group management (defaults + to 300000). maximum: 2147483647 minimum: 1 type: integer consumer_max_poll_records: - description: The maximum number of records returned by a single - poll The maximum number of records returned in a single + description: The maximum number of records returned in a single call to poll() (defaults to 500). - format: int64 maximum: 10000 minimum: 1 type: integer offset_flush_interval_ms: description: The interval at which to try committing offsets - for tasks The interval at which to try committing offsets for tasks (defaults to 60000). - format: int64 maximum: 100000000 minimum: 1 type: integer offset_flush_timeout_ms: - description: Offset flush timeout Maximum number of milliseconds - to wait for records to flush and partition offset data to - be committed to offset storage before cancelling the process - and restoring the offset data to be committed in a future - attempt (defaults to 5000). - format: int64 + description: Maximum number of milliseconds to wait for records + to flush and partition offset data to be committed to offset + storage before cancelling the process and restoring the + offset data to be committed in a future attempt (defaults + to 5000). maximum: 2147483647 minimum: 1 type: integer + producer_batch_size: + description: This setting gives the upper bound of the batch + size to be sent. If there are fewer than this many bytes + accumulated for this partition, the producer will 'linger' + for the linger.ms time waiting for more records to show + up. A batch size of zero will disable batching entirely + (defaults to 16384). + maximum: 5242880 + minimum: 0 + type: integer + producer_buffer_memory: + description: The total bytes of memory the producer can use + to buffer records waiting to be sent to the broker (defaults + to 33554432). + maximum: 134217728 + minimum: 5242880 + type: integer + producer_compression_type: + description: Specify the default compression type for producers. + This configuration accepts the standard compression codecs + ('gzip', 'snappy', 'lz4', 'zstd'). It additionally accepts + 'none' which is the default and equivalent to no compression. + enum: + - gzip + - snappy + - lz4 + - zstd + - none + type: string + producer_linger_ms: + description: 'This setting gives the upper bound on the delay + for batching: once there is batch.size worth of records + for a partition it will be sent immediately regardless of + this setting, however if there are fewer than this many + bytes accumulated for this partition the producer will ''linger'' + for the specified time waiting for more records to show + up. Defaults to 0.' + maximum: 5000 + minimum: 0 + type: integer producer_max_request_size: - description: The maximum size of a request in bytes This setting - will limit the number of record batches the producer will - send in a single request to avoid sending huge requests. - format: int64 - maximum: 10485760 + description: This setting will limit the number of record + batches the producer will send in a single request to avoid + sending huge requests. + maximum: 67108864 minimum: 131072 type: integer session_timeout_ms: - description: The timeout used to detect failures when using - Kafka’s group management facilities The timeout in milliseconds - used to detect failures when using Kafka’s group management - facilities (defaults to 10000). - format: int64 + description: The timeout in milliseconds used to detect failures + when using Kafka’s group management facilities (defaults + to 10000). maximum: 2147483647 minimum: 1 type: integer @@ -537,106 +595,158 @@ spec: kafka_rest: description: Enable Kafka-REST service type: boolean + kafka_rest_authorization: + description: Enable authorization in Kafka-REST service + type: boolean kafka_rest_config: description: Kafka REST configuration properties: consumer_enable_auto_commit: - description: consumer.enable.auto.commit If true the consumer's - offset will be periodically committed to Kafka in the background + description: If true the consumer's offset will be periodically + committed to Kafka in the background type: boolean consumer_request_max_bytes: - description: consumer.request.max.bytes Maximum number of - bytes in unencoded message keys and values by a single request - format: int64 + description: Maximum number of bytes in unencoded message + keys and values by a single request maximum: 671088640 minimum: 0 type: integer consumer_request_timeout_ms: - description: consumer.request.timeout.ms The maximum total - time to wait for messages for a request if the maximum number - of messages has not yet been reached + description: The maximum total time to wait for messages for + a request if the maximum number of messages has not yet + been reached enum: - 1000 - 15000 - 30000 - format: int64 maximum: 30000 minimum: 1000 type: integer - custom_domain: - description: Custom domain Serve the web frontend using a - custom CNAME pointing to the Aiven DNS name - maxLength: 255 - type: string producer_acks: - description: producer.acks The number of acknowledgments the - producer requires the leader to have received before considering - a request complete. If set to 'all' or '-1', the leader - will wait for the full set of in-sync replicas to acknowledge - the record. + description: The number of acknowledgments the producer requires + the leader to have received before considering a request + complete. If set to 'all' or '-1', the leader will wait + for the full set of in-sync replicas to acknowledge the + record. enum: - all - - -1 - - 0 - - 1 + - "-1" + - "0" + - "1" + type: string + producer_compression_type: + description: Specify the default compression type for producers. + This configuration accepts the standard compression codecs + ('gzip', 'snappy', 'lz4', 'zstd'). It additionally accepts + 'none' which is the default and equivalent to no compression. + enum: + - gzip + - snappy + - lz4 + - zstd + - none type: string producer_linger_ms: - description: producer.linger.ms Wait for up to the given delay - to allow batching records together - format: int64 + description: Wait for up to the given delay to allow batching + records together maximum: 5000 minimum: 0 type: integer - public_access: - description: Allow access to selected service ports from the - public Internet - properties: - kafka: - description: Allow clients to connect to kafka from the - public internet for service nodes that are in a project - VPC or another type of private network - type: boolean - kafka_connect: - description: Allow clients to connect to kafka_connect - from the public internet for service nodes that are - in a project VPC or another type of private network - type: boolean - kafka_rest: - description: Allow clients to connect to kafka_rest from - the public internet for service nodes that are in a - project VPC or another type of private network - type: boolean - prometheus: - description: Allow clients to connect to prometheus from - the public internet for service nodes that are in a - project VPC or another type of private network - type: boolean - schema_registry: - description: Allow clients to connect to schema_registry - from the public internet for service nodes that are - in a project VPC or another type of private network - type: boolean - type: object simpleconsumer_pool_size_max: - description: simpleconsumer.pool.size.max Maximum number of - SimpleConsumers that can be instantiated per broker - format: int64 + description: Maximum number of SimpleConsumers that can be + instantiated per broker maximum: 250 minimum: 10 type: integer type: object kafka_version: description: Kafka major version + enum: + - "3.2" + - "3.3" type: string private_access: description: Allow access to selected service ports from private networks properties: + kafka: + description: Allow clients to connect to kafka with a DNS + name that always resolves to the service's private IP addresses. + Only available in certain network locations + type: boolean + kafka_connect: + description: Allow clients to connect to kafka_connect with + a DNS name that always resolves to the service's private + IP addresses. Only available in certain network locations + type: boolean + kafka_rest: + description: Allow clients to connect to kafka_rest with a + DNS name that always resolves to the service's private IP + addresses. Only available in certain network locations + type: boolean prometheus: description: Allow clients to connect to prometheus with a DNS name that always resolves to the service's private IP addresses. Only available in certain network locations type: boolean + schema_registry: + description: Allow clients to connect to schema_registry with + a DNS name that always resolves to the service's private + IP addresses. Only available in certain network locations + type: boolean + type: object + privatelink_access: + description: Allow access to selected service components through + Privatelink + properties: + jolokia: + description: Enable jolokia + type: boolean + kafka: + description: Enable kafka + type: boolean + kafka_connect: + description: Enable kafka_connect + type: boolean + kafka_rest: + description: Enable kafka_rest + type: boolean + prometheus: + description: Enable prometheus + type: boolean + schema_registry: + description: Enable schema_registry + type: boolean + type: object + public_access: + description: Allow access to selected service ports from the public + Internet + properties: + kafka: + description: Allow clients to connect to kafka from the public + internet for service nodes that are in a project VPC or + another type of private network + type: boolean + kafka_connect: + description: Allow clients to connect to kafka_connect from + the public internet for service nodes that are in a project + VPC or another type of private network + type: boolean + kafka_rest: + description: Allow clients to connect to kafka_rest from the + public internet for service nodes that are in a project + VPC or another type of private network + type: boolean + prometheus: + description: Allow clients to connect to prometheus from the + public internet for service nodes that are in a project + VPC or another type of private network + type: boolean + schema_registry: + description: Allow clients to connect to schema_registry from + the public internet for service nodes that are in a project + VPC or another type of private network + type: boolean type: object schema_registry: description: Enable Schema-Registry service @@ -645,26 +755,29 @@ spec: description: Schema Registry configuration properties: leader_eligibility: - description: leader_eligibility If true, Karapace / Schema - Registry on the service nodes can participate in leader - election. It might be needed to disable this when the schemas - topic is replicated to a secondary cluster and Karapace - / Schema Registry there must not participate in leader election. - Defaults to 'true'. + description: If true, Karapace / Schema Registry on the service + nodes can participate in leader election. It might be needed + to disable this when the schemas topic is replicated to + a secondary cluster and Karapace / Schema Registry there + must not participate in leader election. Defaults to `true`. type: boolean topic_name: - description: topic_name The durable single partition topic - that acts as the durable log for the data. This topic must - be compacted to avoid losing data due to retention policy. - Please note that changing this configuration in an existing - Schema Registry / Karapace setup leads to previous schemas - being inaccessible, data encoded with them potentially unreadable - and schema ID sequence put out of order. It's only possible - to do the switch while Schema Registry / Karapace is disabled. - Defaults to '_schemas'. + description: The durable single partition topic that acts + as the durable log for the data. This topic must be compacted + to avoid losing data due to retention policy. Please note + that changing this configuration in an existing Schema Registry + / Karapace setup leads to previous schemas being inaccessible, + data encoded with them potentially unreadable and schema + ID sequence put out of order. It's only possible to do the + switch while Schema Registry / Karapace is disabled. Defaults + to `_schemas`. maxLength: 249 + minLength: 1 type: string type: object + static_ips: + description: Use static public IP addresses + type: boolean type: object required: - project diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkatopics.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkatopics.yaml index 506530b..0fb7d08 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkatopics.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkatopics.yaml @@ -108,6 +108,9 @@ spec: message_timestamp_type: description: message.timestamp.type value type: string + min_cleanable_dirty_ratio: + description: min.cleanable.dirty.ratio value + type: number min_compaction_lag_ms: description: min.compaction.lag.ms value format: int64 diff --git a/charts/aiven-operator-crds/templates/aiven.io_mysqls.yaml b/charts/aiven-operator-crds/templates/aiven.io_mysqls.yaml index 8ffcca0..f59f23a 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_mysqls.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_mysqls.yaml @@ -103,6 +103,9 @@ spec: format: ^[a-zA-Z0-9_-]*$ maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVPCRef: description: ProjectVPCRef reference to ProjectVPC resource to use its ID as ProjectVPCID automatically @@ -116,10 +119,38 @@ spec: required: - name type: object + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVpcId: description: Identifier of the VPC the service should be in, if any. maxLength: 36 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + serviceIntegrations: + items: + description: Service integrations to specify when creating a service. + Not applied after initial service creation + properties: + integrationType: + enum: + - read_replica + type: string + sourceServiceName: + maxLength: 64 + minLength: 1 + type: string + required: + - integrationType + - sourceServiceName + type: object + maxItems: 1 + type: array + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf tags: additionalProperties: type: string @@ -134,62 +165,65 @@ spec: description: MySQL specific user configuration options properties: additional_backup_regions: - description: AdditionalBackupRegions Additional Cloud Regions - for Backup Replication + description: Additional Cloud Regions for Backup Replication items: type: string maxItems: 1 type: array admin_password: - description: AdminPassword Custom password for admin user. Defaults - to random string. This must be set only when a new service is - being created. + description: Custom password for admin user. Defaults to random + string. This must be set only when a new service is being created. maxLength: 256 minLength: 8 pattern: ^[a-zA-Z0-9-_]+$ type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf admin_username: - description: AdminUsername Custom username for admin user. This - must be set only when a new service is being created. + description: Custom username for admin user. This must be set + only when a new service is being created. maxLength: 64 pattern: ^[_A-Za-z0-9][-._A-Za-z0-9]{0,63}$ type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf backup_hour: - description: BackupHour The hour of day (in UTC) when backup for - the service is started. New backup is only started if previous - backup has already completed. + description: The hour of day (in UTC) when backup for the service + is started. New backup is only started if previous backup has + already completed. maximum: 23 minimum: 0 type: integer backup_minute: - description: BackupMinute The minute of an hour when backup for - the service is started. New backup is only started if previous - backup has already completed. + description: The minute of an hour when backup for the service + is started. New backup is only started if previous backup has + already completed. maximum: 59 minimum: 0 type: integer binlog_retention_period: - description: BinlogRetentionPeriod The minimum amount of time - in seconds to keep binlog entries before deletion. This may - be extended for services that require binlog entries for longer - than the default for example if using the MySQL Debezium Kafka - connector. + description: The minimum amount of time in seconds to keep binlog + entries before deletion. This may be extended for services that + require binlog entries for longer than the default for example + if using the MySQL Debezium Kafka connector. maximum: 86400 minimum: 600 type: integer ip_filter: - description: IpFilter Allow incoming connections from CIDR address - block, e.g. '10.20.0.0/16' + description: Allow incoming connections from CIDR address block, + e.g. '10.20.0.0/16' items: - description: IpFilter CIDR address block, either as a string, - or in a dict with an optional description field + description: CIDR address block, either as a string, or in a + dict with an optional description field properties: description: description: Description for IP filter list entry maxLength: 1024 type: string network: - description: Network CIDR address block + description: CIDR address block maxLength: 43 type: string required: @@ -198,11 +232,10 @@ spec: maxItems: 1024 type: array migration: - description: Migration Migrate data from existing server + description: Migrate data from existing server properties: dbname: - description: Dbname Database name for bootstrapping the initial - connection + description: Database name for bootstrapping the initial connection maxLength: 63 type: string host: @@ -211,14 +244,14 @@ spec: maxLength: 255 type: string ignore_dbs: - description: IgnoreDbs Comma-separated list of databases, - which should be ignored during migration (supported by MySQL - only at the moment) + description: Comma-separated list of databases, which should + be ignored during migration (supported by MySQL only at + the moment) maxLength: 2048 type: string method: - description: Method The migration method to be used (currently - supported only by Redis and MySQL service types) + description: The migration method to be used (currently supported + only by Redis and MySQL service types) enum: - dump - replication @@ -235,12 +268,12 @@ spec: minimum: 1 type: integer ssl: - description: Ssl The server where to migrate data from is - secured with SSL + description: The server where to migrate data from is secured + with SSL type: boolean username: - description: Username User name for authentication with the - server where to migrate data from + description: User name for authentication with the server + where to migrate data from maxLength: 256 type: string required: @@ -248,291 +281,282 @@ spec: - port type: object mysql: - description: Mysql mysql.conf configuration values + description: mysql.conf configuration values properties: connect_timeout: - description: ConnectTimeout The number of seconds that the - mysqld server waits for a connect packet before responding - with Bad handshake + description: The number of seconds that the mysqld server + waits for a connect packet before responding with Bad handshake maximum: 3600 minimum: 2 type: integer default_time_zone: - description: DefaultTimeZone Default server time zone as an - offset from UTC (from -12:00 to +12:00), a time zone name, - or 'SYSTEM' to use the MySQL server default. + description: Default server time zone as an offset from UTC + (from -12:00 to +12:00), a time zone name, or 'SYSTEM' to + use the MySQL server default. maxLength: 100 minLength: 2 type: string group_concat_max_len: - description: GroupConcatMaxLen The maximum permitted result - length in bytes for the GROUP_CONCAT() function. - maximum: 9223372036854776000 + description: The maximum permitted result length in bytes + for the GROUP_CONCAT() function. minimum: 4 type: integer information_schema_stats_expiry: - description: InformationSchemaStatsExpiry The time, in seconds, - before cached statistics expire + description: The time, in seconds, before cached statistics + expire maximum: 31536000 minimum: 900 type: integer innodb_change_buffer_max_size: - description: InnodbChangeBufferMaxSize Maximum size for the - InnoDB change buffer, as a percentage of the total size - of the buffer pool. Default is 25 + description: Maximum size for the InnoDB change buffer, as + a percentage of the total size of the buffer pool. Default + is 25 maximum: 50 minimum: 0 type: integer innodb_flush_neighbors: - description: 'InnodbFlushNeighbors Specifies whether flushing - a page from the InnoDB buffer pool also flushes other dirty - pages in the same extent (default is 1): 0 - dirty pages - in the same extent are not flushed, 1 - flush contiguous - dirty pages in the same extent, 2 - flush dirty pages in - the same extent' + description: 'Specifies whether flushing a page from the InnoDB + buffer pool also flushes other dirty pages in the same extent + (default is 1): 0 - dirty pages in the same extent are not + flushed, 1 - flush contiguous dirty pages in the same extent, 2 + - flush dirty pages in the same extent' maximum: 2 minimum: 0 type: integer innodb_ft_min_token_size: - description: InnodbFtMinTokenSize Minimum length of words - that are stored in an InnoDB FULLTEXT index. Changing this - parameter will lead to a restart of the MySQL service. + description: Minimum length of words that are stored in an + InnoDB FULLTEXT index. Changing this parameter will lead + to a restart of the MySQL service. maximum: 16 minimum: 0 type: integer innodb_ft_server_stopword_table: - description: InnodbFtServerStopwordTable This option is used - to specify your own InnoDB FULLTEXT index stopword list - for all InnoDB tables. + description: This option is used to specify your own InnoDB + FULLTEXT index stopword list for all InnoDB tables. maxLength: 1024 pattern: ^.+/.+$ type: string innodb_lock_wait_timeout: - description: InnodbLockWaitTimeout The length of time in seconds - an InnoDB transaction waits for a row lock before giving - up. + description: The length of time in seconds an InnoDB transaction + waits for a row lock before giving up. maximum: 3600 minimum: 1 type: integer innodb_log_buffer_size: - description: InnodbLogBufferSize The size in bytes of the - buffer that InnoDB uses to write to the log files on disk. + description: The size in bytes of the buffer that InnoDB uses + to write to the log files on disk. maximum: 4294967295 minimum: 1048576 type: integer innodb_online_alter_log_max_size: - description: InnodbOnlineAlterLogMaxSize The upper limit in - bytes on the size of the temporary log files used during - online DDL operations for InnoDB tables. + description: The upper limit in bytes on the size of the temporary + log files used during online DDL operations for InnoDB tables. maximum: 1099511627776 minimum: 65536 type: integer innodb_print_all_deadlocks: - description: InnodbPrintAllDeadlocks When enabled, information - about all deadlocks in InnoDB user transactions is recorded - in the error log. Disabled by default. + description: When enabled, information about all deadlocks + in InnoDB user transactions is recorded in the error log. + Disabled by default. type: boolean innodb_read_io_threads: - description: InnodbReadIoThreads The number of I/O threads - for read operations in InnoDB. Default is 4. Changing this - parameter will lead to a restart of the MySQL service. + description: The number of I/O threads for read operations + in InnoDB. Default is 4. Changing this parameter will lead + to a restart of the MySQL service. maximum: 64 minimum: 1 type: integer innodb_rollback_on_timeout: - description: InnodbRollbackOnTimeout When enabled a transaction - timeout causes InnoDB to abort and roll back the entire - transaction. Changing this parameter will lead to a restart - of the MySQL service. + description: When enabled a transaction timeout causes InnoDB + to abort and roll back the entire transaction. Changing + this parameter will lead to a restart of the MySQL service. type: boolean innodb_thread_concurrency: - description: InnodbThreadConcurrency Defines the maximum number - of threads permitted inside of InnoDB. Default is 0 (infinite - concurrency - no limit) + description: Defines the maximum number of threads permitted + inside of InnoDB. Default is 0 (infinite concurrency - no + limit) maximum: 1000 minimum: 0 type: integer innodb_write_io_threads: - description: InnodbWriteIoThreads The number of I/O threads - for write operations in InnoDB. Default is 4. Changing this - parameter will lead to a restart of the MySQL service. + description: The number of I/O threads for write operations + in InnoDB. Default is 4. Changing this parameter will lead + to a restart of the MySQL service. maximum: 64 minimum: 1 type: integer interactive_timeout: - description: InteractiveTimeout The number of seconds the - server waits for activity on an interactive connection before - closing it. + description: The number of seconds the server waits for activity + on an interactive connection before closing it. maximum: 604800 minimum: 30 type: integer internal_tmp_mem_storage_engine: - description: InternalTmpMemStorageEngine The storage engine - for in-memory internal temporary tables. + description: The storage engine for in-memory internal temporary + tables. enum: - TempTable - MEMORY type: string long_query_time: - description: LongQueryTime The slow_query_logs work as SQL - statements that take more than long_query_time seconds to - execute. Default is 10s - maximum: 3600 - minimum: 0 - type: integer + description: The slow_query_logs work as SQL statements that + take more than long_query_time seconds to execute. Default + is 10s + type: number max_allowed_packet: - description: MaxAllowedPacket Size of the largest message - in bytes that can be received by the server. Default is - 67108864 (64M) + description: Size of the largest message in bytes that can + be received by the server. Default is 67108864 (64M) maximum: 1073741824 minimum: 102400 type: integer max_heap_table_size: - description: MaxHeapTableSize Limits the size of internal - in-memory tables. Also set tmp_table_size. Default is 16777216 - (16M) + description: Limits the size of internal in-memory tables. + Also set tmp_table_size. Default is 16777216 (16M) maximum: 1073741824 minimum: 1048576 type: integer net_buffer_length: - description: NetBufferLength Start sizes of connection buffer - and result buffer. Default is 16384 (16K). Changing this - parameter will lead to a restart of the MySQL service. + description: Start sizes of connection buffer and result buffer. + Default is 16384 (16K). Changing this parameter will lead + to a restart of the MySQL service. maximum: 1048576 minimum: 1024 type: integer net_read_timeout: - description: NetReadTimeout The number of seconds to wait - for more data from a connection before aborting the read. + description: The number of seconds to wait for more data from + a connection before aborting the read. maximum: 3600 minimum: 1 type: integer net_write_timeout: - description: NetWriteTimeout The number of seconds to wait - for a block to be written to a connection before aborting - the write. + description: The number of seconds to wait for a block to + be written to a connection before aborting the write. maximum: 3600 minimum: 1 type: integer slow_query_log: - description: SlowQueryLog Slow query log enables capturing - of slow queries. Setting slow_query_log to false also truncates - the mysql.slow_log table. Default is off + description: Slow query log enables capturing of slow queries. + Setting slow_query_log to false also truncates the mysql.slow_log + table. Default is off type: boolean sort_buffer_size: - description: SortBufferSize Sort buffer size in bytes for - ORDER BY optimization. Default is 262144 (256K) + description: Sort buffer size in bytes for ORDER BY optimization. + Default is 262144 (256K) maximum: 1073741824 minimum: 32768 type: integer sql_mode: - description: SqlMode Global SQL mode. Set to empty to use - MySQL server defaults. When creating a new service and not - setting this field Aiven default SQL mode (strict, SQL standard - compliant) will be assigned. + description: Global SQL mode. Set to empty to use MySQL server + defaults. When creating a new service and not setting this + field Aiven default SQL mode (strict, SQL standard compliant) + will be assigned. maxLength: 1024 pattern: ^[A-Z_]*(,[A-Z_]+)*$ type: string sql_require_primary_key: - description: SqlRequirePrimaryKey Require primary key to be - defined for new tables or old tables modified with ALTER - TABLE and fail if missing. It is recommended to always have - primary keys because various functionality may break if - any large table is missing them. + description: Require primary key to be defined for new tables + or old tables modified with ALTER TABLE and fail if missing. + It is recommended to always have primary keys because various + functionality may break if any large table is missing them. type: boolean tmp_table_size: - description: TmpTableSize Limits the size of internal in-memory - tables. Also set max_heap_table_size. Default is 16777216 - (16M) + description: Limits the size of internal in-memory tables. + Also set max_heap_table_size. Default is 16777216 (16M) maximum: 1073741824 minimum: 1048576 type: integer wait_timeout: - description: WaitTimeout The number of seconds the server - waits for activity on a noninteractive connection before - closing it. + description: The number of seconds the server waits for activity + on a noninteractive connection before closing it. maximum: 2147483 minimum: 1 type: integer type: object mysql_version: - description: MysqlVersion MySQL major version + description: MySQL major version enum: - - 8 + - "8" type: string private_access: - description: PrivateAccess Allow access to selected service ports - from private networks + description: Allow access to selected service ports from private + networks properties: mysql: - description: Mysql Allow clients to connect to mysql with - a DNS name that always resolves to the service's private - IP addresses. Only available in certain network locations + description: Allow clients to connect to mysql with a DNS + name that always resolves to the service's private IP addresses. + Only available in certain network locations type: boolean mysqlx: - description: Mysqlx Allow clients to connect to mysqlx with - a DNS name that always resolves to the service's private - IP addresses. Only available in certain network locations + description: Allow clients to connect to mysqlx with a DNS + name that always resolves to the service's private IP addresses. + Only available in certain network locations type: boolean prometheus: - description: Prometheus Allow clients to connect to prometheus - with a DNS name that always resolves to the service's private - IP addresses. Only available in certain network locations + description: Allow clients to connect to prometheus with a + DNS name that always resolves to the service's private IP + addresses. Only available in certain network locations type: boolean type: object privatelink_access: - description: PrivatelinkAccess Allow access to selected service - components through Privatelink + description: Allow access to selected service components through + Privatelink properties: mysql: - description: Mysql Enable mysql + description: Enable mysql type: boolean mysqlx: - description: Mysqlx Enable mysqlx + description: Enable mysqlx type: boolean prometheus: - description: Prometheus Enable prometheus + description: Enable prometheus type: boolean type: object project_to_fork_from: - description: ProjectToForkFrom Name of another project to fork - a service from. This has effect only when a new service is being - created. + description: Name of another project to fork a service from. This + has effect only when a new service is being created. maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf public_access: - description: PublicAccess Allow access to selected service ports - from the public Internet + description: Allow access to selected service ports from the public + Internet properties: mysql: - description: Mysql Allow clients to connect to mysql from - the public internet for service nodes that are in a project - VPC or another type of private network + description: Allow clients to connect to mysql from the public + internet for service nodes that are in a project VPC or + another type of private network type: boolean mysqlx: - description: Mysqlx Allow clients to connect to mysqlx from - the public internet for service nodes that are in a project - VPC or another type of private network + description: Allow clients to connect to mysqlx from the public + internet for service nodes that are in a project VPC or + another type of private network type: boolean prometheus: - description: Prometheus Allow clients to connect to prometheus - from the public internet for service nodes that are in a - project VPC or another type of private network + description: Allow clients to connect to prometheus from the + public internet for service nodes that are in a project + VPC or another type of private network type: boolean type: object recovery_target_time: - description: RecoveryTargetTime Recovery target time when forking - a service. This has effect only when a new service is being - created. + description: Recovery target time when forking a service. This + has effect only when a new service is being created. maxLength: 32 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf service_to_fork_from: - description: ServiceToForkFrom Name of another service to fork - from. This has effect only when a new service is being created. + description: Name of another service to fork from. This has effect + only when a new service is being created. maxLength: 64 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf static_ips: - description: StaticIps Use static public IP addresses + description: Use static public IP addresses type: boolean type: object required: diff --git a/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml b/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml index f3cbc6e..279e70c 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_opensearches.yaml @@ -90,6 +90,9 @@ spec: format: ^[a-zA-Z0-9_-]*$ maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVPCRef: description: ProjectVPCRef reference to ProjectVPC resource to use its ID as ProjectVPCID automatically @@ -103,10 +106,38 @@ spec: required: - name type: object + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVpcId: description: Identifier of the VPC the service should be in, if any. maxLength: 36 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + serviceIntegrations: + items: + description: Service integrations to specify when creating a service. + Not applied after initial service creation + properties: + integrationType: + enum: + - read_replica + type: string + sourceServiceName: + maxLength: 64 + minLength: 1 + type: string + required: + - integrationType + - sourceServiceName + type: object + maxItems: 1 + type: array + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf tags: additionalProperties: type: string @@ -120,286 +151,316 @@ spec: userConfig: description: OpenSearch specific user configuration options properties: + additional_backup_regions: + description: Additional Cloud Regions for Backup Replication + items: + type: string + maxItems: 1 + type: array custom_domain: - description: Custom domain Serve the web frontend using a custom - CNAME pointing to the Aiven DNS name + description: Serve the web frontend using a custom CNAME pointing + to the Aiven DNS name maxLength: 255 type: string disable_replication_factor_adjustment: - description: 'Disable replication factor adjustment DEPRECATED: - Disable automatic replication factor adjustment for multi-node - services. By default, Aiven ensures all indexes are replicated - at least to two nodes. Note: Due to potential data loss in case - of losing a service node, this setting can no longer be activated.' + description: 'DEPRECATED: Disable automatic replication factor + adjustment for multi-node services. By default, Aiven ensures + all indexes are replicated at least to two nodes. Note: Due + to potential data loss in case of losing a service node, this + setting can no longer be activated.' type: boolean index_patterns: - description: 'Allows you to create glob style patterns and set - a max number of indexes matching this pattern you want to keep. - Creating indexes exceeding this value will cause the oldest - one to get deleted. You could for example create a pattern looking - like ''logs.?'' and then create index logs.1, logs.2 etc, it - will delete logs.1 once you create logs.6. Do note ''logs.?'' - does not apply to logs.10. Note: Setting max_index_count to - 0 will do nothing and the pattern gets ignored.' + description: Index patterns items: + description: 'Allows you to create glob style patterns and set + a max number of indexes matching this pattern you want to + keep. Creating indexes exceeding this value will cause the + oldest one to get deleted. You could for example create a + pattern looking like ''logs.?'' and then create index logs.1, + logs.2 etc, it will delete logs.1 once you create logs.6. + Do note ''logs.?'' does not apply to logs.10. Note: Setting + max_index_count to 0 will do nothing and the pattern gets + ignored.' properties: max_index_count: description: Maximum number of indexes to keep - format: int64 minimum: 0 type: integer pattern: - description: Must consist of alpha-numeric characters, dashes, - underscores, dots and glob characters (* and ?) + description: fnmatch pattern maxLength: 1024 + pattern: ^[A-Za-z0-9-_.*?]+$ type: string + sorting_algorithm: + description: Deletion sorting algorithm + enum: + - alphabetical + - creation_date + type: string + required: + - max_index_count + - pattern type: object + maxItems: 512 type: array index_template: description: Template settings for all new indexes properties: mapping_nested_objects_limit: - description: index.mapping.nested_objects.limit The maximum - number of nested JSON objects that a single document can - contain across all nested types. This limit helps to prevent - out of memory errors when a document contains too many nested - objects. Default is 10000. - format: int64 + description: The maximum number of nested JSON objects that + a single document can contain across all nested types. This + limit helps to prevent out of memory errors when a document + contains too many nested objects. Default is 10000. maximum: 100000 minimum: 0 type: integer number_of_replicas: - description: index.number_of_replicas The number of replicas - each primary shard has. - format: int64 + description: The number of replicas each primary shard has. maximum: 29 minimum: 0 type: integer number_of_shards: - description: index.number_of_shards The number of primary - shards that an index should have. - format: int64 + description: The number of primary shards that an index should + have. maximum: 1024 minimum: 1 type: integer type: object ip_filter: - description: 'Glob pattern and number of indexes matching that - pattern to be kept Allows you to create glob style patterns - and set a max number of indexes matching this pattern you want - to keep. Creating indexes exceeding this value will cause the - oldest one to get deleted. You could for example create a pattern - looking like ''logs.?'' and then create index logs.1, logs.2 - etc, it will delete logs.1 once you create logs.6. Do note ''logs.?'' - does not apply to logs.10. Note: Setting max_index_count to - 0 will do nothing and the pattern gets ignored. IP filter Allow - incoming connections from CIDR address block, e.g. ''10.20.0.0/16''' + description: Allow incoming connections from CIDR address block, + e.g. '10.20.0.0/16' items: - type: string + description: CIDR address block, either as a string, or in a + dict with an optional description field + properties: + description: + description: Description for IP filter list entry + maxLength: 1024 + type: string + network: + description: CIDR address block + maxLength: 43 + type: string + required: + - network + type: object + maxItems: 1024 type: array keep_index_refresh_interval: - description: Don't reset index.refresh_interval to the default - value Aiven automation resets index.refresh_interval to default - value for every index to be sure that indices are always visible - to search. If it doesn't fit your case, you can disable this - by setting up this flag to true. + description: Aiven automation resets index.refresh_interval to + default value for every index to be sure that indices are always + visible to search. If it doesn't fit your case, you can disable + this by setting up this flag to true. type: boolean max_index_count: - description: Maximum index count Maximum number of indexes to - keep before deleting the oldest one - format: int64 + description: 'DEPRECATED: use index_patterns instead' minimum: 0 type: integer opensearch: description: OpenSearch settings properties: action_auto_create_index_enabled: - description: action.auto_create_index Explicitly allow or - block automatic creation of indices. Defaults to true + description: Explicitly allow or block automatic creation + of indices. Defaults to true type: boolean action_destructive_requires_name: description: Require explicit index names when deleting type: boolean cluster_max_shards_per_node: - description: cluster.max_shards_per_node Controls the number - of shards allowed in the cluster per data node - format: int64 + description: Controls the number of shards allowed in the + cluster per data node maximum: 10000 minimum: 100 type: integer + cluster_routing_allocation_node_concurrent_recoveries: + description: How many concurrent incoming/outgoing shard recoveries + (normally replicas) are allowed to happen on a node. Defaults + to 2. + maximum: 16 + minimum: 2 + type: integer + email_sender_name: + description: Sender email name placeholder to be used in Opensearch + Dashboards and Opensearch keystore + maxLength: 40 + pattern: ^[a-zA-Z0-9-_]+$ + type: string + email_sender_password: + description: Sender email password for Opensearch alerts to + authenticate with SMTP server + maxLength: 1024 + pattern: ^[^\x00-\x1F]+$ + type: string + email_sender_username: + description: Sender email address for Opensearch alerts + maxLength: 320 + pattern: ^[A-Za-z0-9_\-\.+\'&]+@(([\da-zA-Z])([_\w-]{,62})\.){,127}(([\da-zA-Z])[_\w-]{,61})?([\da-zA-Z]\.((xn\-\-[a-zA-Z\d]+)|([a-zA-Z\d]{2,})))$ + type: string http_max_content_length: - description: http.max_content_length Maximum content length - for HTTP requests to the OpenSearch HTTP API, in bytes. - format: int64 + description: Maximum content length for HTTP requests to the + OpenSearch HTTP API, in bytes. maximum: 2147483647 minimum: 1 type: integer http_max_header_size: - description: http.max_header_size The max size of allowed - headers, in bytes - format: int64 + description: The max size of allowed headers, in bytes maximum: 262144 minimum: 1024 type: integer http_max_initial_line_length: - description: http.max_initial_line_length The max length of - an HTTP URL, in bytes - format: int64 + description: The max length of an HTTP URL, in bytes maximum: 65536 minimum: 1024 type: integer indices_fielddata_cache_size: - description: indices.fielddata.cache.size Relative amount. - Maximum amount of heap memory used for field data cache. - This is an expert setting; decreasing the value too much - will increase overhead of loading field data; too much memory - used for field data cache will decrease amount of heap available - for other operations. - format: int64 + description: Relative amount. Maximum amount of heap memory + used for field data cache. This is an expert setting; decreasing + the value too much will increase overhead of loading field + data; too much memory used for field data cache will decrease + amount of heap available for other operations. maximum: 100 minimum: 3 type: integer indices_memory_index_buffer_size: - description: indices.memory.index_buffer_size Percentage value. - Default is 10%. Total amount of heap used for indexing buffer, - before writing segments to disk. This is an expert setting. - Too low value will slow down indexing; too high value will - increase indexing performance but causes performance issues - for query performance. - format: int64 + description: Percentage value. Default is 10%. Total amount + of heap used for indexing buffer, before writing segments + to disk. This is an expert setting. Too low value will slow + down indexing; too high value will increase indexing performance + but causes performance issues for query performance. maximum: 40 minimum: 3 type: integer indices_queries_cache_size: - description: indices.queries.cache.size Percentage value. - Default is 10%. Maximum amount of heap used for query cache. - This is an expert setting. Too low value will decrease query - performance and increase performance for other operations; - too high value will cause issues with other OpenSearch functionality. - format: int64 + description: Percentage value. Default is 10%. Maximum amount + of heap used for query cache. This is an expert setting. + Too low value will decrease query performance and increase + performance for other operations; too high value will cause + issues with other OpenSearch functionality. maximum: 40 minimum: 3 type: integer indices_query_bool_max_clause_count: - description: indices.query.bool.max_clause_count Maximum number - of clauses Lucene BooleanQuery can have. The default value - (1024) is relatively high, and increasing it may cause performance - issues. Investigate other approaches first before increasing - this value. - format: int64 + description: Maximum number of clauses Lucene BooleanQuery + can have. The default value (1024) is relatively high, and + increasing it may cause performance issues. Investigate + other approaches first before increasing this value. maximum: 4096 minimum: 64 type: integer + indices_recovery_max_bytes_per_sec: + description: Limits total inbound and outbound recovery traffic + for each node. Applies to both peer recoveries as well as + snapshot recoveries (i.e., restores from a snapshot). Defaults + to 40mb + maximum: 400 + minimum: 40 + type: integer + indices_recovery_max_concurrent_file_chunks: + description: Number of file chunks sent in parallel for each + recovery. Defaults to 2. + maximum: 5 + minimum: 2 + type: integer + override_main_response_version: + description: Compatibility mode sets OpenSearch to report + its version as 7.10 so clients continue to work. Default + is false + type: boolean reindex_remote_whitelist: - description: reindex_remote_whitelist Whitelisted addresses - for reindexing. Changing this value will cause all OpenSearch - instances to restart. Address (hostname:port or IP:port) + description: Whitelisted addresses for reindexing. Changing + this value will cause all OpenSearch instances to restart. items: type: string + maxItems: 32 type: array + script_max_compilations_rate: + description: Script compilation circuit breaker limits the + number of inline script compilations within a period of + time. Default is use-context + maxLength: 1024 + type: string search_max_buckets: - description: search.max_buckets Maximum number of aggregation - buckets allowed in a single response. OpenSearch default - value is used when this is not defined. - format: int64 + description: Maximum number of aggregation buckets allowed + in a single response. OpenSearch default value is used when + this is not defined. maximum: 20000 minimum: 1 type: integer thread_pool_analyze_queue_size: - description: analyze thread pool queue size for the thread - pool queue. See documentation for exact details. - format: int64 + description: Size for the thread pool queue. See documentation + for exact details. maximum: 2000 minimum: 10 type: integer thread_pool_analyze_size: - description: analyze thread pool size for the thread pool. - See documentation for exact details. Do note this may have - maximum value depending on CPU count - value is automatically - lowered if set to higher than maximum value. - format: int64 + description: Size for the thread pool. See documentation for + exact details. Do note this may have maximum value depending + on CPU count - value is automatically lowered if set to + higher than maximum value. maximum: 128 minimum: 1 type: integer thread_pool_force_merge_size: - description: force_merge thread pool size for the thread pool. - See documentation for exact details. Do note this may have - maximum value depending on CPU count - value is automatically - lowered if set to higher than maximum value. - format: int64 + description: Size for the thread pool. See documentation for + exact details. Do note this may have maximum value depending + on CPU count - value is automatically lowered if set to + higher than maximum value. maximum: 128 minimum: 1 type: integer thread_pool_get_queue_size: - description: get thread pool queue size for the thread pool - queue. See documentation for exact details. - format: int64 + description: Size for the thread pool queue. See documentation + for exact details. maximum: 2000 minimum: 10 type: integer thread_pool_get_size: - description: get thread pool size for the thread pool. See - documentation for exact details. Do note this may have maximum - value depending on CPU count - value is automatically lowered - if set to higher than maximum value. - format: int64 - maximum: 128 - minimum: 1 - type: integer - thread_pool_index_size: - description: index thread pool size for the thread pool. See - documentation for exact details. Do note this may have maximum - value depending on CPU count - value is automatically lowered - if set to higher than maximum value. - format: int64 + description: Size for the thread pool. See documentation for + exact details. Do note this may have maximum value depending + on CPU count - value is automatically lowered if set to + higher than maximum value. maximum: 128 minimum: 1 type: integer thread_pool_search_queue_size: - description: search thread pool queue size for the thread - pool queue. See documentation for exact details. - format: int64 + description: Size for the thread pool queue. See documentation + for exact details. maximum: 2000 minimum: 10 type: integer thread_pool_search_size: - description: search thread pool size for the thread pool. - See documentation for exact details. Do note this may have - maximum value depending on CPU count - value is automatically - lowered if set to higher than maximum value. - format: int64 + description: Size for the thread pool. See documentation for + exact details. Do note this may have maximum value depending + on CPU count - value is automatically lowered if set to + higher than maximum value. maximum: 128 minimum: 1 type: integer thread_pool_search_throttled_queue_size: - description: search_throttled thread pool queue size for the - thread pool queue. See documentation for exact details. - format: int64 + description: Size for the thread pool queue. See documentation + for exact details. maximum: 2000 minimum: 10 type: integer thread_pool_search_throttled_size: - description: search_throttled thread pool size for the thread - pool. See documentation for exact details. Do note this - may have maximum value depending on CPU count - value is - automatically lowered if set to higher than maximum value. - format: int64 + description: Size for the thread pool. See documentation for + exact details. Do note this may have maximum value depending + on CPU count - value is automatically lowered if set to + higher than maximum value. maximum: 128 minimum: 1 type: integer thread_pool_write_queue_size: - description: write thread pool queue size for the thread pool - queue. See documentation for exact details. - format: int64 + description: Size for the thread pool queue. See documentation + for exact details. maximum: 2000 minimum: 10 type: integer thread_pool_write_size: - description: write thread pool size for the thread pool. See - documentation for exact details. Do note this may have maximum - value depending on CPU count - value is automatically lowered - if set to higher than maximum value. - format: int64 + description: Size for the thread pool. See documentation for + exact details. Do note this may have maximum value depending + on CPU count - value is automatically lowered if set to + higher than maximum value. maximum: 128 minimum: 1 type: integer @@ -411,25 +472,26 @@ spec: description: Enable or disable OpenSearch Dashboards type: boolean max_old_space_size: - description: 'max_old_space_size Limits the maximum amount - of memory (in MiB) the OpenSearch Dashboards process can - use. This sets the max_old_space_size option of the nodejs - running the OpenSearch Dashboards. Note: the memory reserved - by OpenSearch Dashboards is not available for OpenSearch.' - format: int64 - maximum: 1024 + description: 'Limits the maximum amount of memory (in MiB) + the OpenSearch Dashboards process can use. This sets the + max_old_space_size option of the nodejs running the OpenSearch + Dashboards. Note: the memory reserved by OpenSearch Dashboards + is not available for OpenSearch.' + maximum: 2048 minimum: 64 type: integer opensearch_request_timeout: description: Timeout in milliseconds for requests made by OpenSearch Dashboards towards OpenSearch - format: int64 maximum: 120000 minimum: 5000 type: integer type: object opensearch_version: description: OpenSearch major version + enum: + - "1" + - "2" type: string private_access: description: Allow access to selected service ports from private @@ -461,12 +523,18 @@ spec: opensearch_dashboards: description: Enable opensearch_dashboards type: boolean + prometheus: + description: Enable prometheus + type: boolean type: object project_to_fork_from: description: Name of another project to fork a service from. This has effect only when a new service is being created. maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf public_access: description: Allow access to selected service ports from the public Internet @@ -489,16 +557,19 @@ spec: type: object recovery_basebackup_name: description: Name of the basebackup to restore in forked service - format: ^[a-zA-Z0-9-_:.]+$ maxLength: 128 + pattern: ^[a-zA-Z0-9-_:.]+$ type: string service_to_fork_from: description: Name of another service to fork from. This has effect only when a new service is being created. - maxLength: 63 + maxLength: 64 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf static_ips: - description: Static IP addresses Use static public IP addresses + description: Use static public IP addresses type: boolean type: object required: diff --git a/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml b/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml index 2a06382..731616f 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml @@ -103,6 +103,9 @@ spec: format: ^[a-zA-Z0-9_-]*$ maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVPCRef: description: ProjectVPCRef reference to ProjectVPC resource to use its ID as ProjectVPCID automatically @@ -116,10 +119,38 @@ spec: required: - name type: object + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVpcId: description: Identifier of the VPC the service should be in, if any. maxLength: 36 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + serviceIntegrations: + items: + description: Service integrations to specify when creating a service. + Not applied after initial service creation + properties: + integrationType: + enum: + - read_replica + type: string + sourceServiceName: + maxLength: 64 + minLength: 1 + type: string + required: + - integrationType + - sourceServiceName + type: object + maxItems: 1 + type: array + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf tags: additionalProperties: type: string @@ -133,23 +164,35 @@ spec: userConfig: description: PostgreSQL specific user configuration options properties: + additional_backup_regions: + description: Additional Cloud Regions for Backup Replication + items: + type: string + maxItems: 1 + type: array admin_password: description: Custom password for admin user. Defaults to random string. This must be set only when a new service is being created. - format: ^[a-zA-Z0-9-_]+$ maxLength: 256 + minLength: 8 + pattern: ^[a-zA-Z0-9-_]+$ type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf admin_username: description: Custom username for admin user. This must be set only when a new service is being created. - format: ^[_A-Za-z0-9][-._A-Za-z0-9]{0,63}$ maxLength: 64 + pattern: ^[_A-Za-z0-9][-._A-Za-z0-9]{0,63}$ type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf backup_hour: description: The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed. - format: int64 maximum: 23 minimum: 0 type: integer @@ -157,15 +200,32 @@ spec: description: The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed. - format: int64 maximum: 59 minimum: 0 type: integer + enable_ipv6: + description: Register AAAA DNS records for the service, and allow + IPv6 packets to service ports + type: boolean ip_filter: - description: IP filter Allow incoming connections from CIDR address - block, e.g. '10.20.0.0/16' + description: Allow incoming connections from CIDR address block, + e.g. '10.20.0.0/16' items: - type: string + description: CIDR address block, either as a string, or in a + dict with an optional description field + properties: + description: + description: Description for IP filter list entry + maxLength: 1024 + type: string + network: + description: CIDR address block + maxLength: 43 + type: string + required: + - network + type: object + maxItems: 1024 type: array migration: description: Migrate data from existing server @@ -179,6 +239,19 @@ spec: migrate data from maxLength: 255 type: string + ignore_dbs: + description: Comma-separated list of databases, which should + be ignored during migration (supported by MySQL only at + the moment) + maxLength: 2048 + type: string + method: + description: The migration method to be used (currently supported + only by Redis and MySQL service types) + enum: + - dump + - replication + type: string password: description: Password for authentication with the server where to migrate data from @@ -187,7 +260,6 @@ spec: port: description: Port number of the server where to migrate data from - format: int64 maximum: 65535 minimum: 1 type: integer @@ -200,316 +272,418 @@ spec: where to migrate data from maxLength: 256 type: string + required: + - host + - port type: object pg: description: postgresql.conf configuration values properties: autovacuum_analyze_scale_factor: - description: autovacuum_analyze_scale_factor Specifies a fraction - of the table size to add to autovacuum_analyze_threshold - when deciding whether to trigger an ANALYZE. The default - is 0.2 (20% of table size) - format: int64 - maximum: 1 - minimum: 0 - type: integer + description: Specifies a fraction of the table size to add + to autovacuum_analyze_threshold when deciding whether to + trigger an ANALYZE. The default is 0.2 (20% of table size) + type: number autovacuum_analyze_threshold: - description: autovacuum_analyze_threshold Specifies the minimum - number of inserted, updated or deleted tuples needed to - trigger an ANALYZE in any one table. The default is 50 - tuples. - format: int64 + description: Specifies the minimum number of inserted, updated + or deleted tuples needed to trigger an ANALYZE in any one + table. The default is 50 tuples. maximum: 2147483647 minimum: 0 type: integer autovacuum_freeze_max_age: - description: autovacuum_freeze_max_age Specifies the maximum - age (in transactions) that a table's pg_class.relfrozenxid - field can attain before a VACUUM operation is forced to - prevent transaction ID wraparound within the table. Note - that the system will launch autovacuum processes to prevent - wraparound even when autovacuum is otherwise disabled. This - parameter will cause the server to be restarted. - format: int64 + description: Specifies the maximum age (in transactions) that + a table's pg_class.relfrozenxid field can attain before + a VACUUM operation is forced to prevent transaction ID wraparound + within the table. Note that the system will launch autovacuum + processes to prevent wraparound even when autovacuum is + otherwise disabled. This parameter will cause the server + to be restarted. maximum: 1500000000 minimum: 200000000 type: integer autovacuum_max_workers: - description: autovacuum_max_workers Specifies the maximum - number of autovacuum processes (other than the autovacuum - launcher) that may be running at any one time. The default - is three. This parameter can only be set at server start. - format: int64 + description: Specifies the maximum number of autovacuum processes + (other than the autovacuum launcher) that may be running + at any one time. The default is three. This parameter can + only be set at server start. maximum: 20 minimum: 1 type: integer autovacuum_naptime: - description: autovacuum_naptime Specifies the minimum delay - between autovacuum runs on any given database. The delay - is measured in seconds, and the default is one minute - format: int64 + description: Specifies the minimum delay between autovacuum + runs on any given database. The delay is measured in seconds, + and the default is one minute maximum: 86400 - minimum: 0 + minimum: 1 type: integer autovacuum_vacuum_cost_delay: - description: autovacuum_vacuum_cost_delay Specifies the cost - delay value that will be used in automatic VACUUM operations. - If -1 is specified, the regular vacuum_cost_delay value - will be used. The default value is 20 milliseconds - format: int64 + description: Specifies the cost delay value that will be used + in automatic VACUUM operations. If -1 is specified, the + regular vacuum_cost_delay value will be used. The default + value is 20 milliseconds maximum: 100 + minimum: -1 type: integer autovacuum_vacuum_cost_limit: - description: autovacuum_vacuum_cost_limit Specifies the cost - limit value that will be used in automatic VACUUM operations. - If -1 is specified (which is the default), the regular vacuum_cost_limit - value will be used. - format: int64 + description: Specifies the cost limit value that will be used + in automatic VACUUM operations. If -1 is specified (which + is the default), the regular vacuum_cost_limit value will + be used. maximum: 10000 + minimum: -1 type: integer autovacuum_vacuum_scale_factor: - description: autovacuum_vacuum_scale_factor Specifies a fraction - of the table size to add to autovacuum_vacuum_threshold - when deciding whether to trigger a VACUUM. The default is - 0.2 (20% of table size) - format: int64 - maximum: 1 - minimum: 0 - type: integer + description: Specifies a fraction of the table size to add + to autovacuum_vacuum_threshold when deciding whether to + trigger a VACUUM. The default is 0.2 (20% of table size) + type: number autovacuum_vacuum_threshold: - description: autovacuum_vacuum_threshold Specifies the minimum - number of updated or deleted tuples needed to trigger a - VACUUM in any one table. The default is 50 tuples - format: int64 + description: Specifies the minimum number of updated or deleted + tuples needed to trigger a VACUUM in any one table. The + default is 50 tuples maximum: 2147483647 minimum: 0 type: integer + bgwriter_delay: + description: Specifies the delay between activity rounds for + the background writer in milliseconds. Default is 200. + maximum: 10000 + minimum: 10 + type: integer + bgwriter_flush_after: + description: Whenever more than bgwriter_flush_after bytes + have been written by the background writer, attempt to force + the OS to issue these writes to the underlying storage. + Specified in kilobytes, default is 512. Setting of 0 disables + forced writeback. + maximum: 2048 + minimum: 0 + type: integer + bgwriter_lru_maxpages: + description: In each round, no more than this many buffers + will be written by the background writer. Setting this to + zero disables background writing. Default is 100. + maximum: 1073741823 + minimum: 0 + type: integer + bgwriter_lru_multiplier: + description: The average recent need for new buffers is multiplied + by bgwriter_lru_multiplier to arrive at an estimate of the + number that will be needed during the next round, (up to + bgwriter_lru_maxpages). 1.0 represents a “just in time” + policy of writing exactly the number of buffers predicted + to be needed. Larger values provide some cushion against + spikes in demand, while smaller values intentionally leave + writes to be done by server processes. The default is 2.0. + type: number deadlock_timeout: - description: deadlock_timeout This is the amount of time, - in milliseconds, to wait on a lock before checking to see - if there is a deadlock condition. - format: int64 + description: This is the amount of time, in milliseconds, + to wait on a lock before checking to see if there is a deadlock + condition. maximum: 1800000 minimum: 500 type: integer + default_toast_compression: + description: Specifies the default TOAST compression method + for values of compressible columns (the default is lz4). + enum: + - lz4 + - pglz + type: string idle_in_transaction_session_timeout: - description: idle_in_transaction_session_timeout Time out - sessions with open transactions after this number of milliseconds - format: int64 + description: Time out sessions with open transactions after + this number of milliseconds maximum: 604800000 minimum: 0 type: integer jit: - description: jit Controls system-wide use of Just-in-Time - Compilation (JIT). + description: Controls system-wide use of Just-in-Time Compilation + (JIT). type: boolean log_autovacuum_min_duration: - description: log_autovacuum_min_duration Causes each action - executed by autovacuum to be logged if it ran for at least - the specified number of milliseconds. Setting this to zero - logs all autovacuum actions. Minus-one (the default) disables - logging autovacuum actions. - format: int64 + description: Causes each action executed by autovacuum to + be logged if it ran for at least the specified number of + milliseconds. Setting this to zero logs all autovacuum actions. + Minus-one (the default) disables logging autovacuum actions. maximum: 2147483647 + minimum: -1 type: integer log_error_verbosity: - description: log_error_verbosity Controls the amount of detail - written in the server log for each message that is logged. + description: Controls the amount of detail written in the + server log for each message that is logged. enum: - TERSE - DEFAULT - VERBOSE type: string + log_line_prefix: + description: Choose from one of the available log-formats. + These can support popular log analyzers like pgbadger, pganalyze + etc. + enum: + - '''pid=%p,user=%u,db=%d,app=%a,client=%h ''' + - '''%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h ''' + - '''%m [%p] %q[user=%u,db=%d,app=%a] ''' + type: string log_min_duration_statement: - description: log_min_duration_statement Log statements that - take more than this number of milliseconds to run, -1 disables - format: int64 + description: Log statements that take more than this number + of milliseconds to run, -1 disables maximum: 86400000 + minimum: -1 + type: integer + log_temp_files: + description: Log statements for each temporary file created + larger than this number of kilobytes, -1 disables + maximum: 2147483647 + minimum: -1 type: integer max_files_per_process: - description: max_files_per_process PostgreSQL maximum number - of files that can be open per process - format: int64 + description: PostgreSQL maximum number of files that can be + open per process maximum: 4096 minimum: 1000 type: integer max_locks_per_transaction: - description: max_locks_per_transaction PostgreSQL maximum - locks per transaction - format: int64 - maximum: 640 + description: PostgreSQL maximum locks per transaction + maximum: 6400 minimum: 64 type: integer max_logical_replication_workers: - description: max_logical_replication_workers PostgreSQL maximum - logical replication workers (taken from the pool of max_parallel_workers) - format: int64 + description: PostgreSQL maximum logical replication workers + (taken from the pool of max_parallel_workers) maximum: 64 minimum: 4 type: integer max_parallel_workers: - description: max_parallel_workers Sets the maximum number - of workers that the system can support for parallel queries - format: int64 + description: Sets the maximum number of workers that the system + can support for parallel queries maximum: 96 minimum: 0 type: integer max_parallel_workers_per_gather: - description: max_parallel_workers_per_gather Sets the maximum - number of workers that can be started by a single Gather - or Gather Merge node - format: int64 + description: Sets the maximum number of workers that can be + started by a single Gather or Gather Merge node maximum: 96 minimum: 0 type: integer max_pred_locks_per_transaction: - description: max_pred_locks_per_transaction PostgreSQL maximum - predicate locks per transaction - format: int64 - maximum: 640 + description: PostgreSQL maximum predicate locks per transaction + maximum: 5120 minimum: 64 type: integer max_prepared_transactions: - description: max_prepared_transactions PostgreSQL maximum - prepared transactions - format: int64 + description: PostgreSQL maximum prepared transactions maximum: 10000 minimum: 0 type: integer max_replication_slots: - description: max_replication_slots PostgreSQL maximum replication - slots - format: int64 + description: PostgreSQL maximum replication slots maximum: 64 minimum: 8 type: integer + max_slot_wal_keep_size: + description: PostgreSQL maximum WAL size (MB) reserved for + replication slots. Default is -1 (unlimited). wal_keep_size + minimum WAL size setting takes precedence over this. + maximum: 2147483647 + minimum: -1 + type: integer max_stack_depth: - description: max_stack_depth Maximum depth of the stack in - bytes - format: int64 + description: Maximum depth of the stack in bytes maximum: 6291456 minimum: 2097152 type: integer max_standby_archive_delay: - description: max_standby_archive_delay Max standby archive - delay in milliseconds - format: int64 + description: Max standby archive delay in milliseconds maximum: 43200000 minimum: 1 type: integer max_standby_streaming_delay: - description: max_standby_streaming_delay Max standby streaming - delay in milliseconds - format: int64 + description: Max standby streaming delay in milliseconds maximum: 43200000 minimum: 1 type: integer max_wal_senders: - description: max_wal_senders PostgreSQL maximum WAL senders - format: int64 + description: PostgreSQL maximum WAL senders maximum: 64 - minimum: 8 + minimum: 20 type: integer max_worker_processes: - description: max_worker_processes Sets the maximum number - of background processes that the system can support - format: int64 + description: Sets the maximum number of background processes + that the system can support maximum: 96 minimum: 8 type: integer pg_partman_bgw.interval: - description: pg_partman_bgw.interval Sets the time interval - to run pg_partman's scheduled tasks - format: int64 + description: Sets the time interval to run pg_partman's scheduled + tasks maximum: 604800 minimum: 3600 type: integer pg_partman_bgw.role: - description: pg_partman_bgw.role Controls which role to use - for pg_partman's scheduled background tasks. - format: ^[_A-Za-z0-9][-._A-Za-z0-9]{0,63}$ + description: Controls which role to use for pg_partman's scheduled + background tasks. maxLength: 64 + pattern: ^[_A-Za-z0-9][-._A-Za-z0-9]{0,63}$ type: string + pg_stat_monitor.pgsm_enable_query_plan: + description: Enables or disables query plan monitoring + type: boolean + pg_stat_monitor.pgsm_max_buckets: + description: Sets the maximum number of buckets + maximum: 10 + minimum: 1 + type: integer pg_stat_statements.track: - description: pg_stat_statements.track Controls which statements - are counted. Specify top to track top-level statements (those - issued directly by clients), all to also track nested statements - (such as statements invoked within functions), or none to - disable statement statistics collection. The default value - is top. + description: Controls which statements are counted. Specify + top to track top-level statements (those issued directly + by clients), all to also track nested statements (such as + statements invoked within functions), or none to disable + statement statistics collection. The default value is top. enum: - all - top - none type: string temp_file_limit: - description: temp_file_limit PostgreSQL temporary file limit - in KiB, -1 for unlimited - format: int64 + description: PostgreSQL temporary file limit in KiB, -1 for + unlimited maximum: 2147483647 + minimum: -1 type: integer timezone: - description: timezone PostgreSQL service timezone + description: PostgreSQL service timezone maxLength: 64 type: string track_activity_query_size: - description: track_activity_query_size Specifies the number - of bytes reserved to track the currently executing command - for each active session. - format: int64 + description: Specifies the number of bytes reserved to track + the currently executing command for each active session. maximum: 10240 minimum: 1024 type: integer track_commit_timestamp: - description: track_commit_timestamp Record commit time of - transactions. + description: Record commit time of transactions. enum: - "off" - "on" type: string track_functions: - description: track_functions Enables tracking of function - call counts and time used. + description: Enables tracking of function call counts and + time used. enum: - all - pl - none type: string + track_io_timing: + description: Enables timing of database I/O calls. This parameter + is off by default, because it will repeatedly query the + operating system for the current time, which may cause significant + overhead on some platforms. + enum: + - "off" + - "on" + type: string wal_sender_timeout: - description: wal_sender_timeout Terminate replication connections - that are inactive for longer than this amount of time, in - milliseconds. - format: int64 - maximum: 600000 - minimum: 5000 + description: Terminate replication connections that are inactive + for longer than this amount of time, in milliseconds. Setting + this value to zero disables the timeout. type: integer wal_writer_delay: - description: wal_writer_delay WAL flush interval in milliseconds. - Note that setting this value to lower than the default 200ms - may negatively impact performance - format: int64 + description: WAL flush interval in milliseconds. Note that + setting this value to lower than the default 200ms may negatively + impact performance maximum: 200 minimum: 10 type: integer type: object + pg_read_replica: + description: Should the service which is being forked be a read + replica (deprecated, use read_replica service integration instead). + type: boolean pg_service_to_fork_from: - description: Name of the PostgreSQL Service from which to fork - (deprecated, use service_to_fork_from). This has effect only - when a new service is being created. - maxLength: 63 + description: Name of the PG Service from which to fork (deprecated, + use service_to_fork_from). This has effect only when a new service + is being created. + maxLength: 64 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + pg_stat_monitor_enable: + description: Enable the pg_stat_monitor extension. Enabling this + extension will cause the cluster to be restarted.When this extension + is enabled, pg_stat_statements results for utility commands + are unreliable + type: boolean pg_version: description: PostgreSQL major version + enum: + - "11" + - "12" + - "13" + - "14" + - "15" type: string pgbouncer: description: PGBouncer connection pooling settings properties: + autodb_idle_timeout: + description: If the automatically created database pools have + been unused this many seconds, they are freed. If 0 then + timeout is disabled. [seconds] + maximum: 86400 + minimum: 0 + type: integer + autodb_max_db_connections: + description: Do not allow more than this many server connections + per database (regardless of user). Setting it to 0 means + unlimited. + maximum: 2147483647 + minimum: 0 + type: integer + autodb_pool_mode: + description: PGBouncer pool mode + enum: + - session + - transaction + - statement + type: string + autodb_pool_size: + description: If non-zero then create automatically a pool + of that size per user when a pool doesn't exist. + maximum: 10000 + minimum: 0 + type: integer ignore_startup_parameters: description: List of parameters to ignore when given in startup packet items: type: string + maxItems: 32 type: array + min_pool_size: + description: Add more server connections to pool if below + this number. Improves behavior when usual load comes suddenly + back after period of total inactivity. The value is effectively + capped at the pool size. + maximum: 10000 + minimum: 0 + type: integer + server_idle_timeout: + description: If a server connection has been idle more than + this many seconds it will be dropped. If 0 then timeout + is disabled. [seconds] + maximum: 86400 + minimum: 0 + type: integer + server_lifetime: + description: The pooler will close an unused server connection + that has been connected longer than this. [seconds] + maximum: 86400 + minimum: 60 + type: integer server_reset_query_always: description: Run server_reset_query (DISCARD ALL) in all pooling modes @@ -519,10 +693,8 @@ spec: description: PGLookout settings properties: max_failover_replication_time_lag: - description: max_failover_replication_time_lag Number of seconds - of master unavailability before triggering database failover - to standby - format: int64 + description: Number of seconds of master unavailability before + triggering database failover to standby minimum: 10 type: integer type: object @@ -546,6 +718,28 @@ spec: addresses. Only available in certain network locations type: boolean type: object + privatelink_access: + description: Allow access to selected service components through + Privatelink + properties: + pg: + description: Enable pg + type: boolean + pgbouncer: + description: Enable pgbouncer + type: boolean + prometheus: + description: Enable prometheus + type: boolean + type: object + project_to_fork_from: + description: Name of another project to fork a service from. This + has effect only when a new service is being created. + maxLength: 63 + type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf public_access: description: Allow access to selected service ports from the public Internet @@ -571,21 +765,26 @@ spec: has effect only when a new service is being created. maxLength: 32 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf service_to_fork_from: description: Name of another service to fork from. This has effect only when a new service is being created. - maxLength: 63 + maxLength: 64 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf shared_buffers_percentage: - description: shared_buffers_percentage Percentage of total RAM - that the database server uses for shared memory buffers. Valid - range is 20-60 (float), which corresponds to 20% - 60%. This - setting adjusts the shared_buffers configuration value. The - absolute maximum is 12 GB. - format: int64 - maximum: 60 - minimum: 20 - type: integer + description: Percentage of total RAM that the database server + uses for shared memory buffers. Valid range is 20-60 (float), + which corresponds to 20% - 60%. This setting adjusts the shared_buffers + configuration value. + type: number + static_ips: + description: Use static public IP addresses + type: boolean synchronous_replication: description: Synchronous replication type. Note that the service plan also needs to support synchronous replication. @@ -597,12 +796,11 @@ spec: description: TimescaleDB extension configuration values properties: max_background_workers: - description: timescaledb.max_background_workers The number - of background workers for timescaledb operations. You should - configure this setting to the sum of your number of databases - and the total number of concurrent background workers you - want running at any given point in time. - format: int64 + description: The number of background workers for timescaledb + operations. You should configure this setting to the sum + of your number of databases and the total number of concurrent + background workers you want running at any given point in + time. maximum: 4096 minimum: 1 type: integer @@ -615,11 +813,10 @@ spec: - timescale type: string work_mem: - description: work_mem Sets the maximum amount of memory to be - used by a query operation (such as a sort or hash table) before - writing to temporary disk files, in MB. Default is 1MB + 0.075% - of total RAM (up to 32MB). - format: int64 + description: Sets the maximum amount of memory to be used by a + query operation (such as a sort or hash table) before writing + to temporary disk files, in MB. Default is 1MB + 0.075% of total + RAM (up to 32MB). maximum: 1024 minimum: 1 type: integer diff --git a/charts/aiven-operator-crds/templates/aiven.io_projectvpcs.yaml b/charts/aiven-operator-crds/templates/aiven.io_projectvpcs.yaml index a16cc04..35b1ffa 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_projectvpcs.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_projectvpcs.yaml @@ -62,15 +62,24 @@ spec: description: Cloud the VPC is in maxLength: 256 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf networkCidr: description: Network address range used by the VPC like 192.168.0.0/24 maxLength: 36 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf project: description: The project the VPC belongs to format: ^[a-zA-Z0-9_-]*$ maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf required: - cloudName - networkCidr diff --git a/charts/aiven-operator-crds/templates/aiven.io_redis.yaml b/charts/aiven-operator-crds/templates/aiven.io_redis.yaml index 37de95b..d891134 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_redis.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_redis.yaml @@ -62,6 +62,7 @@ spec: description: The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing will result in the service re-balancing. + format: ^[1-9][0-9]*(GiB|G)* type: string maintenanceWindowDow: description: Day of week when maintenance operations should be performed. @@ -89,6 +90,9 @@ spec: format: ^[a-zA-Z0-9_-]*$ maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVPCRef: description: ProjectVPCRef reference to ProjectVPC resource to use its ID as ProjectVPCID automatically @@ -102,10 +106,38 @@ spec: required: - name type: object + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf projectVpcId: description: Identifier of the VPC the service should be in, if any. maxLength: 36 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + serviceIntegrations: + items: + description: Service integrations to specify when creating a service. + Not applied after initial service creation + properties: + integrationType: + enum: + - read_replica + type: string + sourceServiceName: + maxLength: 64 + minLength: 1 + type: string + required: + - integrationType + - sourceServiceName + type: object + maxItems: 1 + type: array + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf tags: additionalProperties: type: string @@ -119,11 +151,31 @@ spec: userConfig: description: Redis specific user configuration options properties: - ip_filter: - description: IP filter Allow incoming connections from CIDR address - block, e.g. '10.20.0.0/16' + additional_backup_regions: + description: Additional Cloud Regions for Backup Replication items: type: string + maxItems: 1 + type: array + ip_filter: + description: Allow incoming connections from CIDR address block, + e.g. '10.20.0.0/16' + items: + description: CIDR address block, either as a string, or in a + dict with an optional description field + properties: + description: + description: Description for IP filter list entry + maxLength: 1024 + type: string + network: + description: CIDR address block + maxLength: 43 + type: string + required: + - network + type: object + maxItems: 1024 type: array migration: description: Migrate data from existing server @@ -143,6 +195,13 @@ spec: the moment) maxLength: 2048 type: string + method: + description: The migration method to be used (currently supported + only by Redis and MySQL service types) + enum: + - dump + - replication + type: string password: description: Password for authentication with the server where to migrate data from @@ -151,7 +210,6 @@ spec: port: description: Port number of the server where to migrate data from - format: int64 maximum: 65535 minimum: 1 type: integer @@ -164,6 +222,9 @@ spec: where to migrate data from maxLength: 256 type: string + required: + - host + - port type: object private_access: description: Allow access to selected service ports from private @@ -184,6 +245,9 @@ spec: description: Allow access to selected service components through Privatelink properties: + prometheus: + description: Enable prometheus + type: boolean redis: description: Enable redis type: boolean @@ -193,9 +257,12 @@ spec: has effect only when a new service is being created. maxLength: 63 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf public_access: description: Allow access to selected service ports from the public - internet + Internet properties: prometheus: description: Allow clients to connect to prometheus from the @@ -210,13 +277,12 @@ spec: type: object recovery_basebackup_name: description: Name of the basebackup to restore in forked service - format: ^[a-zA-Z0-9-_:.]+$ maxLength: 128 + pattern: ^[a-zA-Z0-9-_:.]+$ type: string redis_acl_channels_default: - description: Default ACL for pub/sub channels used when Redis - user is created Determines default pub/sub channels' ACL for - new users if ACL is not supplied. When this option is not defined, + description: Determines default pub/sub channels' ACL for new + users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Redis configuration acl-pubsub-default. enum: @@ -225,20 +291,17 @@ spec: type: string redis_io_threads: description: Redis IO thread count - format: int64 maximum: 32 minimum: 1 type: integer redis_lfu_decay_time: description: LFU maxmemory-policy counter decay time in minutes - format: int64 maximum: 120 minimum: 1 type: integer redis_lfu_log_factor: description: Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies - format: int64 maximum: 100 minimum: 0 type: integer @@ -257,33 +320,30 @@ spec: redis_notify_keyspace_events: description: Set notify-keyspace-events option maxLength: 32 + pattern: ^[KEg\$lshzxeA]*$ type: string redis_number_of_databases: - description: Number of redis databases Set number of redis databases. - Changing this will cause a restart of redis service. - format: int64 + description: Set number of redis databases. Changing this will + cause a restart of redis service. maximum: 128 minimum: 1 type: integer redis_persistence: - description: Redis persistence When persistence is 'rdb', Redis - does RDB dumps each 10 minutes if any key is changed. Also RDB - dumps are done according to backup schedule for backup purposes. - When persistence is 'off', no RDB dumps and backups are done, - so data can be lost at any moment if service is restarted for - any reason, or if service is powered off. Also service can't - be forked. + description: When persistence is 'rdb', Redis does RDB dumps each + 10 minutes if any key is changed. Also RDB dumps are done according + to backup schedule for backup purposes. When persistence is + 'off', no RDB dumps and backups are done, so data can be lost + at any moment if service is restarted for any reason, or if + service is powered off. Also service can't be forked. enum: - "off" - rdb type: string redis_pubsub_client_output_buffer_limit: - description: Pub/sub client output buffer hard limit in MB Set - output buffer limit for pub / sub clients in MB. The value is - the hard limit, the soft limit is 1/4 of the hard limit. When - setting the limit, be mindful of the available memory in the - selected service plan. - format: int64 + description: Set output buffer limit for pub / sub clients in + MB. The value is the hard limit, the soft limit is 1/4 of the + hard limit. When setting the limit, be mindful of the available + memory in the selected service plan. maximum: 512 minimum: 32 type: integer @@ -291,18 +351,20 @@ spec: description: Require SSL to access Redis type: boolean redis_timeout: - description: Redis idle connection timeout - format: int64 + description: Redis idle connection timeout in seconds maximum: 31536000 minimum: 0 type: integer service_to_fork_from: description: Name of another service to fork from. This has effect only when a new service is being created. - maxLength: 63 + maxLength: 64 type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf static_ips: - description: Static IP addresses Use static public IP addresses + description: Use static public IP addresses type: boolean type: object required: diff --git a/charts/aiven-operator/Chart.yaml b/charts/aiven-operator/Chart.yaml index 5524a14..d7b411e 100644 --- a/charts/aiven-operator/Chart.yaml +++ b/charts/aiven-operator/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: aiven-operator description: A Helm chart to deploy the aiven operator type: application -version: v0.7.1 -appVersion: v0.7.1 +version: v0.8.0 +appVersion: v0.8.0 maintainers: - name: mhoffm-aiven url: https://www.aiven.io diff --git a/charts/aiven-operator/templates/mutating_webhook_configuration.yaml b/charts/aiven-operator/templates/mutating_webhook_configuration.yaml index 2c3aff7..bd459fd 100644 --- a/charts/aiven-operator/templates/mutating_webhook_configuration.yaml +++ b/charts/aiven-operator/templates/mutating_webhook_configuration.yaml @@ -329,26 +329,6 @@ webhooks: resources: - projects sideEffects: None - - admissionReviewVersions: - - v1 - clientConfig: - service: - name: {{ include "aiven-operator.fullname" . }}-webhook-service - namespace: {{ include "aiven-operator.namespace" . }} - path: /mutate-aiven-io-v1alpha1-projectvpc - failurePolicy: Fail - name: mprojectvpc.kb.io - rules: - - apiGroups: - - aiven.io - apiVersions: - - v1alpha1 - operations: - - CREATE - - UPDATE - resources: - - projectvpcs - sideEffects: None - admissionReviewVersions: - v1 clientConfig: diff --git a/charts/aiven-operator/templates/validating_webhook_configuration.yaml b/charts/aiven-operator/templates/validating_webhook_configuration.yaml index dc2c75b..cffbafc 100644 --- a/charts/aiven-operator/templates/validating_webhook_configuration.yaml +++ b/charts/aiven-operator/templates/validating_webhook_configuration.yaml @@ -342,26 +342,6 @@ webhooks: resources: - projects sideEffects: None - - admissionReviewVersions: - - v1 - clientConfig: - service: - name: {{ include "aiven-operator.fullname" . }}-webhook-service - namespace: {{ include "aiven-operator.namespace" . }} - path: /validate-aiven-io-v1alpha1-projectvpc - failurePolicy: Fail - name: vprojectvpc.kb.io - rules: - - apiGroups: - - aiven.io - apiVersions: - - v1alpha1 - operations: - - CREATE - - UPDATE - resources: - - projectvpcs - sideEffects: None - admissionReviewVersions: - v1 clientConfig: