From a588b289fef080c50e68a31717dce5f2c143be14 Mon Sep 17 00:00:00 2001 From: Michael Hoffmann <88316042+mhoffm-aiven@users.noreply.github.com> Date: Fri, 19 Nov 2021 09:23:20 +0100 Subject: [PATCH] sync with aiven operator v0.2.0 (#10) charts/aiven-operator-crds: sync crds charts/aiven-operator: sync webhooks and rbacs --- CHANGELOG.md | 6 + charts/aiven-operator-crds/Chart.yaml | 4 +- .../templates/aiven.io_connectionpools.yaml | 2 +- .../templates/aiven.io_databases.yaml | 2 +- .../templates/aiven.io_kafkaacls.yaml | 2 +- .../templates/aiven.io_kafkaconnectors.yaml | 2 +- .../templates/aiven.io_kafkaconnects.yaml | 2 +- .../templates/aiven.io_kafkas.yaml | 2 +- .../templates/aiven.io_kafkaschemas.yaml | 2 +- .../templates/aiven.io_kafkatopics.yaml | 2 +- .../templates/aiven.io_postgresqls.yaml | 2 +- .../templates/aiven.io_projects.yaml | 2 +- .../templates/aiven.io_projectvpcs.yaml | 2 +- .../templates/aiven.io_redis.yaml | 384 ++++++++++++++++++ .../aiven.io_serviceintegrations.yaml | 2 +- .../templates/aiven.io_serviceusers.yaml | 2 +- charts/aiven-operator/Chart.yaml | 4 +- .../templates/cluster_role.yaml | 26 ++ .../mutating_webhook_configuration.yaml | 20 + .../validating_webhook_configuration.yaml | 21 + 20 files changed, 474 insertions(+), 17 deletions(-) create mode 100644 charts/aiven-operator-crds/templates/aiven.io_redis.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index f18791d..c4701ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## aiven-operator-v0.2.0 - 2021-11-17 +* sync with aiven-operator v0.2.0 + +## aiven-operator-crds-v0.2.0 - 2021-11-17 +* sync with aiven-operator v0.2.0 CRDs + ## aiven-operator-v0.1.2 - 2021-09-21 * fix webhook ca injection diff --git a/charts/aiven-operator-crds/Chart.yaml b/charts/aiven-operator-crds/Chart.yaml index ec5f2fb..2b8b627 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.1.1 -appVersion: v0.1.0 +version: v0.2.0 +appVersion: v0.2.0 maintainers: - name: mhoffm-aiven url: https://www.aiven.io diff --git a/charts/aiven-operator-crds/templates/aiven.io_connectionpools.yaml b/charts/aiven-operator-crds/templates/aiven.io_connectionpools.yaml index 06503d0..5119a97 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_connectionpools.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_connectionpools.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.4.1 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: connectionpools.aiven.io spec: diff --git a/charts/aiven-operator-crds/templates/aiven.io_databases.yaml b/charts/aiven-operator-crds/templates/aiven.io_databases.yaml index 1da788f..9a1385e 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_databases.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_databases.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.4.1 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: databases.aiven.io spec: diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkaacls.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkaacls.yaml index fa546bd..cf11020 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkaacls.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkaacls.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.4.1 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: kafkaacls.aiven.io spec: diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkaconnectors.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkaconnectors.yaml index dee983b..37cbc25 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkaconnectors.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkaconnectors.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.4.1 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: kafkaconnectors.aiven.io spec: diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml index 2780af1..09ade35 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkaconnects.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.4.1 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: kafkaconnects.aiven.io spec: diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml index 25cb036..bda9386 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkas.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.4.1 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: kafkas.aiven.io spec: diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkaschemas.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkaschemas.yaml index 2e13ab6..1ff8958 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkaschemas.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkaschemas.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.4.1 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: kafkaschemas.aiven.io spec: diff --git a/charts/aiven-operator-crds/templates/aiven.io_kafkatopics.yaml b/charts/aiven-operator-crds/templates/aiven.io_kafkatopics.yaml index c047c45..73ead10 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_kafkatopics.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_kafkatopics.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.4.1 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: kafkatopics.aiven.io spec: diff --git a/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml b/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml index 383fe14..584bdf4 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_postgresqls.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.4.1 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: postgresqls.aiven.io spec: diff --git a/charts/aiven-operator-crds/templates/aiven.io_projects.yaml b/charts/aiven-operator-crds/templates/aiven.io_projects.yaml index f8ccc6e..d517ae9 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_projects.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_projects.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.4.1 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: projects.aiven.io spec: diff --git a/charts/aiven-operator-crds/templates/aiven.io_projectvpcs.yaml b/charts/aiven-operator-crds/templates/aiven.io_projectvpcs.yaml index 5fd5a8b..a4fe87b 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_projectvpcs.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_projectvpcs.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.4.1 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: projectvpcs.aiven.io spec: diff --git a/charts/aiven-operator-crds/templates/aiven.io_redis.yaml b/charts/aiven-operator-crds/templates/aiven.io_redis.yaml new file mode 100644 index 0000000..802164d --- /dev/null +++ b/charts/aiven-operator-crds/templates/aiven.io_redis.yaml @@ -0,0 +1,384 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + name: redis.aiven.io +spec: + group: aiven.io + names: + kind: Redis + listKind: RedisList + plural: redis + singular: redis + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: Redis is the Schema for the redis API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: RedisSpec defines the desired state of Redis + properties: + authSecretRef: + description: Authentication reference to Aiven token in a secret + properties: + key: + minLength: 1 + type: string + name: + minLength: 1 + type: string + required: + - key + - name + type: object + cloudName: + description: Cloud the service runs in. + maxLength: 256 + type: string + connInfoSecretTarget: + description: Information regarding secret creation + properties: + name: + description: Name of the Secret resource to be created + type: string + required: + - name + type: object + maintenanceWindowDow: + description: Day of week when maintenance operations should be performed. + One monday, tuesday, wednesday, etc. + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + - never + type: string + maintenanceWindowTime: + description: Time of day when maintenance operations should be performed. + UTC time in HH:mm:ss format. + maxLength: 8 + type: string + plan: + description: Subscription plan. + maxLength: 128 + type: string + project: + description: Target project. + format: ^[a-zA-Z0-9_-]*$ + maxLength: 63 + type: string + projectVpcId: + description: Identifier of the VPC the service should be in, if any. + maxLength: 36 + type: string + terminationProtection: + description: Prevent service from being deleted. It is recommended + to have this enabled for all services. + type: boolean + 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' + items: + type: string + type: array + migration: + description: Migrate data from existing server + properties: + dbname: + description: Database name for bootstrapping the initial connection + maxLength: 63 + type: string + host: + description: Hostname or IP address of the server where to + 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 + password: + description: Password for authentication with the server where + to migrate data from + maxLength: 256 + type: string + port: + description: Port number of the server where to migrate data + from + format: int64 + maximum: 65535 + minimum: 1 + type: integer + ssl: + description: The server where to migrate data from is secured + with SSL + type: boolean + username: + description: User name for authentication with the server + where to migrate data from + maxLength: 256 + type: string + type: object + private_access: + description: Allow access to selected service ports from private + networks + properties: + 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 + redis: + description: Allow clients to connect to redis 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: + redis: + description: Enable redis + 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 + public_access: + description: Allow access to selected service ports from the public + internet + properties: + 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 + redis: + description: Allow clients to connect to redis 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: Name of the basebackup to restore in forked service + format: ^[a-zA-Z0-9-_:.]+$ + maxLength: 128 + 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, + all_channels is assumed to keep backward compatibility. This + option doesn't affect Redis configuration acl-pubsub-default. + enum: + - allchannels + - resetchannels + 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 + redis_maxmemory_policy: + description: Redis maxmemory-policy + enum: + - noeviction + - allkeys-lru + - volatile-lru + - allkeys-random + - volatile-random + - volatile-ttl + - volatile-lfu + - allkeys-lfu + type: string + redis_notify_keyspace_events: + description: Set notify-keyspace-events option + maxLength: 32 + 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 + 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. + 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 + maximum: 512 + minimum: 32 + type: integer + redis_ssl: + description: Require SSL to access Redis + type: boolean + redis_timeout: + description: Redis idle connection timeout + format: int64 + 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 + type: string + static_ips: + description: Static IP addresses Use static public IP addresses + type: boolean + type: object + required: + - authSecretRef + - project + type: object + status: + description: ServiceStatus defines the observed state of service + properties: + conditions: + description: Conditions represent the latest available observations + of a service state + items: + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: + \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type + \ // +patchStrategy=merge // +listType=map // +listMapKey=type + \ Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` + \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition + transitioned from one status to another. This should be when + the underlying condition changed. If that is not known, then + using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating + details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation + that the condition was set based upon. For instance, if .metadata.generation + is currently 12, but the .status.conditions[x].observedGeneration + is 9, the condition is out of date with respect to the current + state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + state: + description: Service state + type: string + required: + - conditions + - state + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/charts/aiven-operator-crds/templates/aiven.io_serviceintegrations.yaml b/charts/aiven-operator-crds/templates/aiven.io_serviceintegrations.yaml index f445827..e6415a2 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_serviceintegrations.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_serviceintegrations.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.4.1 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: serviceintegrations.aiven.io spec: diff --git a/charts/aiven-operator-crds/templates/aiven.io_serviceusers.yaml b/charts/aiven-operator-crds/templates/aiven.io_serviceusers.yaml index 3b19345..ee3668b 100644 --- a/charts/aiven-operator-crds/templates/aiven.io_serviceusers.yaml +++ b/charts/aiven-operator-crds/templates/aiven.io_serviceusers.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.4.1 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: serviceusers.aiven.io spec: diff --git a/charts/aiven-operator/Chart.yaml b/charts/aiven-operator/Chart.yaml index 7257ae7..3fbad90 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.1.2 -appVersion: v0.1.0 +version: v0.2.0 +appVersion: v0.2.0 maintainers: - name: mhoffm-aiven url: https://www.aiven.io diff --git a/charts/aiven-operator/templates/cluster_role.yaml b/charts/aiven-operator/templates/cluster_role.yaml index 1ef570b..2971dcc 100644 --- a/charts/aiven-operator/templates/cluster_role.yaml +++ b/charts/aiven-operator/templates/cluster_role.yaml @@ -74,13 +74,19 @@ rules: - delete - get - list + - patch + - update - watch - apiGroups: - aiven.io resources: - kafkaacls/status verbs: + - create + - delete - get + - list + - watch - apiGroups: - aiven.io resources: @@ -241,6 +247,26 @@ rules: - get - patch - update +- apiGroups: + - aiven.io + resources: + - redis + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - aiven.io + resources: + - redis/status + verbs: + - get + - patch + - update - apiGroups: - aiven.io resources: diff --git a/charts/aiven-operator/templates/mutating_webhook_configuration.yaml b/charts/aiven-operator/templates/mutating_webhook_configuration.yaml index 8af6103..5ece068 100644 --- a/charts/aiven-operator/templates/mutating_webhook_configuration.yaml +++ b/charts/aiven-operator/templates/mutating_webhook_configuration.yaml @@ -231,6 +231,26 @@ webhooks: resources: - projectvpcs sideEffects: None +- admissionReviewVersions: + - v1 + clientConfig: + service: + name: {{ include "aiven-operator.fullname" . }}-webhook-service + namespace: {{ include "aiven-operator.namespace" . }} + path: /mutate-aiven-io-v1alpha1-redis + failurePolicy: Fail + name: mredis.kb.io + rules: + - apiGroups: + - aiven.io + apiVersions: + - v1alpha1 + operations: + - CREATE + - UPDATE + resources: + - redis + 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 ccf130e..b3007bf 100644 --- a/charts/aiven-operator/templates/validating_webhook_configuration.yaml +++ b/charts/aiven-operator/templates/validating_webhook_configuration.yaml @@ -238,6 +238,27 @@ webhooks: resources: - projectvpcs sideEffects: None +- admissionReviewVersions: + - v1 + clientConfig: + service: + name: {{ include "aiven-operator.fullname" . }}-webhook-service + namespace: {{ include "aiven-operator.namespace" . }} + path: /validate-aiven-io-v1alpha1-redis + failurePolicy: Fail + name: vredis.kb.io + rules: + - apiGroups: + - aiven.io + apiVersions: + - v1alpha1 + operations: + - CREATE + - UPDATE + - DELETE + resources: + - redis + sideEffects: None - admissionReviewVersions: - v1 clientConfig: